SSD Nodes Learn Hosting plans →
راهنماها Matt Connorتوسط Matt Connor

اتصال روتر میکروتیک به وایرگارد روی VPS با RouterOS 7

روتر میکروتیک را با RouterOS 7 به سرور وایرگارد خودتان روی VPS وصل کنید: بلوک peer، مسیری که RouterOS از allowed-address نمی‌سازد، keepalive پشت CGNAT و خروج چند دستگاه LAN از VPS.

اتصال روتر میکروتیک به وایرگارد روی VPS در یک نگاه

برای اتصال روتر میکروتیک به وایرگارد روی VPS، روی روتر یک اینترفیس وایرگارد و یک peer (طرف دیگر تونل) برای سرور می‌سازید. روی سرور هم یک بلوک [Peer] برای روتر اضافه می‌کنید. بعد باید خودتان با /ip/route مسیر بگذارید. همین قدم آخر جایی است که بیشتر راه‌اندازی‌ها گیر می‌کنند: RouterOS برخلاف wg-quick از روی allowed-address هیچ مسیری نمی‌سازد. پس تونل بالا می‌آید و handshake (تبادل اولیه کلیدها) هم انجام می‌شود، ولی ترافیک LAN (شبکه محلی دفتر یا خانه) وارد تونل نمی‌شود.

همه دستورها برای RouterOS 7.24.2 نوشته شده‌اند. این نسخه در زمان نوشتن (۱۰ مهر ۱۴۰۵، اکتبر ۲۰۲۶) آخرین نسخه کانال stable است. نام فیلدها و دستورها با مستندات رسمی وایرگارد در help.mikrotik.com تطبیق داده شده‌اند که در همین تاریخ خوانده شد.

RouterOS 6 وایرگارد ندارد. وایرگارد فقط در RouterOS 7 وجود دارد. اگر روتر شما هنوز روی نسخه 6 است، هیچ کدام از دستورهای زیر کار نمی‌کند و اول باید روتر را به نسخه 7 ببرید. نسخه فعلی را این‌طور ببینید:

/system/resource print

در خروجی، خط version را نگاه کنید. در WinBox همین اطلاعات در منوی System و بعد Resources است.

پیش از شروع: نقشه آدرس‌ها

سمت سرور را دوباره آموزش نمی‌دهیم. فرض این است که سرور را طبق راهنمای راه‌اندازی سرور وایرگارد روی VPS بالا آورده‌اید. اگر هنوز این کار را نکرده‌اید، اول آن راهنما را تمام کنید و بعد برگردید. آدرس‌های زیر در همه مثال‌ها ثابت هستند:

  • سرور وایرگارد روی VPS با آدرس تونل 10.8.0.1/24، اینترفیس wg0 و پورت UDP 51820.
  • روتر میکروتیک دفتر با LAN پیش‌فرض میکروتیک، یعنی 192.168.88.0/24، و آدرس تونل 10.8.0.3.
  • یک سایت دوم اختیاری، مثلاً روتر خانه، با LAN 10.20.0.0/24 و آدرس تونل 10.8.0.4.
  • نام اینترفیس وایرگارد روی میکروتیک در همه مثال‌ها wg-vps است.

آدرس 10.8.0.2 را عمداً کنار گذاشته‌ایم، چون در راهنمای سرور به لپ‌تاپ داده شده است. هر peer باید آدرس تونل مخصوص خودش را داشته باشد.

ساخت اینترفیس وایرگارد در RouterOS

اینترفیس را بسازید و کلید عمومی‌اش را بخوانید:

/interface/wireguard add name=wg-vps listen-port=13231
/interface/wireguard print

وقتی private-key را خالی بگذارید، RouterOS خودش یک کلید خصوصی می‌سازد. پس لازم نیست کلید خصوصی را جایی کپی کنید. فیلد public-key در خروجی print همان چیزی است که سرور لازم دارد. پورت 13231 پیش‌فرض خود میکروتیک است. اگر روتر پشت NAT باشد، این پورت از بیرون اصلاً دیده نمی‌شود و اشکالی هم ندارد.

