InternetSpeed.online

भाषा

लेख

व्यावहारिक गाइड

स्क्रिप्ट से 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 से अपने कंप्यूटर पर लौटें।

अपने कंप्यूटर का PowerShell या Terminal — पासवर्ड लॉगिन
ssh root@SERVER_IP
अपने कंप्यूटर का PowerShell या Terminal — मौजूदा SSH कुंजी
ssh -i ~/.ssh/id_ed25519 root@SERVER_IP
सर्वर पर
cat /etc/os-release
exit
यदि ssh कमांड नहीं मिले

Windows में PowerShell को Run as administrator से खोलकर नीचे का कमांड चलाएँ। इंस्टॉलेशन के बाद बंद करके सामान्य PowerShell खोलें। Ubuntu में Ubuntu वाला कमांड चलाएँ। macOS में SSH क्लाइंट मौजूद है।

Windows — प्रशासक PowerShell में SSH क्लाइंट इंस्टॉल करें
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

कमांड जस का तस कॉपी करें। OpenSSH.Client~~~~0.0.1.0 Windows घटक का पहचानकर्ता है; टिल्डे और अंक न बदलें।

Ubuntu Desktop — SSH क्लाइंट इंस्टॉल करें
sudo apt update
sudo apt install openssh-client

3. सेटअप पैकेज डाउनलोड करके देखें

ZIP डाउनलोड करके निकालें। पाँचों स्क्रिप्ट wireguard-guide फ़ोल्डर में साथ रखें। नीचे Windows, Mac या Ubuntu का केवल एक रास्ता अपनाएँ।

स्क्रिप्ट VPS पर WireGuard और आपके डिवाइस की प्रोफ़ाइल बनाती है। सर्वर का पासवर्ड कई बार माँगा जा सकता है।

सेटअप स्क्रिप्ट डाउनलोड करें (.zip)

4a. Windows से सर्वर सेट अप करें

File Explorer में निकाला हुआ wireguard-guide फ़ोल्डर खोलें। एड्रेस बार में powershell लिखकर Enter दबाएँ; PowerShell इसी फ़ोल्डर में खुलेगा।

दो में से एक कमांड चलाएँ। SERVER_IP और, कुंजी इस्तेमाल हो तो, उसका पथ बदलें।

-Device के बाद windows प्रोफ़ाइल का नाम है। दूसरे कंप्यूटर के लिए laptop जैसा अलग नाम दें। अलग प्रोफ़ाइल से एक डिवाइस की पहुँच बाकी को काटे बिना हटाई जा सकती है।

पूरा होने पर File Explorer के एड्रेस बार में %USERPROFILE%\WireGuard डालें। सर्वर और डिवाइस के नाम वाले फ़ोल्डर में windows.conf मिलेगा। स्क्रिप्ट पूरा पथ भी दिखाती है। चरण 5 में VPN चालू करें।

PowerShell — पासवर्ड प्रमाणीकरण
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows
PowerShell — SSH कुंजी प्रमाणीकरण
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows -IdentityFile "$HOME\.ssh\id_ed25519"
यदि PowerShell स्क्रिप्ट रोके

यदि त्रुटि कहे कि फ़ाइल पर डिजिटल हस्ताक्षर नहीं हैं, इसी फ़ोल्डर में यह कमांड चलाकर सेटअप दोबारा आज़माएँ।

PowerShell — डाउनलोड की गई फ़ाइल अनब्लॉक करें
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1

यदि स्क्रिप्ट चलाना बंद है, ये कमांड चलाकर पुष्टि करें और फिर कोशिश करें। यह बदलाव PowerShell विंडो बंद होने तक रहता है।

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 मिलेगा। स्क्रिप्ट पूरा पथ भी दिखाती है।

macOS Terminal — पासवर्ड
bash ./connect-wireguard-server.sh SERVER_IP mac
macOS Terminal — SSH कुंजी
bash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed25519

4c. Ubuntu Desktop से सर्वर सेट अप करें

Ctrl+Alt+T दबाएँ। cd और स्पेस लिखें, wireguard-guide फ़ोल्डर Terminal में खींचकर Enter दबाएँ।

SERVER_IP बदलकर एक कमांड चलाएँ। ubuntu प्रोफ़ाइल नाम है। इस लॉन्चर और SSH लॉगिन के लिए sudo नहीं चाहिए।

फ़ाइल मैनेजर में Home, WireGuard और सर्वर-डिवाइस फ़ोल्डर खोलें। ubuntu.conf वास्तविक सर्वर पते के साथ ~/WireGuard/SERVER_IP-ubuntu/ubuntu.conf में है। कनेक्शन के लिए NetworkManager इस्तेमाल होगा।

Ubuntu Desktop पर — पासवर्ड
bash ./connect-wireguard-server.sh SERVER_IP ubuntu
Ubuntu Desktop पर — SSH कुंजी
bash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed25519

5a. Windows या macOS कनेक्ट करें

