عملی رہنما
اسکرپٹ سے Ubuntu پر WireGuard VPN سرور کیسے بنائیں
نئے Ubuntu سرور سے ذاتی VPN تک: سرور کی ترتیب، آلات کے پروفائل اور انٹرنیٹ ٹریفک کا راستہ جانچنے کی ہدایات۔
سرور کی تنصیب، Linux کنٹینر کا رابطہ اور Windows کی رفتار جانچی گئی ہے۔ اصل macOS، Ubuntu Desktop، iPhone اور Android آلات کے ٹیسٹ ابھی باقی ہیں۔
1. سرور چنیں اور رسائی تیار کریں
یہ رہنما Ubuntu 26.04 LTS VPS پر شروع سے تنصیب کے لیے ہے۔ عوامی IPv4 اور root پاس ورڈ یا SSH کلید چاہیے۔ فراہم کنندہ اور علاقہ اپنی ضرورت کے مطابق چنیں۔
ہم Vultr Shared CPU استعمال کرتے ہیں: 1 vCPU، 1 GB RAM، 25 GB SSD اور ماہانہ 1 TB ٹریفک۔
IPv4 چنیں تاکہ IPv6 کے بغیر نیٹ ورک سے بھی جڑ سکیں۔ صرف IPv6 سرور کو IPv4 سائٹس تک پہنچنے کے لیے اضافی ترتیب چاہیے؛ وہ یہاں شامل نہیں۔
2. SSH سے لاگ اِن جانچیں
Windows: Start میں PowerShell تلاش کر کے کھولیں۔ Mac: Command+Space دبائیں، Terminal لکھیں، پھر Enter۔ Ubuntu Desktop: Ctrl+Alt+T۔
ہر کمانڈ میں SERVER_IP کو سرور پینل کے عوامی IPv4 سے بدلیں۔ ssh root@SERVER_IP سرور سے root کے طور پر جوڑتا ہے۔
پاس ورڈ والی یا موجودہ SSH کلید والی کمانڈ چنیں۔ کلید کا مثالی راستہ اپنے راستے سے بدلیں۔
پہلی بار SSH اعتماد کی تصدیق مانگ سکتا ہے۔ VPS کا پتہ جانچیں، yes لکھ کر Enter دبائیں۔ مانگے جانے پر root پاس ورڈ دیں؛ لکھتے وقت حروف نظر نہیں آتے۔
لاگ اِن کے بعد Ubuntu جانچنے کی کمانڈ چلائیں، پھر exit سے اپنے کمپیوٹر پر واپس آئیں۔
ssh root@SERVER_IPssh -i ~/.ssh/id_ed25519 root@SERVER_IPcat /etc/os-release
exitاگر ssh کمانڈ نہ ملے
Windows میں PowerShell کو Run as administrator سے کھول کر نیچے کی کمانڈ چلائیں۔ تنصیب کے بعد بند کر کے عام PowerShell کھولیں۔ Ubuntu میں Ubuntu کی کمانڈ چلائیں۔ macOS میں SSH کلائنٹ موجود ہے۔
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0کمانڈ بعینہٖ نقل کریں۔ OpenSSH.Client~~~~0.0.1.0 Windows جزو کا شناختی نام ہے؛ ٹلڈا اور اعداد نہ بدلیں۔
sudo apt update
sudo apt install openssh-client3. تنصیب کا پیکیج ڈاؤن لوڈ کر کے دیکھیں
ZIP ڈاؤن لوڈ کر کے نکالیں۔ پانچوں اسکرپٹ wireguard-guide فولڈر میں اکٹھے رکھیں۔ Windows، Mac یا Ubuntu کا صرف متعلقہ راستہ اپنائیں۔
اسکرپٹ VPS پر WireGuard اور آلے کا پروفائل بناتا ہے۔ سرور کا پاس ورڈ کئی بار پوچھا جا سکتا ہے۔
4a. Windows سے سرور تیار کریں
File Explorer میں نکالا ہوا wireguard-guide فولڈر کھولیں۔ ایڈریس بار میں powershell لکھ کر Enter دبائیں تاکہ درست فولڈر میں PowerShell کھلے۔
دو میں سے ایک کمانڈ چلائیں۔ SERVER_IP اور، اگر استعمال ہو، SSH کلید کا راستہ بدلیں۔
-Device کے بعد windows پروفائل کا نام ہے۔ دوسرے کمپیوٹر کے لیے laptop جیسا الگ نام رکھیں۔ الگ پروفائل سے ایک آلے کی رسائی باقی آلات کو منقطع کیے بغیر ختم ہوتی ہے۔
مکمل ہونے پر File Explorer میں %USERPROFILE%\WireGuard لکھیں۔ سرور اور آلے کے نام والے فولڈر میں windows.conf ملے گا۔ اسکرپٹ پورا راستہ بھی دکھاتا ہے۔ مرحلہ 5 میں VPN چلائیں۔
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows -IdentityFile "$HOME\.ssh\id_ed25519"اگر PowerShell اسکرپٹ روکے
اگر خرابی کہے کہ فائل پر ڈیجیٹل دستخط نہیں، اسی فولڈر میں یہ کمانڈ چلائیں اور تنصیب دوبارہ آزمائیں۔
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1اگر اسکرپٹ چلانا بند ہو تو یہ کمانڈ چلائیں، سوال کی تصدیق کریں اور دوبارہ کوشش کریں۔ تبدیلی PowerShell ونڈو بند ہونے تک رہتی ہے۔
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1پالیسی کی خرابی برقرار رہے تو رکیں اور تشخیص کے لیے پیغام محفوظ کریں۔
4b. Mac سے سرور تیار کریں
Terminal کھولیں۔ cd اور ایک اسپیس لکھیں، Finder سے wireguard-guide فولڈر Terminal میں کھینچیں اور Enter دبائیں۔
ابتدائی bash سمیت ایک کمانڈ چلائیں۔ SERVER_IP اور کلید کا راستہ بدلیں۔ mac پروفائل نام ہے؛ دوسرے Mac کے لیے macbook جیسا نام رکھیں۔
Finder میں Command+Shift+H سے ذاتی فولڈر کھولیں۔ WireGuard اور سرور-آلہ فولڈر میں mac.conf ہے۔ اسکرپٹ پورا راستہ بھی دکھاتا ہے۔
bash ./connect-wireguard-server.sh SERVER_IP macbash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed255194c. Ubuntu Desktop سے سرور تیار کریں
Ctrl+Alt+T دبائیں۔ cd اور اسپیس لکھیں، wireguard-guide فولڈر Terminal میں کھینچ کر Enter دبائیں۔
SERVER_IP بدل کر ایک کمانڈ چلائیں۔ ubuntu پروفائل نام ہے۔ اس لانچر اور SSH لاگ اِن کے لیے sudo نہیں چاہیے۔
فائل مینیجر میں Home، WireGuard اور سرور-آلہ فولڈر کھولیں۔ اصل سرور پتے کے ساتھ ~/WireGuard/SERVER_IP-ubuntu/ubuntu.conf میں پروفائل ہے۔ رابطے کے لیے NetworkManager استعمال ہوگا۔
bash ./connect-wireguard-server.sh SERVER_IP ubuntubash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed255195a. Windows یا macOS جوڑیں
سرکاری WireGuard ایپ نصب کریں۔ بنائی گئی .conf فائل درآمد کریں، VPN اجازت قبول کر کے ٹنل چلائیں۔ درآمد کے اختیار کا نام ورژن کے مطابق بدل سکتا ہے۔
پروفائل IPv4 کو ٹنل میں بھیجتا ہے اور IPv6 کو باہر جانے سے روکنے کے لیے اس کا طے شدہ راستہ بھی رکھتا ہے۔ سرور IPv6 انٹرنیٹ نہیں دیتا۔ نیچے اپنے آلے کا اصل رویہ جانچیں۔
پروفائل میں نجی کلید ہوتی ہے۔ نقل رکھنے والا آلے کی VPN شناخت استعمال کرنے کی کوشش کر سکتا ہے۔ اسے سپورٹ ٹکٹ، آن لائن QR جنریٹر یا دوسرے آلات کے ساتھ شیئر نہ کریں۔
5b. Ubuntu Desktop کو NetworkManager سے جوڑیں
NetworkManager پروفائل، DNS اور راستے سنبھالتا ہے، اس لیے گرافیکل درآمد ونڈو کے ورژن پر انحصار نہیں۔ کمانڈ اپنے ڈیسک ٹاپ پر چلائیں، VPS کے SSH میں نہیں۔ پہلے nmcli اور NetworkManager کے چلنے کی جانچ کریں۔
ubuntu.conf سے ubuntu نام کا رابطہ بنتا ہے۔ نام پہلے موجود ہو تو دوسرا آلہ نام چن کر کمانڈ بدلیں۔ صرف ایک بار درآمد کریں؛ بعد میں up اور down استعمال کریں۔ یہ ترتیب کمپیوٹر شروع ہونے پر خودکار VPN بند کرتی ہے۔
یہ DNS ترتیب رابطہ فعال ہونے پر تمام ناموں کے لیے VPN کو ترجیح دیتی ہے۔ براؤزر کا اپنا محفوظ DNS مختلف ہو سکتا ہے۔ مرحلہ 7 میں IP، DNS اور IPv6 جانچیں۔ یہ طریقہ اصل Ubuntu Desktop پر ابھی نہیں آزمایا گیا؛ کنٹینر ٹیسٹ ڈیسک ٹاپ DNS یا IPv6 کی تصدیق نہیں کرتا۔
اسی پروفائل کو ساتھ wg-quick سے نہ چلائیں؛ راستے ٹکرا سکتے ہیں۔ گرافیکل منظر مختلف ہو تب بھی nmcli سے جانچ اور رابطہ ختم کیا جا سکتا ہے۔
nmcli --version
systemctl is-active NetworkManagersudo nmcli connection import type wireguard file "$HOME/WireGuard/SERVER_IP-ubuntu/ubuntu.conf"
sudo nmcli connection modify ubuntu connection.autoconnect no ipv4.dns-priority -50 ipv4.dns-search "~."sudo nmcli connection up ubuntu
nmcli connection show --activesudo nmcli connection down ubuntu6. QR سے iPhone یا Android جوڑیں
نیچے App Store یا Google Play کے ربط سے سرکاری WireGuard ایپ نصب کریں۔
کمپیوٹر سے ssh root@SERVER_IP یا اپنی کلید والی کمانڈ کے ذریعے VPS میں دوبارہ جائیں۔ فون کی کمانڈ پروفائل بنا کر QR دکھاتی ہے۔
فون کی WireGuard ایپ میں QR اسکین کر کے ٹنل شامل کریں۔ کمپیوٹر کا کوڈ اسکین کریں، نام دیں، VPN اجازت قبول کر کے چلائیں۔
ہر فون کا الگ پروفائل رکھیں۔ QR شیئر نہ کریں: یہ VPN رسائی دیتا ہے۔ کوڈ کی سطریں ٹوٹیں تو Terminal ونڈو بڑی کر کے دوبارہ دکھائیں۔
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.confpython3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf7. جانچیں کہ انٹرنیٹ VPN سے گزر رہا ہے
VPN چلانے سے پہلے My IP کھول کر پتہ لکھ لیں۔ WireGuard چلائیں، My IP تازہ کریں اور VPS کے عوامی IPv4 سے ملائیں۔
صفحہ کھلے اور VPS کا پتہ دکھائے تو یہ براؤزر رابطہ VPN سے ہے۔ پرانا پتہ ہو تو مسئلہ حل کرنے والا حصہ دیکھیں۔
یہ براؤزر کی تصدیق ہے، ہر ایپ یا VPN ٹوٹنے پر حفاظت کی نہیں۔ اضافی جانچ DNS اور IPv6 کی ہے۔
اختیاری: IPv6 اور DNS جانچیں
IPv6: پہلے Test IPv6 میں دیکھیں کہ IPv6 پتہ موجود ہے۔ VPN چلا کر دہرائیں۔ اس IPv4 ترتیب میں IPv6 انٹرنیٹ نہیں چلنا چاہیے۔ معمول کا IPv6 دکھے تو ٹنل کے باہر جا رہا ہے۔ پہلے IPv6 نہ ہو تو یہ ٹیسٹ IPv6 نیٹ ورک کا رویہ نہیں بتاتا۔
DNS: VPN کے ساتھ DNS Leak Test میں Standard test چلائیں۔ پروفائل Cloudflare DNS استعمال کرتا ہے۔ گھریلو انٹرنیٹ فراہم کنندہ دکھے تو آلے کا DNS جانچیں۔ دوسرا فراہم کنندہ براؤزر کے Secure DNS سے بھی آ سکتا ہے؛ خودبخود لیک کا ثبوت نہیں۔ نتائج ہر ایپ کی حفاظت کی ضمانت نہیں۔
8. رابطے کے مسائل حل کریں
My IP معمول کا پتہ دکھائے تو WireGuard پروفائل فعال ہونے کی جانچ کریں۔ ایک بار بند اور چالو کر کے My IP تازہ کریں۔
VPN سے سائٹس رکیں تو اسے بند کر کے وہی صفحہ آزمائیں۔ تب بھی ناکام ہو تو عام انٹرنیٹ درست کریں۔ صرف VPN پر ناکام ہو تو نیچے جانچیں۔
موازنہ کرنے کے لیے کمپیوٹر کو فون ہاٹ اسپاٹ سے جوڑیں۔ فون پر Wi-Fi بند کر کے موبائل ڈیٹا آزمائیں؛ ڈیٹا فیس لگ سکتی ہے۔ یہ عارضی جانچ ہے۔ صرف موبائل پر چلے تو مسئلہ اس Wi-Fi رابطے سے متعلق ہے، اصل وجہ ابھی واضح نہیں۔
تنصیب خرابی پر رکے تو آخری پیغام محفوظ کریں۔ وجہ ٹھیک کر کے اسی آلے نام سے کمانڈ دوبارہ چلائیں۔ پرانا پروفائل محفوظ رہتا ہے۔
VPN سرور چلنے کی جانچ
مرحلہ 2 کی طرح SSH میں جا کر کمانڈ چلائیں۔ نتیجہ active ہونا چاہیے۔ inactive یا failed پر ری اسٹارٹ کمانڈ چلائیں اور پھر جانچیں۔ active نہ ہو تو خرابی محفوظ کریں۔
systemctl is-active wg-quick@wg0systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0ری اسٹارٹ سے جڑے آلات تھوڑی دیر کے لیے منقطع ہوں گے۔
آلے کے سرور تک پہنچنے کی جانچ
VPN چلا کر My IP کھولیں اور سرور پر wg show چلائیں۔ آلے کے نیچے latest handshake دیکھیں۔ 10 seconds ago کا مطلب حال ہی میں خفیہ کردہ رابطہ بنا۔ سطر نہ ہو تو اس آلے کا کامیاب رابطہ درج نہیں ہوا۔
نیا رابطہ نہ دکھے تو Endpoint میں VPS پتہ اور :51820 جانچیں۔ VPS پینل میں Firewall یا Security groups کھولیں۔ منسلک فائر وال ہو تو آنے والا UDP پورٹ 51820 اجازت پائے۔ منظر فراہم کنندہ کے مطابق ہوگا؛ Ubuntu کا فائر وال اسکرپٹ ترتیب دیتا ہے۔
تازہ handshake مگر سائٹس بند ہوں تو نتیجہ اور ایپ کی خرابی یا لاگ محفوظ کریں۔ جدید نیٹ ورک ترتیب بے ترتیب بدلنے سے تشخیص مشکل ہو سکتی ہے۔
wg show9. کتنی رفتار کی توقع ہے؟
Windows ٹیسٹ میں ڈاؤن لوڈ تقریباً 350–400 Mbps اور اپ لوڈ 450–500 Mbps تھا۔ منصوبے کے دوسرے VPN جیسا طریقہ استعمال ہوا۔ راستہ: San Diego میں صارف ← San Francisco Bay Area میں VPN ← Seattle میں پیمائش کا سرور۔
Vultr Shared CPU vc2-1c-1gb: 1 vCPU، 1 GB RAM، 25 GB SSD اور ماہانہ 1 TB ٹریفک؛ بناتے وقت قیمت ماہانہ 5 امریکی ڈالر تھی۔
یہ اسی ترتیب کے نتائج ہیں۔ آپ کی رفتار انٹرنیٹ، سرور اور مقام پر منحصر ہے۔ دوسرے VPS پیکیج یا فراہم کنندے ابھی نہیں آزمائے گئے۔
10. لاگت، رازداری اور فراہم کنندہ کی حدیں
ذاتی VPN ترتیب اور ایک منتخب خروج مقام کا اختیار دیتا ہے۔ اپ ڈیٹ، بل، آلے کی رسائی اور بحالی آپ کی ذمہ داری ہیں۔ یہ ہوسٹنگ فراہم کنندہ سے گمنامی نہیں دیتا، نہ HTTPS کی جگہ لیتا ہے۔
براؤزنگ، ویڈیو، ڈاؤن لوڈ، اپ لوڈ اور رفتار ٹیسٹ VPS ٹریفک کوٹا استعمال کرتے ہیں۔ پینل میں باقی کوٹا دیکھیں۔ حد سے تجاوز پر پیکیج کے مطابق فیس یا پابندی ہو سکتی ہے۔
P2P سے پہلے فراہم کنندہ کی موجودہ شرائط اور متعلقہ قانون دیکھیں۔ پروٹوکول اور مواد کے حقوق الگ ہیں۔ صرف وہ مواد لیں اور بانٹیں جس کا حق ہے؛ ہر ہوسٹ ہر P2P استعمال کی اجازت نہیں دیتا۔
ڈیٹا سینٹر IP پر CAPTCHA، سروس یا اسٹریمنگ پابندی ہو سکتی ہے۔ عام WireGuard ہر فلٹر شدہ نیٹ ورک پر رسائی کی ضمانت نہیں دیتا۔ ایک VPS خرابی کا واحد نقطہ ہے؛ بڑے فراہم کنندہ جیسے متعدد مقام اور متبادل سرور نہیں۔
11. آلات شامل کریں، رسائی ہٹائیں اور دیکھ بھال کریں
ہر آلے کا ایک پروفائل۔ گم شدہ فون کا نامی peer سرور اور باقی پروفائل نقول سے حذف کریں، پھر نیا بنائیں۔ صرف فون کی فائل مٹانے سے سرور کی رسائی منسوخ نہیں ہوتی۔
Ubuntu سکیورٹی اپ ڈیٹ کریں اور ری بوٹ کی ضرورت دیکھیں۔ مناسب وقت ری بوٹ کر کے VPN کی واپسی جانچیں۔ ہوسٹنگ اکاؤنٹ اور SSH محفوظ رکھیں؛ SSH تصدیق الگ مرحلے میں آزمودہ متبادل لاگ اِن کے ساتھ بدلیں۔
ہٹانے کا اسکرپٹ یہ VPN روک کر اپنی ترتیب اور فائر وال قواعد مٹاتا ہے۔ SSH، UFW اور پیکیج رہتے ہیں۔ فارورڈنگ ری بوٹ پر سسٹم پالیسی لگنے تک چلتی ہے۔ VPN ہٹانے سے VPS بل بند نہیں ہوتا؛ ضروری ڈیٹا بچا کر غیر ضروری سرور فراہم کنندہ سے حذف کریں۔
python3 /root/internetspeed-wireguard/manage-client.py remove iphoneapt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-requiredbash /root/internetspeed-wireguard/remove-server.sh --confirm