مسیر WinBox: منوی WireGuard، تب WireGuard، دکمه +.

حالا آدرس تونل را به اینترفیس بدهید:

/ip/address add address=10.8.0.3/24 interface=wg-vps

مسیر WinBox: منوی IP و بعد Addresses.

به ماسک /24 دقت کنید. RouterOS برای هر آدرسی که ماسک دارد یک مسیر connected می‌سازد. پس از همین لحظه کل 10.8.0.0/24 از راه wg-vps قابل دسترسی است. این مسیر از ماسک آدرس آمده است، نه از allowed-address. این تفاوت چند بخش بعد مهم می‌شود.

بلوک [Peer] روتر روی VPS

روی سرور فقط یک بلوک به /etc/wireguard/wg0.conf اضافه می‌شود:

[Peer]
# MikroTik office router
PublicKey = <public-key from /interface/wireguard print>
AllowedIPs = 10.8.0.3/32, 192.168.88.0/24

خط Endpoint ندارد، چون روتر معمولاً پشت NAT است و سرور نشانی آن را از اولین handshake یاد می‌گیرد. بخش 192.168.88.0/24 در AllowedIPs همان چیزی است که اتصال را site-to-site (اتصال یک شبکه کامل به شبکه دیگر) می‌کند. سرور بسته‌هایی را که از LAN دفتر می‌آیند می‌پذیرد، و wg-quick موقع بالا آمدن اینترفیس برای این زیرشبکه یک مسیر به سمت wg0 می‌سازد. اگر فقط می‌خواهید خود روتر به VPS برسد، 10.8.0.3/32 کافی است.

برای اضافه کردن peer بدون قطع کاربران فعلی، روش اضافه کردن peer وایرگارد بدون ری‌استارت را به کار ببرید. یک نکته آن روش اینجا مهم است: wg syncconf فقط peerها را به‌روز می‌کند و به جدول مسیریابی لینوکس دست نمی‌زند. پس مسیر LAN دفتر را خودتان اضافه کنید:

sudo bash -c 'wg syncconf wg0 <(wg-quick strip wg0)'
sudo ip route add 192.168.88.0/24 dev wg0
ip route get 192.168.88.10

خروجی ip route get باید dev wg0 را نشان دهد. دفعه بعد که سرویس wg-quick@wg0 ری‌استارت شود، wg-quick این مسیر را از روی AllowedIPs خودش می‌سازد. کلید عمومی سرور را هم با sudo cat /etc/wireguard/server.pub بخوانید، چون مرحله بعد به آن نیاز دارد.

افزودن VPS به‌عنوان peer روی میکروتیک

/interface/wireguard/peers add interface=wg-vps public-key="<server public key>" endpoint-address=vpn.example.com endpoint-port=51820 allowed-address=10.8.0.0/24 persistent-keepalive=25s comment=vps

مسیر WinBox: منوی WireGuard، تب Peers، دکمه +.

endpoint-address می‌تواند IP یا نام دامنه باشد. اگر نام دامنه می‌دهید، اول مطمئن شوید روتر آن را resolve می‌کند:

:put [:resolve vpn.example.com]

باید IP عمومی VPS را چاپ کند. فعلاً allowed-address فقط زیرشبکه تونل است. در بخش‌های بعد، بسته به شکل مسیریابی، آن را بازتر می‌کنیم.

چرا تونل وصل است ولی ترافیک LAN از آن رد نمی‌شود؟

این مهم‌ترین تفاوت میکروتیک با لینوکس است. در لینوکس، AllowedIPs دو کار انجام می‌دهد. خود وایرگارد با آن تصمیم می‌گیرد هر بسته به کدام peer برود و از هر peer چه آدرس مبدأی پذیرفته شود. بعد wg-quick همان فهرست را می‌خواند و برای هر کدام یک مسیر در جدول مسیریابی می‌سازد. به همین دلیل در لینوکس به نظر می‌رسد که AllowedIPs خودش مسیر می‌سازد.