आधिकारिक WireGuard ऐप इंस्टॉल करें। बनी हुई .conf फ़ाइल आयात करें, VPN अनुमति स्वीकारें और टनल चालू करें। आयात विकल्प का नाम संस्करण के अनुसार बदल सकता है।

प्रोफ़ाइल IPv4 को टनल में भेजती है और IPv6 के बाहर जाने से बचाने के लिए उसकी डिफ़ॉल्ट रूट भी रखती है। सर्वर IPv6 इंटरनेट नहीं देता। नीचे डिवाइस का वास्तविक व्यवहार जाँचें।

प्रोफ़ाइल में निजी कुंजी है। उसकी कॉपी रखने वाला व्यक्ति डिवाइस की VPN पहचान इस्तेमाल करने की कोशिश कर सकता है। इसे सहायता टिकट, ऑनलाइन QR जनरेटर या अन्य डिवाइसों पर साझा न करें।

आधिकारिक WireGuard डाउनलोड

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 से जाँच और डिस्कनेक्ट कर सकते हैं।

Ubuntu Desktop — NetworkManager जाँचें
nmcli --version
systemctl is-active NetworkManager
Ubuntu Desktop — एक बार आयात और DNS सेटअप
sudo 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 "~."
Ubuntu Desktop — कनेक्ट करें
sudo nmcli connection up ubuntu
nmcli connection show --active
Ubuntu Desktop — डिस्कनेक्ट करें
sudo nmcli connection down ubuntu

6. QR से iPhone या Android जोड़ें

नीचे App Store या Google Play लिंक से आधिकारिक WireGuard ऐप इंस्टॉल करें।

कंप्यूटर से ssh root@SERVER_IP या अपने SSH कुंजी कमांड से VPS में फिर जाएँ। फ़ोन का कमांड प्रोफ़ाइल बनाकर QR दिखाता है।

फ़ोन के WireGuard में QR स्कैन करके टनल जोड़ना चुनें। कंप्यूटर का कोड स्कैन करें, नाम दें, VPN अनुमति स्वीकारें और चालू करें।

हर फ़ोन की अलग प्रोफ़ाइल रखें। QR साझा न करें: उससे VPN पहुँच मिलती है। कोड की पंक्तियाँ टूटें तो Terminal विंडो बड़ी करके फिर दिखाएँ।

सर्वर पर — iPhone प्रोफ़ाइल बनाएँ
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.conf
सर्वर पर — अलग Android प्रोफ़ाइल बनाएँ
python3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf

iPhone के लिए WireGuard — App Store

Android के लिए WireGuard — Google Play

7. जाँचें कि इंटरनेट VPN से जा रहा है

VPN चालू करने से पहले नीचे My IP खोलकर पता लिख लें। WireGuard चालू करें, My IP रीफ़्रेश करके VPS के सार्वजनिक IPv4 से मिलाएँ।

पेज खुले और VPS का पता दिखे तो उस ब्राउज़र का कनेक्शन VPN से है। पुराना पता रहे तो समस्या निवारण देखें।

यह ब्राउज़र जाँच है, सभी ऐप या VPN टूटने पर सुरक्षा की पुष्टि नहीं। अतिरिक्त जाँच DNS और IPv6 की है।

अपना सार्वजनिक IP जाँचें

वैकल्पिक: IPv6 और DNS जाँचें

IPv6: पहले Test IPv6 खोलकर देखें कि IPv6 पता है या नहीं। VPN जोड़कर फिर जाँचें। इस IPv4 सेटअप में IPv6 इंटरनेट काम नहीं करना चाहिए। सामान्य IPv6 दिखे तो वह टनल के बाहर जा रहा है। पहले IPv6 न हो तो यह परीक्षण IPv6 नेटवर्क का व्यवहार नहीं बता सकता।

DNS: VPN चालू रखकर DNS Leak Test में Standard test चलाएँ। प्रोफ़ाइल Cloudflare DNS इस्तेमाल करती है। घरेलू इंटरनेट प्रदाता दिखे तो डिवाइस DNS जाँचें। दूसरा प्रदाता ब्राउज़र के Secure DNS से भी आ सकता है; वह अपने आप लीक का प्रमाण नहीं है। नतीजे हर ऐप की सुरक्षा की गारंटी नहीं हैं।

Test IPv6 खोलें

DNS Leak Test खोलें

8. कनेक्शन की समस्याएँ सुलझाएँ

My IP पर सामान्य पता हो तो WireGuard में आयात किया कनेक्शन चालू होने की जाँच करें। एक बार बंद-चालू करके My IP रीफ़्रेश करें।

VPN चालू होने पर साइट बंद हो तो VPN बंद करके वही पेज खोलें। तब भी विफल हो तो सामान्य इंटरनेट ठीक करें। केवल VPN पर विफल हो तो नीचे जाँचें।

