स्वतःच्या VPS वर WireGuard की OpenVPN?
वेग, config चा आकार आणि audit surface यांत WireGuard का पुढे आहे ते पाहा. TCP 443, CA, password किंवा Layer 2 bridging लागल्यास OpenVPN निवडा.
थोडक्यात उत्तर
स्वतःच्या VPS वर एक VPN server चालवणाऱ्या एका व्यक्तीसाठी WireGuard विरुद्ध OpenVPN ही जवळची स्पर्धा नाही: WireGuard निवडा. तो लहान आहे, Linux kernel मध्ये चालतो, एका सेकंदाच्या अल्पांशात connection स्थापित करतो आणि कार्यरत client config साधारण दहा ओळींची असते. OpenVPN ची चार विशिष्ट उपयोगक्षेत्रे आहेत. त्यांपैकी एकही तुमच्यासाठी लागू नसेल, तर तुम्हाला OpenVPN ची गरज नाही.
ही चार उपयोगक्षेत्रे म्हणजे केवळ TCP port 443 ला परवानगी देणाऱ्या network मधून बाहेर पडणे, विद्यमान certificate authority शी जोडणे, password किंवा second factor वापरून नावाने ओळखल्या जाणाऱ्या users चे authentication करणे आणि Layer 2 वर bridging करणे. या शिफारशीमागील पुरावे आणि प्रत्येक अपवाद तुमच्यासाठी लागू होण्याचा नेमका टप्पा पुढील मजकुरात दिला आहे.
सेल्फ-होस्टिंग करणाऱ्यांसाठी WireGuard का निवडले गेले
कोडबेस वाचता येईल इतका लहान आहे. WireGuard प्रकल्पाच्या प्रोटोकॉलच्या अंमलबजावणीत सुमारे 4,000 कोड ओळी आहेत. प्रत्येक क्रिप्टोग्राफिक ऑपरेशनसाठी ज्या OpenSSL लायब्ररीवर तो अवलंबून असतो, तिच्यासह मोजल्यास OpenVPN मध्ये कोडच्या ओळींची संख्या सहा अंकी होते. आकार महत्त्वाचा आहे, कारण प्रत्येक ओळ आक्रमणासाठीची पृष्ठभाग वाढवते. तुम्ही किंवा तुमचा पुनरावलोकनकर्ता 100,000 ओळी वाचणार नाही. 4,000 ओळी वाचणे शक्य आहे.
तो kernel मध्ये चालतो. WireGuard 5.6 पासून mainline Linux मध्ये समाविष्ट आहे. त्यामुळे Ubuntu 24.04 आणि Debian 13 मध्ये तो compile करण्यासाठी काहीही अतिरिक्त लागत नाही. पॅकेट ज्या ठिकाणी आधीपासून असतात, त्याच kernel space मध्ये encrypt केले जातात. ते userspace process मध्ये copy करून पुन्हा परत आणावे लागत नाही. इतर काहीही करण्यापूर्वी हे तपासा:
sudo modprobe wireguard && echo okKVM VPS वर यामुळे ok दिसते. OpenVZ किंवा LXC सारख्या host kernel ची shared वापर करणाऱ्या container virtualisation मध्ये Operation not supported सह अपयश येते, कारण तुमच्या मालकीचा नसलेल्या kernel मध्ये module load करता येत नाही.
काहीही negotiate करावे लागत नाही. WireGuard मध्ये एकच निश्चित cipher suite आहे: डेटासाठी ChaCha20-Poly1305 आणि Curve25519 keys. downgrade करण्यासाठी कोणतीही version नाही आणि चुकीचा पर्याय निवडण्याचीही शक्यता नाही. OpenVPN प्रत्येक client सोबत cipher आणि TLS (transport layer security) version negotiate करते. यामुळे लवचिकता मिळते, पण चुकीच्या configuration ची शक्यता देखील असते. data-ciphers AES-256-GCM:AES-128-CBC सह ठेवलेला server, यापेक्षा चांगले काहीही न देणाऱ्या client साठी CBC cipher वर सहजपणे fallback करेल. Log मध्येही त्याला समस्या म्हणून नोंदवले जात नाही.
Port उत्तर देत नाही. Message authentication check अयशस्वी झालेला WireGuard packet कोणतेही उत्तर न देता टाकून दिला जातो. त्यामुळे काहीही listening वर असो वा नसो, nmap -sU -p 51820 ला open|filtered मिळते. OpenVPN server TCP mode मध्ये client ला स्वीकारायचे नाही असे ठरवण्यापूर्वी TCP handshake पूर्ण करतो. Scanner ला त्या ठिकाणी काहीतरी उपलब्ध आहे हे सिद्ध करण्यासाठी ते पुरेसे असते. tls-crypt सह UDP वर चालणारे OpenVPN जवळपास इतकेच शांत असते. त्यामुळे हा मुद्दा OpenVPN विरुद्ध नसून OpenVPN TCP वर चालवण्याविरुद्ध आहे.
Roaming विनामूल्य आहे. WireGuard peer ची ओळख त्याच्या public key ने होते, address ने नाही. तुमचा laptop घरच्या नेटवर्कवरून mobile hotspot वर जातो आणि नवीन address वरून एक handshake पाठवतो. त्यानंतर server ज्या endpoint ला उत्तर पाठवतो ते endpoint अद्ययावत करतो. पुन्हा connect करण्याची गरज नसते, कारण आधीपासून कोणतेही connection अस्तित्वात नसते. OpenVPN float सह असेच काही करू शकते. मात्र client सामान्यतः पूर्ण TLS session बंद करून पुन्हा तयार करतो. त्यामुळे OpenVPN मध्ये lid उघडल्यानंतरचा pause जाणवतो, पण WireGuard मध्ये जाणवत नाही.
2026 मधील वेग: फरक कमी झाला आहे
अनेक वर्षे वेगाबाबतचा योग्य मुद्दा असा होता की OpenVPN प्रत्येक पॅकेट userspace मध्ये कॉपी करून तेथे encrypt करत असे आणि नंतर ते परत कॉपी करत असे; त्याउलट WireGuard ने कधीही kernel सोडले नाही. आता हे संपूर्ण चित्र नाही. याचा विचार न करणारी तुलना कालबाह्य आहे.
OpenVPN 2.7 फेब्रुवारी 2026 मध्ये upstream ovpn kernel module च्या support सह release झाले. हा module Linux 6.16 मध्ये समाविष्ट करण्यात आला. याला DCO (data channel offload) म्हणतात: control channel userspace मध्येच राहतो आणि मोठ्या प्रमाणातील data path kernel मध्ये हलतो. WireGuard ने नेहमी साधारणपणे हेच केले आहे. ते वापरण्यास पुरेसे नवीन kernel आणि OpenVPN असल्यास throughput वेगळ्या पातळीवर नसून समान श्रेणीत असतो. तुमच्याकडे प्रत्यक्षात काय आहे ते तपासा:
uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3July 2026 पर्यंत stock Ubuntu 24.04 LTS मध्ये OpenVPN 2.6 येते, 2.7 नाही. तसेच ovpn module साठी 2.7 आवश्यक आहे. त्या release मध्ये तुम्हाला offload फक्त जुन्या openvpn-dco-dkms package द्वारे मिळते. हा package चालू kernel विरुद्ध out-of-tree module build करतो. त्यामुळे प्रत्येक kernel upgrade वेळी तो पुन्हा build करावा लागतो. WireGuard मध्ये ही अतिरिक्त प्रक्रिया नाही.
DCO ला वापरण्याच्या कारणांमध्ये धरायचे करण्यापूर्वी त्याच्या मर्यादा समजून घ्या. हे फक्त Layer 3 tunnels support करते. हे केवळ AEAD ciphers स्वीकारते (associated data सह authenticated encryption: AES-GCM किंवा ChaCha20-Poly1305). हे compression support करत नाही. तसेच server वर ते फक्त topology subnet सोबत कार्य करते. या प्रत्येक मर्यादेमुळे OpenVPN च्या मूळ लवचिकतेतील एक भाग कमी होतो. WireGuard सारखे दिसण्यासाठी configure केलेले OpenVPN म्हणजे वेगवान OpenVPN.
या पानासह कोणाच्याही प्रकाशित throughput आकड्यांवर विश्वास ठेवू नका. VPS वरील कमाल वेग सामान्यतः protocol पेक्षा CPU allowance किंवा network allowance मुळे मर्यादित असतो. tunnel मधून iperf3 चालवून स्वतःचा वेग मोजा. त्यानंतर tunnel च्या बाहेर पुन्हा मोजा आणि दोन्हींची तुलना करा.
OpenVPN अजूनही उपयुक्त ठरण्याची कारणे
तुम्हाला TCP port 443 द्वारे बाहेरच्या नेटवर्कपर्यंत पोहोचणे आवश्यक आहे. WireGuard केवळ UDP वापरते आणि हे जाणीवपूर्वक केलेले आहे. त्यामध्ये TCP mode उपलब्ध होणार नाही. केवळ TCP 443 ला परवानगी देणारे हॉटेल नेटवर्क किंवा कॉर्पोरेट proxy proto tcp-server आणि port 443 सह configure केलेले OpenVPN traffic पास करेल, कारण ते traffic सामान्य TLS session सारखे दिसते. त्याच नेटवर्कमधून जाण्यासाठी WireGuard ला wstunnel किंवा udp2raw सारख्या wrapper ची आवश्यकता असते. त्यामुळे चालवायची आणि अद्ययावत ठेवायची आणखी एक process वाढते. हा संघर्ष लक्षात घ्या: त्या IP address वर एखादा web server आधीच TCP 443 वापरत असल्यास, दोघांपैकी एकाला दुसऱ्या port वर हलवावे लागेल.
तुम्ही आधीपासून certificate authority चालवत आहात. OpenVPN X.509 certificates वापरून authentication करते. त्यामुळे ते तुम्ही आधीपासून चालवत असलेल्या PKI (public key infrastructure) मध्ये सहज समाविष्ट होते. Certificates आपोआप expire होतात. Server crl-verify द्वारे वाचत असलेल्या certificate revocation list मध्ये एखादे certificate जोडून ते revoke करता येते. WireGuard मध्ये certificates, expiry किंवा revocation list यांपैकी काहीही नाही. एखादा peer काढण्यासाठी server config संपादित करून ते reload करावे लागते. दहा peers असतील तर ही पद्धत योग्य आहे. चारशे peers असतील आणि audit requirement असेल, तर certificate model तुमच्यासाठी प्रत्यक्ष उपयोगाचे काम करते.
तुम्हाला केवळ keys नव्हे, तर नावाने ओळखले जाणारे users आवश्यक आहेत. OpenVPN auth-user-pass-verify किंवा openvpn-plugin-auth-pam.so सारख्या plugin द्वारे authentication बाह्य system कडे सोपवू शकते. LDAP किंवा one-time-password second factor जोडण्यासाठी हीच पद्धत वापरली जाते. WireGuard मध्ये user ही संकल्पनाच नाही. एखादी key config मध्ये आहे किंवा नाही, एवढेच तपासले जाते. तुमची requirement "Sara ने तिच्या phone वरून code enter केला पाहिजे" अशी असल्यास, WireGuard हे स्वतःहून व्यक्त करू शकत नाही.
तुम्हाला Layer 2 किंवा जुन्या प्रणालीसाठी client आवश्यक आहे. dev tap सह OpenVPN Ethernet frames bridge करते. Broadcast protocols आणि जुन्या LAN games साठी हे महत्त्वाचे आहे. WireGuard केवळ Layer 3 वर कार्य करते आणि पुढेही तसेच राहील. अशा hardware आणि operating systems साठी OpenVPN clients उपलब्ध आहेत ज्यांवर WireGuard app कधीही उपलब्ध होणार नाही. ही दोन्ही कारणे कमी होत आहेत. dev tap DCO शी incompatible आहे. त्यामुळे bridge वापरल्यास तुम्हाला धीमा मार्ग स्वीकारावा लागतो.
या दोन्ही सेटअप्सचा प्रत्यक्ष खर्च
WireGuard ओळख तयार करण्यासाठी एकच command पुरेसा आहे. कंस महत्त्वाचे आहेत, कारण key तयार होण्यापूर्वी ते file mode सेट करतात:
(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.keyOpenVPN साठी याच्याशी समतुल्य प्रक्रिया म्हणजे VPN अस्तित्वात असेपर्यंत तुमच्या ताब्यात राहणारे certificate authority:
sudo apt install -y easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server serverयापैकी कोणतीही यादी अन्यायकारक नाही. CA मुळे expiry आणि revocation मिळते. त्यासाठी अनेक वर्षे सुरक्षित ठेवावी लागणारी private key, लक्षात ठेवावी लागणारी renewal प्रक्रिया आणि key हरवल्यास पुन्हा करावी लागणारी rebuild प्रक्रिया स्वीकारावी लागते. CA मुळे मिळणाऱ्या सुविधांचा वापर करत नसल्यास, तुम्ही विनाकारण त्याची किंमत मोजत आहात. Forwarding, NAT (network address translation) आणि दुपारचा वेळ वाया घालवणाऱ्या handshake failures यांसह WireGuard VPN स्वतःच्या VPS वर host करण्याची संपूर्ण प्रक्रिया तुमच्या VPS वर WireGuard VPN स्वतः host करण्याच्या मार्गदर्शिकेत दिली आहे.
प्रत्येक प्रोटोकॉल तुमच्या firewall कडे काय मागतो
WireGuard साठी ListenPort मधील port वर UDP साठी नेमका एक inbound rule आवश्यक असतो:
sudo ufw allow 51820/udp
sudo ufw status verboseOpenVPN साठी default म्हणून UDP 1194 आवश्यक असतो. तुम्ही तो पर्याय निवडल्यास TCP 443 आवश्यक असतो. त्यानंतर दोन्हींसाठी IP forwarding सुरू करणे आणि source NAT rule जोडणे आवश्यक असते, कारण Linux कडे निर्देशित नसलेली packets Linux system टाकून देतो. दोन्ही protocols साठी हा भाग समान आहे. “tunnel connect होतो, पण internet उपलब्ध नाही” अशा बहुतेक समस्या याच ठिकाणी उद्भवतात. ufw तुमच्यासाठी नवीन असल्यास, VPS वरील ufw firewall ची मूलभूत माहिती यापासून सुरुवात करा. तसेच, बहुतेक providers त्यांच्या control panel मध्ये दुसरा network firewall चालवतात, हे लक्षात ठेवा: packet server पर्यंत पोहोचत नसेल, तर server वर जोडलेला rule काहीही परिणाम करत नाही. port म्हणजे काय आणि Linux त्यावर कसे listen करते हे समजून घेतल्यास या दोन्ही तपासण्या जलद करता येतात.
एका परिच्छेदात निवड कशी करावी
WireGuard चालवा, जोपर्यंत तो तुमच्यासाठी करू शकत नाही अशी विशिष्ट गोष्ट तुम्ही सांगू शकत नाही. प्रतिबंधित network मधून बाहेर जाण्यासाठी TCP 443 आवश्यक असल्यास, तेथे OpenVPN चालवा आणि दोन्ही चालवण्याचा विचार करा: ते वेगवेगळे ports वापरतात आणि एका server वर कोणताही conflict न होता सहअस्तित्वात राहतात. प्रति-वापरकर्ता accounts किंवा second factor आवश्यक असल्यास, त्यासाठी WireGuard ला बदलण्याचा प्रयत्न करू नका. त्याऐवजी त्याच्या वर identity layer ठेवा. स्वतः होस्ट केलेला Headscale control server अंतर्गत WireGuard वापरतो आणि plain WireGuard मध्ये तुम्हाला स्वतः व्यवस्थापित करावी लागणारी account model, key distribution आणि device approval सुविधा जोडतो.
OpenVPN मधून सेवा खंडित न करता स्थलांतर
रूपांतरणाची कोणतीही प्रक्रिया नाही. OpenVPN ची PKI WireGuard कीमध्ये रूपांतरित होत नाही, कारण WireGuard मध्ये रूपांतर करण्यासाठी प्रमाणपत्रे नसतात. प्रत्येक क्लायंटसाठी सर्व्हरच्या की पेअरप्रमाणेच नवीन की पेअर तयार करावे लागते.
स्विच करण्याऐवजी समांतर स्थलांतर करा. UDP 51820 वरील WireGuard आणि 1194 वरील OpenVPN एकाच वेळी त्याच मशीनवर चालू शकतात. त्यामुळे wg0 सुरू करा आणि अलीकडील latest handshake ची नोंद sudo wg show मध्ये दिसते याची खात्री करा. त्यानंतर क्लायंट एकावेळी एक स्थलांतरित करा. OpenVPN मधील पीअरची यादी बदलणे थांबल्यावर sudo systemctl disable --now openvpn-server@server वापरून सेवा थांबवा. खात्री होईपर्यंत CA फाइल्स जतन ठेवा, कारण हटवलेल्या CA वर रद्द केलेल्या क्लायंटची पुन्हा निर्मिती करता येत नाही.
एक गोष्ट मात्र हस्तांतरित होत नाही: तुमची username आणि password खाती तसेच त्यांच्याशी संबंधित रद्दीकरण नोंद. जुना सर्व्हर बंद करण्यापूर्वी हे कुठे ठेवायचे ते ठरवा. त्यानंतर ठरवणे उशीराचे ठरेल.
FAQ
WireGuard, OpenVPN पेक्षा अधिक वेगवान आहे का?
सामान्य Ubuntu 24.04 server वर होय, आणि मोठ्या फरकाने. WireGuard encryption kernel मध्ये करते, तर OpenVPN 2.6 प्रत्येक packet userspace process मधून पाठवते. OpenVPN 2.7 आणि Linux 6.16 मधील ovpn kernel module वापरल्यास data path देखील kernel मध्ये असतो आणि दोन्ही एकाच श्रेणीत येतात. Blog मधील एखाद्या आकड्यावर विश्वास ठेवण्याऐवजी tunnel मधून iperf3 वापरून स्वतःची मोजणी करा. VPS वर मर्यादा सहसा तुमचा CPU किंवा bandwidth allowance असतो.
WireGuard TCP port 443 वर चालवता येतो का?
स्वतःहून नाही. WireGuard ची रचना केवळ UDP साठी केली आहे आणि TCP mode आणण्याची योजना नाही. केवळ TCP 443 ला परवानगी देणारे network पार करण्यासाठी तुम्ही ते wstunnel किंवा udp2raw सारख्या tunnel मध्ये गुंडाळता. त्यामुळे दोन्ही टोकांवर चालवण्यासाठी आणि patch करण्यासाठी एक process अतिरिक्त लागतो. ही मर्यादा तुमच्या नेहमीच्या कार्यपरिसरात असल्यास, proto tcp-server आणि port 443 सह OpenVPN हा सोपा पर्याय आहे.
OpenVPN आता असुरक्षित आहे का?
नाही. AES-256-GCM सारखा AEAD cipher वापरणारे आणि tls-crypt enabled असलेले सध्याचे OpenVPN हे विश्वसनीय VPN आहे. WireGuard च्या बाजूचा मुद्दा वेगळा आहे: OpenVPN मध्ये code आणि options दोन्ही खूप अधिक आहेत. त्यामुळे थकलेल्या administrator कडे ते चुकीच्या पद्धतीने configure करण्याचे अनेक अधिक मार्ग असतात. पर्याय कमी असतील तर चुका कमी होतात.
VPS वर वैयक्तिक VPN साठी मी कोणता पर्याय निवडावा?
WireGuard. प्रत्येक device साठी एक key pair, सुमारे दहा lines ची एक config file, एक UDP port open आणि handshake सुरू झाल्याचे तुमच्या लक्षात येण्यापूर्वीच पूर्ण होतो. UDP block करणाऱ्या networks मधून तुम्ही नियमितपणे connect करत असाल किंवा आधीपासून अस्तित्वात असलेल्या certificate authority किंवा user directory मध्ये समाविष्ट होणे आवश्यक असेल, तरच OpenVPN निवडा.