RouterOS ابزاری مثل wg-quick ندارد. allowed-address فقط کار خود وایرگارد را انجام می‌دهد. یعنی بسته‌ای که وارد اینترفیس شده است به peer درست می‌رسد. ولی رساندن بسته به اینترفیس کار جدول مسیریابی است و RouterOS آن را تغییر نمی‌دهد. در مثال site-to-site مستندات رسمی میکروتیک هم بعد از تعریف peer یک دستور جداگانه /ip/route add dst-address=... gateway=wireguard1 آمده است.

این را می‌توانید خودتان ببینید. فرض کنید 10.20.0.0/24 را به allowed-address اضافه کرده‌اید ولی مسیری نساخته‌اید:

/ip/route print where dst-address=10.20.0.0/24
/ping 10.20.0.1 count=4

دستور اول هیچ خطی برنمی‌گرداند. دستور دوم timeout می‌شود، چون بسته طبق مسیر پیش‌فرض به سمت ISP (ارائه‌دهنده اینترنت) رفته و هرگز به wg-vps نرسیده است. راه‌حل یک خط است:

/ip/route add dst-address=10.20.0.0/24 gateway=wg-vps

مسیر WinBox: منوی IP و بعد Routes.

روی دیگر همین سکه هم مفید است. در لینوکس، AllowedIPs = 0.0.0.0/0 مسیر پیش‌فرض کل سیستم را به تونل می‌برد. در RouterOS، allowed-address=0.0.0.0/0 هیچ مسیری را عوض نمی‌کند. فقط به وایرگارد اجازه می‌دهد هر بسته‌ای را که شما به تونل فرستاده‌اید ارسال کند و پاسخ‌های اینترنت را بپذیرد. شکل دوم مسیریابی، پایین‌تر، دقیقاً روی همین رفتار ساخته شده است.

چطور handshake را در RouterOS 7.24.2 بررسی کنم؟

/interface/wireguard/peers print detail
/ping 10.8.0.1 count=4

طبق مستندات، هر peer فیلدهای فقط‌خواندنی last-handshake، rx، tx، current-endpoint-address و current-endpoint-port دارد. last-handshake نشان می‌دهد آخرین handshake موفق چند ثانیه پیش بوده است. خروجی نمونه را اینجا کپی نکرده‌ایم، چون قالب آن بین نسخه‌ها عوض می‌شود. نام فیلدها را در خروجی print detail روتر خودتان چک کنید. در فهرست تغییرات نسخه 7.24 آمده است که شمارنده‌های Tx و Rx هر peer اصلاح شده‌اند. پس روی نسخه‌های قدیمی‌تر 7 به این دو عدد زیاد اعتماد نکنید.

روی VPS هم این را اجرا کنید:

sudo wg show wg0

peer روتر باید یک endpoint داشته باشد که IP عمومی دفتر است (یا IP خروجی CGNAT)، و یک latest handshake تازه. اگر handshake انجام نمی‌شود، این موارد را به ترتیب چک کنید. اول، پورت UDP 51820 روی فایروال VPS و روی فایروال جداگانه پنل ارائه‌دهنده باز باشد. دوم، public-key روی میکروتیک کلید عمومی سرور باشد و PublicKey روی سرور کلید عمومی روتر. یک کلید جابه‌جا دقیقاً همین علامت را می‌دهد.

روتر پشت NAT یا CGNAT: persistent-keepalive

NAT (ترجمه آدرس شبکه) یعنی چند دستگاه با یک IP عمومی به اینترنت می‌روند. CGNAT (NAT در سطح اپراتور) یعنی خود ISP یک IP عمومی را بین چند مشترک تقسیم می‌کند. اینترنت همراه و بسیاری از سرویس‌های خانگی این‌طور هستند. در این حالت روتر شما IP عمومی ندارد. پس VPS نمی‌تواند اتصال را شروع کند و فقط وقتی نشانی روتر را می‌شناسد که بسته‌ای از روتر برسد.