तुलना के लिए कंप्यूटर को फ़ोन हॉटस्पॉट से जोड़कर VPN आज़माएँ। फ़ोन पर Wi-Fi बंद करके मोबाइल डेटा आज़माएँ; डेटा शुल्क लग सकता है। यह अस्थायी जाँच है। केवल मोबाइल पर चले तो समस्या उस Wi-Fi कनेक्शन से जुड़ी है, सटीक कारण अभी स्पष्ट नहीं।

सेटअप त्रुटि पर रुके तो अंतिम संदेश रखें। कारण ठीक करके उसी डिवाइस नाम से कमांड फिर चलाएँ। मौजूदा प्रोफ़ाइल बची रहेगी।

जाँचें कि VPN सर्वर चल रहा है

चरण 2 की तरह SSH में जाकर कमांड चलाएँ। नतीजा active होना चाहिए। inactive या failed पर रीस्टार्ट कमांड चलाकर फिर जाँचें। active न हो तो त्रुटि रखें।

सर्वर पर — WireGuard जाँचें
systemctl is-active wg-quick@wg0
सर्वर पर — निष्क्रिय WireGuard रीस्टार्ट करें
systemctl 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 हो लेकिन साइट न खुले तो परिणाम और ऐप की त्रुटि या लॉग रखें। उन्नत नेटवर्क सेटिंग बेतरतीब बदलना निदान कठिन बना सकता है।

सर्वर पर — VPN स्थिति देखें
wg show

9. कितनी गति मिल सकती है?

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 ट्रैफ़िक; बनाते समय कीमत US$5 प्रति माह थी।

ये इस सेटअप के नतीजे हैं। आपकी गति इंटरनेट, सर्वर और स्थान पर निर्भर है। अन्य VPS योजनाओं या प्रदाताओं की तुलना अभी नहीं की गई।

10. लागत, गोपनीयता और प्रदाता की सीमाएँ

अपना VPN कॉन्फ़िगरेशन और एक चुना निकास स्थान नियंत्रित करने देता है। अपडेट, बिल, डिवाइस पहुँच और बहाली आपकी ज़िम्मेदारी हैं। यह होस्टिंग प्रदाता के सामने गुमनामी या HTTPS का विकल्प नहीं देता।

ब्राउज़िंग, वीडियो, डाउनलोड, अपलोड और गति परीक्षण VPS ट्रैफ़िक कोटा खर्च करते हैं। पैनल में शेष कोटा देखें। सीमा पार होने पर योजना के अनुसार अतिरिक्त शुल्क या रोक हो सकती है।

P2P से पहले प्रदाता की मौजूदा शर्तें और लागू कानून पढ़ें। प्रोटोकॉल और सामग्री के अधिकार अलग हैं। वही सामग्री डाउनलोड और साझा करें जिसका अधिकार है; हर होस्ट सभी P2P उपयोग नहीं स्वीकारता।

डेटा सेंटर IP पर CAPTCHA, सेवा या स्ट्रीमिंग रोक मिल सकती है। सामान्य WireGuard हर फ़िल्टर किए नेटवर्क में पहुँच का वादा नहीं करता। एक VPS एक ही विफलता बिंदु है; बड़े प्रदाता जैसे कई स्थान और वैकल्पिक सर्वर नहीं मिलते।

11. डिवाइस जोड़ें, पहुँच हटाएँ और रखरखाव करें

हर डिवाइस की एक प्रोफ़ाइल रखें। खोए फ़ोन का नाम वाला peer सर्वर से और बची प्रोफ़ाइल कॉपियाँ हटाएँ; फिर नया प्रोफ़ाइल बनाएँ। केवल फ़ोन की फ़ाइल मिटाने से सर्वर की पहुँच रद्द नहीं होती।

Ubuntu सुरक्षा अपडेट करें और रीबूट की ज़रूरत जाँचें। सुविधाजनक समय रीबूट करके VPN लौटने की पुष्टि करें। होस्टिंग खाता और SSH सुरक्षित रखें; SSH प्रमाणीकरण अलग चरण में, जाँचे हुए वैकल्पिक लॉगिन के साथ बदलें।

हटाने की स्क्रिप्ट इस VPN को रोककर अपने कॉन्फ़िगरेशन और फ़ायरवॉल नियम मिटाती है। SSH, UFW और पैकेज रहते हैं। फ़ॉरवर्डिंग रीबूट पर सिस्टम नीति लागू होने तक चालू रहती है। VPN हटाने से VPS बिल बंद नहीं होता; ज़रूरी डेटा बचाकर अनावश्यक सर्वर प्रदाता के पैनल में हटाएँ।

सर्वर पर — iPhone प्रोफ़ाइल रद्द करें
python3 /root/internetspeed-wireguard/manage-client.py remove iphone
सर्वर पर — अपडेट और रीबूट की ज़रूरत देखें
apt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-required
सर्वर पर — VPN कॉन्फ़िगरेशन हटाएँ (सभी क्लाइंट कटेंगे)
bash /root/internetspeed-wireguard/remove-server.sh --confirm