संबंधित गाइड
Linux सर्वर और कमांड-लाइन टूल को VPN लाइन से चलाना
अपडेट किया गया
Linux पर ज़रूरत के हिसाब से दो रास्ते हैं। पूरी मशीन को लाइन से चलाना हो (Docker इमेज pull, विदेशी एक्सेस वाली सर्विसें, बिना निगरानी चलने वाले सर्वर), तो OpenVPN: /etc/openvpn/client/ में एक प्रोफ़ाइल जो बूट पर शुरू हो। सिर्फ़ कुछ कमांड (git, pip, npm, curl) को लाइन से भेजना हो, तो वेब प्रॉक्सी: प्रॉक्सी का पता http_proxy वेरिएबल में डालें, बाक़ी कुछ नहीं बदलता। डेस्कटॉप Linux पर नेटवर्क मैनेजर से भी इंपोर्ट कर सकते हैं। यह गाइड तीनों रास्ते, लॉग इन जानकारी वाली फ़ाइल, और जाँचने की कमांड बताती है।
पहला रास्ता: पूरी मशीन लाइन से (OpenVPN)
- क्लाइंट इंस्टॉल करें। Debian/Ubuntu:
sudo apt install openvpnFedora:sudo dnf install openvpnArch:sudo pacman -S openvpn - साइट पर लॉग इन करें और OpenVPN पेज से किसी रीजन की .ovpn डाउनलोड करें। Linux वाली प्रोफ़ाइल में लॉग इन जानकारी नहीं होती (नेटवर्क मैनेजर ऐसी फ़ाइलें नहीं लेते), इसलिए एक क्रेडेंशियल फ़ाइल बनाएँ: दो लाइनें, पहले साइट का ईमेल, फिर पासवर्ड। फिर इसे ऐसा कर दें कि सिर्फ़ आप पढ़ सकें:
chmod 600 <credentials-file> - .ovpn को /etc/openvpn/client/<region>.conf में कॉपी करें और उसके अंदर auth-user-pass के बाद क्रेडेंशियल फ़ाइल का पाथ जोड़ें।
- चालू करें और शुरू करें:
sudo systemctl enable --now openvpn-client@<region>स्टेटस देखें:systemctl status openvpn-client@<region>एग्ज़िट जाँचें, इसमें आपका चुना रीजन दिखना चाहिए:curl -s https://ipinfo.io/country - दूसरे रीजन के लिए दूसरी प्रोफ़ाइल डाउनलोड करें और दूसरी यूनिट चालू करें; एक बार में एक ही चलाएँ।
दूसरा रास्ता: सिर्फ़ कमांड-लाइन टूल लाइन से (वेब प्रॉक्सी)
इस साइट के वेब प्रॉक्सी पेज से प्रॉक्सी का पता और आपकी लॉग इन जानकारी सीधे environment variables में डालें (पासवर्ड के ख़ास अक्षरों को URL-encode करें): export https_proxy=https://user:password@proxy-address export http_proxy=$https_proxy इसके बाद उस शेल में curl, wget, git, pip और npm लाइन से जाते हैं, बाक़ी किसी चीज़ पर असर नहीं पड़ता।
Docker daemon शेल के वेरिएबल नहीं पढ़ता: /etc/systemd/system/docker.service.d/proxy.conf में Environment= वाली लाइनें डालें और docker रीस्टार्ट करें; apt के लिए /etc/apt/apt.conf.d/proxy.conf में Acquire::https::Proxy सेट करें।
इस रास्ते में डिज़ाइन के हिसाब से कटने के लिए कोई कनेक्शन होता ही नहीं; root नहीं चाहिए और रूटिंग नहीं बदलती। कंपनी के सर्वरों और सिर्फ़ pull तेज़ करने के लिए सही है; यह उन्हीं प्रोग्रामों पर लागू होता है जो प्रॉक्सी वेरिएबल मानते हैं।
तीसरा रास्ता: डेस्कटॉप Linux पर नेटवर्क मैनेजर से
- network-manager-openvpn-gnome इंस्टॉल करें (इस साइट के OpenVPN पेज पर एक क्लिक से सॉफ़्टवेयर सेंटर खुल जाता है)।
- Settings → Network → VPN → “+” → Import from file (फ़ाइल से इंपोर्ट), .ovpn चुनें, साइट का ईमेल और पासवर्ड डालें, सेव करें।
- ऊपर की बार या ट्रे से VPN चालू/बंद करें। बूट पर अपने आप जुड़ने के लिए वायर्ड या वायरलेस कनेक्शन की सेटिंग में “Automatically connect to VPN” (VPN से अपने आप जुड़ें) टिक करें।
जाँच और दिक़्क़तें
- एग्ज़िट: आउटपुट में country आपका चुना रीजन होना चाहिए:
curl -s https://ipinfo.io - DNS: VPN इंटरफ़ेस पर लाइन से मिला DNS दिखना चाहिए:
resolvectl statusलीक हो रहा हो तो प्रोफ़ाइल में dhcp-option DNS जोड़ें या update-systemd-resolved स्क्रिप्ट इस्तेमाल करें। - AUTH_FAILED: क्रेडेंशियल फ़ाइल ग़लत है या अकाउंट की वैधता ख़त्म; पासवर्ड बदलने के बाद फ़ाइल अपडेट करें।
- TLS handshake timeout: सर्वर तक UDP नहीं पहुँच रहा; रीजन या नेटवर्क बदलें; क्लाउड सर्वर पर security group में बाहर जाने वाला UDP खोलें।
- चीन के अंदर का सर्वर जिसे चीनी मिरर सीधे चाहिए: कनेक्ट होने के बाद सब कुछ लाइन से बाहर जाता है, इसलिए apt / pip / npm को चीन के अंदर के मिरर पर करें, या दूसरे रास्ते से सिर्फ़ ख़ास कमांड लाइन से भेजें।
ध्यान रखने वाली बातें
- Linux मशीन आपके प्लान की एक साथ ऑनलाइन डिवाइस सीमा (व्यक्तिगत 2, फ़ैमिली 4, एंटरप्राइज़ 8) में एक डिवाइस गिनी जाती है, जो बाक़ी डिवाइसों के साथ साझा है; दूसरे रास्ते वाला वेब प्रॉक्सी भी कनेक्शन के हिसाब से गिना जाता है।
- प्रोफ़ाइल और क्रेडेंशियल फ़ाइल ही आपका अकाउंट हैं: इन्हें कभी git रिपॉज़िटरी में commit न करें, न किसी इमेज में डालें।
- पासवर्ड बदलते ही पुरानी प्रोफ़ाइलें तुरंत बेकार हो जाती हैं, यह जान-बूझकर है; क्रेडेंशियल फ़ाइल अपडेट करें।
- क्लाउड सर्वर पर लाइन चलाना प्रोवाइडर की शर्तों के अधीन है; सेवा सिर्फ़ कनेक्शन की अवधि और कुल ट्रैफ़िक दर्ज करती है।
FAQ
Linux वाली प्रोफ़ाइल में लॉग इन जानकारी क्यों नहीं होती?
नेटवर्क मैनेजर लॉग इन जानकारी वाली प्रोफ़ाइलें नहीं लेते और इंपोर्ट फ़ेल हो जाता है, इसलिए Linux प्रोफ़ाइल इसे आपके भरने के लिए छोड़ देती है; systemd के साथ यह क्रेडेंशियल फ़ाइल में जाती है।
क्या सिर्फ़ Docker को लाइन से चला सकते हैं?
हाँ: Docker daemon को उसके अपने प्रॉक्सी वेरिएबल दें (दूसरा रास्ता), या अपने OpenVPN वाला कंटेनर चलाएँ (gluetun), ताकि सिर्फ़ चुने हुए कंटेनर लाइन से जाएँ।
Linux पर निजी नेटवर्क (Tailscale) का क्या?
आधिकारिक स्क्रिप्ट एक लाइन में इंस्टॉल कर देती है; फिर इससे लॉग इन करें: tailscale up --login-server=<this site’s control server> (यानी इस साइट का कंट्रोल सर्वर)। यह तब सही है जब मशीन तक बाहर से पहुँचना हो या एक बार सेट करके हमेशा ऑनलाइन रखनी हो; सिर्फ़ तेज़ pull के लिए OpenVPN या प्रॉक्सी आसान है।
क्या राउटर पर OpenWrt में भी यही तरीक़ा है?
OpenWrt पर luci-app-openvpn इंस्टॉल करें और .ovpn अपलोड करें, तो पूरा LAN लाइन से चलता है; इस साइट के फ़र्मवेयर वाले राउटर पर यह सब नहीं करना पड़ता, बस अकाउंट से लॉग इन करें।