دستگاه NAT در مسیر، نگاشت UDP را فقط تا وقتی ترافیک جریان دارد نگه می‌دارد. وقتی تونل مدتی بیکار بماند، نگاشت منقضی می‌شود. از آن به بعد بسته‌هایی که VPS به سمت LAN دفتر می‌فرستد دور ریخته می‌شوند، تا وقتی که روتر دوباره چیزی بفرستد. علامتش این است: ping 192.168.88.10 از روی VPS بلافاصله بعد از فعالیت دفتر جواب می‌دهد، ولی بعد از چند دقیقه سکوت جواب نمی‌دهد.

persistent-keepalive=25s که در دستور peer آمد هر ۲۵ ثانیه یک بسته کوچک می‌فرستد و نگاشت را باز نگه می‌دارد. این تنظیم را روی سمتی بگذارید که پشت NAT است، یعنی میکروتیک. روی VPS که IP عمومی دارد لازم نیست.

فایروال: زنجیره input روی میکروتیک

اینجا دو سؤال جدا وجود دارد.

آیا handshake به قانون input نیاز دارد؟ وقتی روتر پشت NAT است و خودش اتصال را شروع می‌کند، نه. پاسخ‌های VPS با قانون پیش‌فرض accept established,related پذیرفته می‌شوند. ولی اگر روتر IP عمومی دارد و می‌خواهید VPS یا peerهای دیگر هم بتوانند اتصال را شروع کنند، پورت 13231 را باز کنید:

/ip/firewall/filter print
/ip/firewall/filter add chain=input action=accept protocol=udp dst-port=13231 comment="wireguard" place-before=<number>

به جای <number> شماره قانونی را بگذارید که توضیحش defconf: drop all not coming from LAN است. RouterOS قانون‌ها را به ترتیب اجرا می‌کند. قانونی که بعد از یک drop قرار بگیرد هیچ وقت بسته را نمی‌بیند. در WinBox این قانون‌ها در IP، Firewall، تب Filter Rules هستند و می‌توانید با کشیدن ردیف جای آن را عوض کنید.

آیا VPS می‌تواند به خود روتر برسد؟ با تنظیمات پیش‌فرض، نه. پیکربندی پیش‌فرض میکروتیک هر ترافیک input را که از لیست اینترفیس LAN نیاید دور می‌ریزد. wg-vps عضو این لیست نیست. به همین دلیل ping 10.8.0.3 از روی VPS timeout می‌شود، در حالی که handshake سالم است. اگر فقط پینگ لازم دارید:

/ip/firewall/filter add chain=input action=accept in-interface=wg-vps protocol=icmp comment="ping from tunnel" place-before=<number>

راه ساده‌تر اضافه کردن wg-vps به لیست LAN است، با /interface/list/member add interface=wg-vps list=LAN. ولی آن وقت هر کسی که روی تونل است به WinBox و SSH روتر هم دسترسی دارد. این کار را فقط وقتی انجام دهید که به همه peerهای VPS اعتماد کامل دارید.

زنجیره forward پیش‌فرض فقط اتصال‌های جدید از لیست WAN را می‌بندد. wg-vps عضو هیچ کدام از دو لیست نیست، پس LAN دفتر از سمت تونل باز است. اگر روی VPS peerهای دیگری هم دارید که نباید به LAN دفتر برسند، آن‌ها را روی زنجیره forward سرور یا با قانون drop روی همین روتر محدود کنید.

شکل اول: دسترسی به VPS و سایت دیگر، بدون تغییر اینترنت LAN

در این شکل مسیر پیش‌فرض دست نمی‌خورد. اینترنت کاربران دفتر مثل قبل از ISP می‌رود. فقط آدرس‌های تونل و LAN سایت دیگر از راه VPS می‌روند. روی روتر دفتر:

/interface/wireguard/peers set [find comment=vps] allowed-address=10.8.0.0/24,10.20.0.0/24
/ip/route add dst-address=10.20.0.0/24 gateway=wg-vps

