WIUNIX ACADEMY
آموزش نصب WireGuard و اتصال دو شبکه در اوبونتو و دبیان
دو شبکهٔ داخلی را با دروازههای اختصاصی و WireGuard به هم وصل کنید؛ مسیر برگشت، فایروال محدود و دریافت داده در دو جهت بررسی میشود.
محیطت را انتخاب کنآموزش متناسب با محیط تو
کجا اجرا میکنی؟
سیستمعامل و نسخه را انتخاب کن تا مراحل، دستورها و راهحلها برای همان محیط نمایش داده شوند.
آموزش متناسب با مقادیر تو
تنظیمات این آموزش
مقادیر نمونه را برای محیط خودت تنظیم کن؛ متن و دستورهای مرتبط با هم تغییر میکنند. رمز، کلید خصوصی و توکن وارد نکن. مقادیر فقط در همین زبانه نگهداری میشوند و به سرور یا لینک اشتراکگذاری فرستاده نمیشوند. پیش از اجرا، DNS، گواهیها و سیاست شبکهٔ واقعی را بررسی کن.
آیپی، دامنه یا پورت مثالها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای بهروزشده را کپی کن.
تنظیم مقادیر برای محیط من24 مقدار قابلتغییر
از اینجا شروع کن
در پایان چه چیزی خواهی داشت؟
اتصال مسیریابیشدهٔ دو LAN با هویت تأییدشده، مجوز محدود سرویس و اثبات دریافت داده در دو جهت.
سیستمعاملها و نسخههای پوششدادهشده
مسیرهای سیستمعامل با مستندات بررسی شدهاند؛ آزمون شبکهٔ جدا از نصب کامل توزیع و آزمایش اینترنت واقعی تفکیک میشود.
قبل از شروع
- دو دروازهٔ تازه با LAN/WAN تنظیمشده، مدیریت IPv4 و کنسول مستقل؛ بدون VPN یا فایروال قبلی.
- شبکههای LAN بدون همپوشانی و اختیار مسیر پایدار روترها و سیاست میزبانهای آزمایش.
- آدرسهای UDP قابلدسترسی و هویت عمومی تأییدشدهٔ دو همتا.
دو شعبه و روترهای واقعی آنها
در A شبکهٔ داخلی 10.10.10.0/24، روتر اصلی 10.10.10.1، دروازهٔ VPN برابر 10.10.10.2 و میزبان آزمایش 10.10.10.100 است؛ رابط اینترنت ens18 و رابط داخلی ens19 هستند. در B شبکهٔ 10.20.20.0/24، روتر 10.20.20.1، دروازهٔ 10.20.20.2، میزبان 10.20.20.100 و رابطهای ens18 و ens19 قرار دارند. آدرسها و رابطها از قبل با مدیر شبکهٔ همان سیستم تنظیم شدهاند. تونل wg0 در A آدرس 10.255.255.1/30 و در B آدرس 10.255.255.2/30 دارد. آدرس عمومی دو طرف 198.51.100.10 و 203.0.113.20 با UDP 51820 است. مقدار اولیهٔ عمومی و مدیریت نمونهٔ مستنداتی است؛ مقادیر واقعی و قابلدسترسی را در فرم تنظیم کنید. شبکههای LAN، تونل و مدیریت نباید همپوشانی داشته باشند.
مسیریابی، هویت همتا و مجوز عبور
ابتدا جدول لینوکس بسته را به wg0 میرساند. سپس AllowedIPs همتای مناسب مقصد را مشخص میکند و در دریافت نیز آدرس مبدأ داخل بسته را به هویت همان همتا محدود میکند. در A فقط آدرس تونل و شبکهٔ B نوشته میشود و برعکس. مجوز سرویس همچنان وظیفهٔ فایروال است. اینجا ICMP بین دو شبکه و TCP 8080 فقط بین دو میزبان .100 در دو جهت مجاز است. مسیر اینترنت و DNS کاربران عوض نمیشود؛ NAT، پل شبکه و تونل IPv6 نداریم. مبدأ اصلی LAN حفظ میشود و برای حفاظت پس از خروج از دروازه، TLS و احراز هویت خود سرویس لازم است.
دروازهٔ تازه و مدیریت مستقل
دو دروازهٔ تازه با systemd، کنسول مستقلِ آزمایششده و مسیر SSH بر پایهٔ IPv4 لازم است. این روش روی روتر تولید، میزبان Docker، VPN موجود یا سیستمی با UFW/firewalld و قوانین قبلی اجرا نشود. نشست SSH فعلی باز بماند و بعد از فعالسازی فایروال، نشست دوم امتحان شود. شبکهٔ مدیریت 192.0.2.0/24 و پورت22 نمونهاند؛ مبدأ واقعی از دید هر دروازه و پورت خودتان جایگزین شوند. مجوز UDP در فایروال ابری هم جدا لازم است. این اتصال واحد IPv4، راهکار HA یا تضمین سرویس بیوقفه نیست.
چه چیزی واقعاً آزمایش شده است؟
بررسی در۲۰۲۶-۱۰-۲۰ انجام شد. آزمایش یکمیزبانی با کرنل6.8 و ابزار توزیع1.0.20210914، دو دروازه و دو روتر عادی و دو میزبان LAN را در شش فضای شبکهٔ جدا اجرا کرد.۲۴بررسی شامل دستدهی واقعی، دادهٔ دقیق دوطرفه با حفظ مبدأ، رد پورت و مبدأ غیرمجاز، شکست مسیر برگشت و AllowedIPs نادرست، MTU، برقراری اتصال از فایل بازیابیشده و توقف محدود بود. پنلهای پشتیبان و بازیابی نیز فقط با جایگزینی مسیر امن آزمایش اجرا شدند و همهٔ پردازهها متوقف شدند. این نتیجه آزمون اینترنت یا NAT واقعی، شعبهٔ فیزیکی، بوت کامل systemd، فایروال ارائهدهنده، SSH تولید یا نصب همهٔ نسخهها نیست. مسیرهای انتخابی سیستمعامل همچنان مستندمحورند.
قدم بعدی
بررسی A و B پیش از تغییر
با حساب مدیر فعلی و Bash روی هر دو دروازه، نسخه، رابطها، مسیرها و مبدأ مدیریت بررسی شوند. آدرسها باید از قبل با ابزار همان سیستم تنظیم شده باشند. کلید یا تنظیمات قبلی و کار مسیریابی موجود، ادامه را متوقف میکند. پوشهٔ ناموجود و سرویس غیرفعال برای میزبان تازه طبیعی است. اگر nft نصب نیست، جدول قوانین پس از نصب بررسی شود.
. /etc/os-release
printf '%s %s\n' "$ID" "$VERSION_ID"
uname -r
ip -br address
ip -4 route show table all
ip rule show
printf 'SSH source/session: %s\n' "${SSH_CONNECTION:-console}"
sudo ss -lunpt
sudo sysctl net.ipv4.ip_forward
sudo find /etc/wireguard -maxdepth 1 -type f -print 2>/dev/null
systemctl is-active ufw firewalld nftables
نسخه و آدرسها درستاند و سرویس یا سیاست قبلی جایگزین نمیشود.
قدم بعدی
نصب از مخزن همان نسخهٔ سیستم
بستهها روی هر دو دروازه از مخزن امضاشدهٔ همان نسخه نصب شوند. ابزار کاربری و ماژول کرنل دو جزء جدا هستند؛ روی کرنل استاندارد نسخههای بررسیشده مخزن بیگانه و DKMS لازم نیست. خطای مجوز کانتینر محدود با تغییر کرنل تولید حل نشود. میزبانهای آزمایش هم به curl و python3 توزیع خود نیاز دارند.
sudo apt-get update
sudo apt-get install wireguard-tools nftables iproute2 iputils-ping curl python3 nano
wg --version
dpkg-query -W wireguard-tools nftables
sudo nft list ruleset
ابزار حاضر و جدول قوانین خالی است؛ در صورت وجود قوانین یا مدیر دیگر، روش متوقف و ادغام به مالک آن سپرده شود.