تانل بین چند سرور با WireGuard
مقدمه
در دنیای امروز که امنیت و ارتباطات امن در شبکه ها بسیار حیاتی شده است، استفاده از فناوری هایی مانند WireGuard به یک انتخاب برتر برای اتصال امن سرورها تبدیل شده است. WireGuard یک پروتکل شبکه خصوصی مجازی ساده، سریع و قدرتمند است که به کاربران اجازه می دهد تا شبکه های خصوصی ایجاد کنند. در این راهنما، نحوه اتصال سه سرور لینوکس از طریق WireGuard را با جزئیات و توضیحات کامل بررسی خواهیم کرد.
ما در این مثال سه سرور از سه ارائه دهنده مختلف داریم:
- سرور مجازی رسپینا (IP عمومی:
192.168.1.10
، IP خصوصی:10.10.10.1
) - سرور مجازی پیشگامان (IP عمومی:
192.168.1.20
، IP خصوصی:10.10.10.2
) - سرور مجازی شاتل (IP عمومی:
192.168.1.30
، IP خصوصی:10.10.10.3
)
هدف، ایجاد یک شبکه خصوصی است که این سه سرور بدون نیاز به IP عمومی با یکدیگر ارتباط برقرار کنند.

۱. نصب WireGuard روی هر سرور
برای نصب تانل وایرگارد، مراحل زیر را روی هر یک از سرورها انجام دهید:
- به روزرسانی مخازن و نصب WireGuard:
sudo apt update && sudo apt install wireguard -y
- اطمینان از نصب موفقیت آمیز:
wg --version
۲. تولید کلیدهای امنیتی WireGuard
تانل وایرگارد از کلیدهای رمزنگاری نامتقارن برای احراز هویت استفاده می کند. برای هر سرور یک کلید خصوصی و یک کلید عمومی تولید کنید.
- تولید کلیدها:
wg genkey | tee privatekey | wg pubkey > publickey
- اعتبار کلیدها را بررسی کنید:
cat privatekey cat publickey
نکته: برای حفظ امنیت، فایل
privatekey
باید با مجوزهای محدود ذخیره شود:
chmod 600 privatekey
۳. پیکربندی WireGuard
برای پیکربندی تانل وایرگارد، باید فایل wg0.conf
را در هر سرور ایجاد کنید.
سرور ۱ (رسپینا)
- فایل کانفیگ
wg0.conf
را ایجاد کنید:sudo nano /etc/wireguard/wg0.conf
- محتوا:
[Interface] PrivateKey = <PRIVATE_KEY_SERVER_1> Address = 10.10.10.1/24 ListenPort = 51820 [Peer] PublicKey = <PUBLIC_KEY_SERVER_2> AllowedIPs = 10.10.10.2/32 Endpoint = 192.168.1.20:51820 PersistentKeepalive = 25 [Peer] PublicKey = <PUBLIC_KEY_SERVER_3> AllowedIPs = 10.10.10.3/32 Endpoint = 192.168.1.30:51820 PersistentKeepalive = 25
- تنظیم مجوزها:
chmod 600 /etc/wireguard/wg0.conf
سرور ۲ (پیشگامان)
فایل کانفیگ مشابه با اطلاعات مربوط به سرور ۲:
[Interface] PrivateKey = <PRIVATE_KEY_SERVER_2> Address = 10.10.10.2/24 ListenPort = 51820 [Peer] PublicKey = <PUBLIC_KEY_SERVER_1> AllowedIPs = 10.10.10.1/32 Endpoint = 192.168.1.10:51820 PersistentKeepalive = 25 [Peer] PublicKey = <PUBLIC_KEY_SERVER_3> AllowedIPs = 10.10.10.3/32 Endpoint = 192.168.1.30:51820 PersistentKeepalive = 25
سرور ۳ (شاتل)
کانفیگ برای سرور ۳:
[Interface] PrivateKey = <PRIVATE_KEY_SERVER_3> Address = 10.10.10.3/24 ListenPort = 51820 [Peer] PublicKey = <PUBLIC_KEY_SERVER_1> AllowedIPs = 10.10.10.1/32 Endpoint = 192.168.1.10:51820 PersistentKeepalive = 25 [Peer] PublicKey = <PUBLIC_KEY_SERVER_2> AllowedIPs = 10.10.10.2/32 Endpoint = 192.168.1.20:51820 PersistentKeepalive = 25
۴. راه اندازی و فعال سازی سرویس WireGuard
پس از پیکربندی فایل های کانفیگ، سرویس وایرگارد را فعال کنید:
- فعال سازی و راه اندازی سرویس:
sudo systemctl enable wg-quick@wg0 sudo systemctl start wg-quick@wg0
- بررسی وضعیت سرویس:
sudo systemctl status wg-quick@wg0
- نمایش وضعیت اتصال و کلیدها:
sudo wg show
۵. تست اتصال بین سرورها
برای بررسی عملکرد صحیح، از هر سرور به دیگری پینگ بگیرید:
- از سرور ۱:
ping 10.10.10.2 ping 10.10.10.3
- از سرور ۲:
ping 10.10.10.1 ping 10.10.10.3
- از سرور ۳:
ping 10.10.10.1 ping 10.10.10.2
۶. رفع مشکلات احتمالی
بررسی فایروال
اگر اتصال برقرار نشد، مطمئن شوید که پورت UDP 51820 باز است:
sudo ufw allow 51820/udp
مسیرهای شبکه
برای بررسی مسیرهای شبکه، از دستور زیر استفاده کنید:
ip route show
جمع بندی
با استفاده از تانل وایرگارد، توانستیم سه سرور را در یک شبکه خصوصی با امنیت بالا متصل کنیم. این روش سریع، ساده و بسیار امن است و به ویژه برای ارتباط بین دیتاسنترها و سرورهای توزیع شده ایده آل است.