روی روتر خانه همین دو خط را برعکس بنویسید: allowed-address=10.8.0.0/24,192.168.88.0/24 و یک مسیر به 192.168.88.0/24. روی VPS، peer خانه AllowedIPs = 10.8.0.4/32, 10.20.0.0/24 دارد.

یک قانون روی VPS هم لازم است. فایروال راهنمای سرور فقط ترافیک wg0 به اینترنت را اجازه می‌دهد، نه wg0 به wg0. بدون خط زیر در chain forward فایل /etc/nftables.conf، بسته دفتر به VPS می‌رسد و با سیاست drop دور ریخته می‌شود:

iifname "wg0" oifname "wg0" accept

بعد از ویرایش، قوانین را با sudo nft -f /etc/nftables.conf دوباره بارگذاری کنید. علامت نبودن این قانون این است: هر دو روتر 10.8.0.1 را پینگ می‌کنند، ولی یک کامپیوتر دفتر به 10.20.0.1 نمی‌رسد.

یک دام مخصوص میکروتیک: همه روترهای میکروتیک با 192.168.88.0/24 به عنوان LAN پیش‌فرض می‌آیند. اگر دو سایت هر دو این زیرشبکه را داشته باشند، هیچ روتری نمی‌تواند بفهمد 192.168.88.10 کدام طرف است. قبل از وصل کردن دو سایت، LAN یکی از آن‌ها را عوض کنید. از نسخه 7.24، RouterOS وقتی allowed-address یک peer با peer دیگری روی همان اینترفیس هم‌پوشانی داشته باشد هشدار می‌دهد. ولی این هشدار فقط داخل یک روتر است و تداخل دو سایت را نمی‌بیند. برای جزئیات سمت خانه، مسیریابی وایرگارد به LAN خانه را ببینید.

شکل دوم: فرستادن چند میزبان LAN از مسیر VPS

گاهی فقط چند دستگاه باید با IP عمومی VPS به اینترنت بروند. مثلاً سروری که به یک API وصل می‌شود که فقط IP ثابت VPS را در لیست مجاز دارد. بقیه دفتر باید روی ISP بمانند. ابزار این کار در RouterOS علامت‌گذاری مسیر (routing mark) با mangle، یعنی بخشی از فایروال که بسته‌ها را علامت می‌زند، و یک جدول مسیریابی جدا است:

/routing/table add name=via-vps fib
/ip/route add dst-address=0.0.0.0/0 gateway=wg-vps routing-table=via-vps
/ip/firewall/address-list add list=via-vps-hosts address=192.168.88.50
/ip/firewall/mangle add chain=prerouting src-address-list=via-vps-hosts dst-address=!192.168.88.0/24 connection-state=new action=mark-connection new-connection-mark=via-vps-conn passthrough=yes
/ip/firewall/mangle add chain=prerouting src-address-list=via-vps-hosts connection-mark=via-vps-conn action=mark-routing new-routing-mark=via-vps passthrough=no
/ip/firewall/nat add chain=srcnat out-interface=wg-vps connection-mark=via-vps-conn action=masquerade
/interface/wireguard/peers set [find comment=vps] allowed-address=10.8.0.0/24,0.0.0.0/0

مسیرهای WinBox: جدول در Routing و بعد Tables است، مسیر در IP و بعد Routes، و بقیه در IP و بعد Firewall، هر کدام در تب هم‌نام خودش.

