آموزش نصب WireGuard در اوبونتو 18.04
WireGuard یک فناوری مدرن V.P.N (Virtual Private Network) با رمزنگاری پیشرفته است. در مقایسه با روش های مشابه دیگر ، مانند IPsec و Open.V.P.N فناوری WireGuard سریعتر ، پیکربندی آسان تر و عملکرد بهتری دارد. این پلتفرم تقریباً در هر سیستم ها، از جمله Linux ، Windows ، Android و macOS قابل اجرا است. در این آموزش نحوه نصب WireGuard در Ubuntu 18.04 را ارائه خواهیم کرد.
WireGuard با ایجاد یک شبکه در هر دستگاه که به عنوان تونل عمل می کند ، کار می کند. انتقال ترافیک V.P.N در WireGuard به صورت UDP است.
پیش نیازها
شما به یک سرور اوبونتو 18.04 احتیاج دارید که می توانید به عنوان root یا اکانت با امتیازات sudo به آن دسترسی پیدا کنید .
یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.
وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید و همچنین با ارائه گارانتی 100% برگشت وجه ریسک خرید شما را به %0 کاهش میدهد.
تنظیم سرور WireGuard
در این بخش WireGuard را بر روی دستگاه Ubuntu نصب می کنیم و آن را تنظیم می کنیم تا به عنوان سرور عمل کند.
نصب WireGuard در اوبونتو 18.04
لیست بسته ها را به روز کنید و ابزارهای لازم برای مدیریت مخازن سیستم خود را نصب کنید. این احتمال وجود دارد که شما قبلاً پکیج را در سرور خود داشته باشید:
sudo apt update
sudo apt install software-properties-common
مخزن WireGuard را اضافه کنید:
sudo add-apt-repository ppa:wireguard/wireguard
هنگامی که از شما خواسته شد ، Enter
برای ادامه فشار دهید . add-apt-repository
همچنین لیست بسته ها را به طور خودکار بروزرسانی می کند.
بسته WireGuard را نصب کنید:
sudo apt install wireguard
در صورت نصب با موفقیت ، خروجی زیر را مشاهده خواهید کرد:
wireguard:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.15.0-88-generic/updates/dkms/
depmod...
DKMS: install completed.
وقتی هسته را به روز می کنید ، ماژول WireGuard در هسته جدید کامپایل می شود.
پیکربندی WireGuard
WireGuard با دو ابزار خط فرمان به نام wg
و wg-quick
که به شما اجازه پیکربندی و مدیریت شبکه WireGuard را میدهد کار میکند.
برای تولید کلیدهای عمومی و خصوصی دستور زیر را اجرا کنید:
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
پرونده ها در دایرکتوری /etc/wireguard
ایجاد می شوند. می توانید پرونده ها را با cat
یا less
مشاهده کنید.
با استفاده از ip
و wg
یا با ایجاد پرونده پیکربندی با ویرایشگر متن می توان دستگاه را از خط فرمان تنظیم کرد.
پرونده جدیدی به نام خود ایجاد کنید wg0.conf
و مطالب زیر را اضافه کنید:
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
اسم شبکه را می توان هر چیزی گذاشت ، با این وجود توصیه می شود از چیزی مانند wg0
یا wgvpn0
استفاده کنید .
تنظیمات در بخش شبکه معنای زیر را دارند:
- Address – لیستی از آدرس های IP V4 یا V6 جدا شده با کاما برای شبکه
wg0
. از IP هایی از محدوده ای که برای شبکه های خصوصی رزرو شده است استفاده کنید (10.0.0.0/8 ، 172.16.0.0/12 یا 192.168.0.0/16).
- ListenPort – پورتي كه در آن WireGuard اتصالات ورودي را میپذیرد.
- PrivateKey – یک کلید خصوصی که توسط فرمان
wg genkey
تولید می شود . (برای دیدن محتویات فایل این دستور اجرا کنید:sudo cat /etc/wireguard/privatekey
)
- SaveConfig – وقتی درست تنظیم شد ، وضعیت فعلی شبکه هنگام خاموش کردن در پرونده پیکربندی ذخیره می شود.
- PostUp – دستور یا اسکریپتی که قبل از فعال شدن شبکه اجرا می شود. در این مثال ، ما از iptables برای فعال کردن حالت masquerad استفاده می کنیم. این امر باعث می شود که ترافیک سرور را ترک کرده و به کاربران V.P.N دسترسی به اینترنت دهد.حتما بجای
ens3
نام کارت شبکه اینترنت خود را قرار دهید.. با اجرای دستور زیر می توانید به راحتی نام کارت شبکه اینترنت را پیدا کنید:
ip -o -4 route show to default | awk '{print $5}'
- PostDown – دستور یا اسکریپتی که قبل از دان کردن شبکه اجرا می شود. پس از خاموش شدن شبکه، قوانین iptables حذف می شوند.
فایل هایwg0.conf
و privatekey
نباید برای کاربران عادی قابل خواندن . از chmod
برای تنظیم مجوزها به 600
استفاده کنید:
sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}
پس از اتمام ، شبکه wg0
را با استفاده از ویژگی های مشخص شده در پرونده پیکربندی فعال کنید:
sudo wg-quick up wg0
دستور خروجی مشابه با موارد زیر را تولید می کند:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
wg show wg0
را برای بررسی وضعیت شبکه و پیکربندی اجرا کنید:
sudo wg show wg0
interface: wg0
public key: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
private key: (hidden)
listening port: 51820
همچنین می توانید با ip a show wg0
وضعیت شبکه را تأیید کنید:
ip a show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.1/24 scope global wg0
valid_lft forever preferred_lft forever
برای فعال شدن شبکه WireGuard در زمان بوت ، دستور زیر را اجرا کنید:
sudo systemctl enable wg-quick@wg0
شبکه سرور و پیکربندی فایروال
برای کار کردنNAT ، باید IP forwarding را فعال کنیم. پرونده /etc/sysctl.conf
را باز کنید و خط زیر را اضافه کنید:
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
پرونده را ذخیره کنید و تغییر را اعمال کنید:
sudo sysctl -p
خروجی:
net.ipv4.ip_forward = 1
اگر از UFW برای مدیریت فایروال خود استفاده می کنید ، باید ترافیک UDP را در پورت 51820
باز کنید :
sudo ufw allow 51820/udp
خودشه. همکار اوبونتو که به عنوان سرور عمل می کند ، تنظیم شده است.
تنظیمات کاربر در Linux و macOS
دستورالعمل های نصب برای همه سیستم عامل های پشتیبانی شده در https://wireguard.com/install/ در دسترس هستند . در سیستم های لینوکس ، می توانید بسته را با استفاده از مدیر بسته و بر روی macOS با brew
نصب کنید . پس از نصب WireGuard ، مراحل زیر را برای پیکربندی دستگاه مشتری دنبال کنید.
روند راه اندازی یک سرویس دهنده لینوکس و macOS تقریباً مشابه آنچه شما برای سرور انجام داده اید ، نیست. با تولید کلیدهای عمومی و خصوصی شروع کنید:
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
پرونده wg0.conf
را ایجاد کرده و مطالب زیر را اضافه کنید:
sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0
اگر نیاز به پیکربندی کاربران اضافی دارید ، فقط همین مراحل را با استفاده از یک آدرس IP خصوصی متفاوت تکرار کنید.
تنظیمات کاربران ویندوز
بسته ویندوز msi را از وب سایت WireGuard بارگیری و نصب کنید .
پس از نصب برنامه، WireGuard را باز کرده و بر روی Add Tunnel” -> “Add empty tunnel…” کلیک کنید:
یک کلید عمومی به طور خودکار ایجاد می شود و آن را روی صفحه نمایش می دهد.
یک نام برای تونل وارد کنید و پیکربندی را به شرح زیر ویرایش کنید:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0
در قسمت شبکه ، یک خط جدید برای تعریف آدرس تونل مشتری اضافه کنید.
پس از اتمام روی دکمه ” Save ” کلیک کنید.
Client Peer را به سرور اضافه کنید
آخرین مرحله افزودن کلید عمومی مشتری و آدرس IP به سرور:
sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2
مطمئن شوید که آن را CLIENT_PUBLIC_KEY
با کلید عمومی ایجاد شده در دستگاه کاربر ( sudo cat /etc/wireguard/publickey
) تغییر دهید و در صورت متفاوت بودن، آدرس IP کاربر را تنظیم کنید. کاربران ویندوز می توانند کلید عمومی را از برنامه WireGuard کپی کنند.
پس از اتمام کار ، به دستگاه کاربر مراجعه کنید و شبکه تونل را فعال کنید.
کاربران لینوکس و macOS
کاربران لینوکس برای فعال کردن شبکه دستور زیر را اجرا کنند:
sudo wg-quick up wg0
حال باید به سرور اوبونتو متصل شوید و باید ترافیک دستگاه کاربر شما از آن عبور کند. می توانید ارتباط را با دستور زیر بررسی کنید:
sudo wg
interface: wg0
public key: sZThYo/0oECwzUsIKTa6LYXLhk+Jb/nqK4kCCP2pyFg=
private key: (hidden)
listening port: 48052
fwmark: 0xca6c
peer: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
endpoint: XXX.XXX.XXX.XXX:51820
allowed ips: 0.0.0.0/0
latest handshake: 1 minute, 22 seconds ago
transfer: 58.43 KiB received, 70.82 KiB sent
همچنین می توانید مرورگر خود را باز کنید ، عبارت ” what is my ip ” را تایپ کنید ، و باید آدرس IP سرور Ubuntu خود را مشاهده کنید.
برای متوقف کردن تونلینگ شبکه wg0
قطع کنید:
sudo wg-quick down wg0
کاربران Windows
اگر WireGuard را در ویندوز نصب کرده اید ، روی دکمه ” Activate ” کلیک کنید. پس از اتصال ، وضعیت تونل به حالت فعال تغییر می یابد:
نتیجه گیری
ما در این مقاله به شما آموزش نصب WireGuard در اوبونتو 18.04 را به شما آموختیم.
سلام وقت بخیر
من سرور رو اوردم بالا و کلاینت رو ،پینگ همو دارن تمام تنظیمات رو درست انجام دادم ولی زمانی که فیلتر شکن و فعال میکنم کلا اینترنت خودمم قطع میشه چکار کنم؟؟
tnx
سلام” دو علت هستش:
1-کانفیگ کامل و درست انجام نشده ، میتونید با زدن دستور ifconfig ببینید که شبکه wg0 وجود داره یا خیر.
2- فایروال این پورت رو محدود کرده و یا آی پی شما از سمت ایران محدود شده باشه ( بخاطر داشته باشید در حال حاضر دو isp همراه اول و مبین نت این کانفیگ روش جواب نمیده)