هر خط یک دلیل دارد:

  • جدول via-vps فقط یک مسیر پیش‌فرض دارد که به wg-vps می‌رود. پرچم fib لازم است تا جدول واقعاً برای ارسال بسته به کار برود.
  • قانون اول mangle اتصال‌های جدید 192.168.88.50 را علامت می‌زند، به جز ترافیکی که داخل LAN می‌ماند. قانون دوم بسته‌های همان اتصال را به جدول via-vps می‌فرستد. شرط src-address-list در قانون دوم مهم است: بدون آن، پاسخ‌هایی که از تونل به سمت 192.168.88.50 برمی‌گردند هم علامت می‌خورند و دوباره به تونل فرستاده می‌شوند.
  • masquerade آدرس مبدأ اتصال‌های علامت‌خورده را به 10.8.0.3 تغییر می‌دهد. دلیلش این است که قانون NAT روی VPS فقط مبدأهای 10.8.0.0/24 را masquerade می‌کند. بدون این خط، بسته با مبدأ خصوصی 192.168.88.50 از VPS خارج می‌شود و هیچ پاسخی برنمی‌گردد. با sudo tcpdump -ni wg0 روی VPS آدرس مبدأ را می‌بینید. شرط connection-mark باعث می‌شود ترافیک site-to-site بقیه دستگاه‌ها با آدرس واقعی خودشان برسد.
  • 0.0.0.0/0 در allowed-address لازم است، چون پاسخ یک سایت اینترنتی با آدرس مبدأ همان سایت برمی‌گردد. وایرگارد بسته‌ای را که مبدأش در allowed-address نباشد دور می‌ریزد. همان‌طور که بالاتر دیدیم، این تغییر مسیر پیش‌فرض خود روتر را عوض نمی‌کند.

یک قانون پیش‌فرض دیگر هم کار را خراب می‌کند: FastTrack. پیکربندی پیش‌فرض میکروتیک اتصال‌های established را fasttrack می‌کند تا سریع‌تر رد شوند. بسته‌های fasttrack از فایروال، از جمله mangle، عبور نمی‌کنند. پس بعد از چند بسته اول، علامت مسیر دیگر زده نمی‌شود. اتصال‌های علامت‌خورده را از FastTrack بیرون بگذارید:

/ip/firewall/filter set [find action=fasttrack-connection] connection-mark=no-mark

حالا روی 192.168.88.50 این را اجرا کنید:

curl https://ifconfig.me

باید IP عمومی VPS را چاپ کند. همین دستور روی دستگاه دیگری در دفتر باید IP دفتر را نشان دهد. یک نکته باقی می‌ماند: آن دستگاه هنوز DNS را از روتر می‌گیرد و روتر نام‌ها را از طریق ISP resolve می‌کند. اگر این برایتان مهم است، درست کردن DNS روی وایرگارد را ببینید.

تونل کامل برای همه LAN (اختیاری)

اگر واقعاً می‌خواهید همه دفتر از VPS به اینترنت برود، همان شکل دوم را نگه دارید و فقط کل زیرشبکه را به لیست اضافه کنید:

/ip/firewall/address-list add list=via-vps-hosts address=192.168.88.0/24

مسیر پیش‌فرض جدول main را عوض نکنید. ترافیک خود روتر، از جمله بسته‌های UDP خود وایرگارد به سمت VPS، از جدول main می‌رود. اگر مسیر پیش‌فرض main به wg-vps اشاره کند، بسته‌های تونل هم وارد خود تونل می‌شوند و اتصال قطع می‌شود. با روش address-list این حلقه پیش نمی‌آید، چون فقط ترافیکی که از LAN می‌آید علامت می‌خورد.

یک پیامد را آگاهانه بپذیرید. وایرگارد اتصال دائمی ندارد که قطع شدنش را اعلام کند. پس اگر VPS از دسترس خارج شود، مسیر جدول via-vps سر جایش می‌ماند و دستگاه‌های داخل لیست اینترنت ندارند. برای بعضی‌ها این دقیقاً رفتار مطلوب است. برای یک دفتر شلوغ ممکن است نباشد.

وقتی وایرگارد اصلاً وصل نمی‌شود: DPI

وایرگارد معمولی برای پنهان کردن اینکه وایرگارد است طراحی نشده است. پیام شروع handshake همیشه ۱۴۸ بایت است و با یک نوع پیام ثابت شروع می‌شود. شبکه‌ای که DPI (بازرسی عمیق بسته) دارد می‌تواند این الگو را بشناسد و ببندد. در چنین شبکه‌ای هیچ تنظیمی در این راهنما کمک نمی‌کند. last-handshake روی میکروتیک خالی می‌ماند و sudo tcpdump -ni any udp port 51820 روی VPS یا چیزی نشان نمی‌دهد یا فقط تلاش‌های بی‌پاسخ را نشان می‌دهد. عوض کردن پورت هم کمکی نمی‌کند، چون تشخیص بر اساس محتوای بسته است، نه شماره پورت. برای این حالت سراغ ابزاری بروید که برای عبور از DPI ساخته شده است. گزینه‌ها در وقتی VPN شما مسدود شده چه اجرا کنیم آمده‌اند.

اگر تونل وصل است ولی بعضی سایت‌های HTTPS باز نمی‌شوند یا دانلودهای بزرگ وسط کار می‌ایستند، مشکل معمولاً MTU (بیشترین اندازه بسته) است، نه مسیریابی. MTU پیش‌فرض اینترفیس وایرگارد در RouterOS برابر 1420 است. روش پیدا کردن عدد درست در کندی وایرگارد و تنظیم MTU توضیح داده شده است.

پرسش‌های متداول (FAQ)

چرا وایرگارد میکروتیک handshake دارد ولی ترافیک LAN از تونل رد نمی‌شود؟

چون RouterOS از روی allowed-address مسیر نمی‌سازد. allowed-address فقط تعیین می‌کند بسته‌ای که وارد اینترفیس وایرگارد شده به کدام peer برود و از هر peer چه آدرس مبدأی پذیرفته شود. برای هر زیرشبکه‌ای که پشت VPS است یک مسیر جدا لازم دارید، مثلاً /ip/route add dst-address=10.20.0.0/24 gateway=wg-vps. با /ip/route print where dst-address=10.20.0.0/24 می‌بینید که مسیر وجود دارد یا نه.

آیا RouterOS 6 از وایرگارد پشتیبانی می‌کند؟

نه. وایرگارد فقط در RouterOS 7 وجود دارد. نسخه روتر را با /system/resource print ببینید. اگر روی نسخه 6 هستید، اول روتر را به نسخه 7 ارتقا دهید. پیش از ارتقا از پیکربندی خروجی بگیرید و آن را جای دیگری نگه دارید.

روتر من IP عمومی ندارد و پشت CGNAT است. باز هم می‌توانم به VPS وصل شوم؟

بله. روتر اتصال را به سمت VPS شروع می‌کند، پس IP عمومی برای روتر لازم نیست. فقط persistent-keepalive=25s را روی peer سمت میکروتیک بگذارید. بدون آن، نگاشت UDP روی دستگاه NAT اپراتور بعد از مدتی بیکاری منقضی می‌شود و VPS دیگر نمی‌تواند به LAN دفتر برسد تا وقتی که روتر دوباره بسته‌ای بفرستد. روی VPS هم خط Endpoint برای این peer ننویسید.

چرا از VPS نمی‌توانم آدرس تونل میکروتیک را پینگ کنم؟

چون قانون پیش‌فرض defconf: drop all not coming from LAN در زنجیره input هر ترافیکی را که از لیست اینترفیس LAN نیاید دور می‌ریزد و wg-vps عضو آن لیست نیست. یک قانون accept برای in-interface=wg-vps و protocol=icmp بالای آن drop اضافه کنید. اضافه کردن wg-vps به لیست LAN هم کار می‌کند، ولی دسترسی مدیریتی روتر را به کل تونل می‌دهد.

اگر وایرگارد در شبکه من مسدود باشد، عوض کردن پورت کمک می‌کند؟

اگر مسدودسازی با DPI انجام شود، نه. DPI وایرگارد را از روی شکل بسته‌های handshake می‌شناسد و شماره پورت در این تشخیص نقشی ندارد. وایرگارد معمولی برای پنهان شدن طراحی نشده است. در این حالت به ابزاری نیاز دارید که ترافیک را شبیه ترافیک عادی کند و آن را جدا از وایرگارد اجرا کنید.

#wireguard#mikrotik#routeros#vpn#site-to-site