SSD Nodes Learn Hosting plans →
मार्गदर्शक Matt Connorद्वारे Matt Connor · अपडेटेड 2026-10-30

स्वतःचा VPN: WireGuard की OpenVPN?

स्वतःच्या VPS वर VPN चालवत असाल, तर WireGuard वेग, सुमारे 10 ओळींची client config आणि लहान audit surface यामुळे योग्य ठरतो. TCP 443, CA, users किंवा Layer 2 हवे असल्यासच OpenVPN निवडा.

थोडक्यात उत्तर

स्वतःच्या VPS वर VPN server चालवणाऱ्या एका व्यक्तीसाठी WireGuard विरुद्ध OpenVPN ही जवळची स्पर्धा नाही: WireGuard निवडा. तो अधिक लहान आहे, Linux kernel मध्ये चालतो, एका सेकंदाच्या काही अंशात कनेक्ट होतो आणि कार्यरत client config सुमारे दहा ओळींची असते. OpenVPN ची चार वास्तविक कामे अजूनही आहेत; त्यांपैकी एकही काम तुमचे नसेल, तर तुम्हाला OpenVPN ची गरज नाही.

ही चार कामे म्हणजे फक्त TCP port 443 ला अनुमती देणाऱ्या network मधून बाहेर पडणे, विद्यमान certificate authority शी जोडले जाणे, password किंवा second factor वापरून नावाने ओळखल्या जाणाऱ्या users चे authentication करणे आणि Layer 2 वर bridging करणे. या शिफारसीमागील पुरावे आणि प्रत्येक अपवाद तुमच्यावर नेमका कधी लागू होतो, हे पुढे दिले आहे.

स्वतः होस्ट केलेल्या सेवांसाठी WireGuard का निवडले गेले

Codebase वाचता येईल इतका लहान आहे. WireGuard प्रकल्पाची protocol implementation साधारण 4,000 lines of code ची आहे. प्रत्येक cryptographic operation साठी OpenSSL library वर अवलंबून असलेल्या OpenVPN ची मोजणी केली, तर त्याचा आकार सहा आकडी होतो. आकार महत्त्वाचा आहे, कारण प्रत्येक line ही attack surface असते. तुम्ही किंवा तुमचा reviewer 100,000 lines वाचणार नाही. 4,000 lines मात्र वाचता येतात.

ते kernel मध्ये चालते. WireGuard 5.6 पासून mainline Linux मध्ये समाविष्ट आहे. त्यामुळे Ubuntu 24.04 आणि Debian 13 मध्ये ते compile करण्याची गरज नसते. Packets ज्या ठिकाणी आधीपासून असतात, तिथेच म्हणजे kernel space मध्ये encrypt केले जातात. ते userspace process मध्ये पाठवून पुन्हा परत आणण्याची गरज नसते. इतर कोणतीही तपासणी करण्यापूर्वी हे तपासा:

sudo modprobe wireguard && echo ok

KVM VPS वर यामुळे ok असे output मिळते. OpenVZ किंवा LXC सारख्या host kernel share करणाऱ्या container virtualisation मध्ये हे Operation not supported सह fail होते, कारण तुमच्या मालकीचा नसलेल्या kernel मध्ये तुम्ही module load करू शकत नाही.

काहीही negotiate करावे लागत नाही. WireGuard मध्ये एकच fixed cipher suite आहे: data साठी ChaCha20-Poly1305 आणि keys साठी Curve25519. Downgrade करण्यासाठी कोणतीही version नसते आणि चुकीची ठरू शकणारा कोणताही option नसतो. OpenVPN प्रत्येक client सोबत cipher आणि TLS (transport layer security) version negotiate करते. ही flexibility आहे, पण misconfiguration देखील याच ठिकाणी होऊ शकते. data-ciphers AES-256-GCM:AES-128-CBC सह ठेवलेला server यापेक्षा चांगले काहीही offer न करणाऱ्या client साठी CBC cipher वर सहज fallback करतो. Log मध्ये हा कमकुवत cipher समस्या म्हणून दाखवला जात नाही. Data channel offload उपलब्ध असताना, CBC entry मुळे offload बंद झाल्याची OpenVPN note दाखवते. ही speed संबंधी warning आहे, security संबंधी नाही.

Port उत्तर देत नाही. Message authentication check मध्ये fail होणारा WireGuard packet कोणतेही reply न देता drop केला जातो. त्यामुळे nmap -sU -p 51820 ला WireGuard server आणि firewall ने शांतपणे drop केलेला port यांच्यात फरक करता येत नाही. दोन्हींसाठी open|filtered परत मिळते. काहीही listening नसलेला unfiltered port मात्र स्वतःची माहिती देतो, कारण kernel ICMP port unreachable ने उत्तर देते आणि nmap त्याला closed म्हणून report करते. TCP mode मधील OpenVPN server तुम्हाला स्वीकारायचे नाही असे ठरवण्यापूर्वी TCP handshake पूर्ण करतो. Scanner ला तिथे काहीतरी उपलब्ध आहे हे सिद्ध करण्यासाठी ते पुरेसे असते. tls-crypt सह UDP वर चालणारे OpenVPN जवळपास इतकेच शांत असते. त्यामुळे हा मुद्दा OpenVPN विरुद्ध नसून OpenVPN TCP वर चालवण्याविरुद्ध आहे.

Roaming साठी अतिरिक्त खर्च नाही. WireGuard peer ची ओळख त्याच्या public key ने होते, address ने नाही. तुमचा laptop घरच्या network वरून mobile hotspot वर जातो आणि नवीन address वरून एक handshake पाठवतो. त्यानंतर server ज्या endpoint ला reply करतो तो update होतो. काहीही reconnect होत नाही, कारण कोणतेही connection प्रत्यक्षात कायमचे connected नव्हते. OpenVPN float सह अशीच प्रक्रिया करू शकते. मात्र client सामान्यतः पूर्ण TLS session बंद करून पुन्हा तयार करतो. म्हणून lid उघडल्यानंतरची pause OpenVPN वर जाणवते, पण WireGuard वर जाणवत नाही.

2026 मधील वेग: kernel offload शिवाय फरक कमी होत नाही

अनेक वर्षे वेगाबाबतचा प्रामाणिक निष्कर्ष असा होता की OpenVPN प्रत्येक packet userspace मध्ये कॉपी करून तिथे encrypt करते आणि पुन्हा परत कॉपी करते, तर WireGuard kernel मधून बाहेरच जात नाही. Stock Ubuntu 24.04 server वर आजही स्थिती अशीच आहे आणि WireGuard मोठ्या फरकाने अधिक वेगवान आहे. 2026 मध्ये बदल असा झाला की kernel आणि OpenVPN ची आवृत्ती दोन्ही त्याला support करत असल्यास OpenVPN आता data path kernel मध्ये हलवू शकते. त्यामुळे हा बदल दुर्लक्षित करणारी तुलना कालबाह्य आहे.

OpenVPN 2.7 February 2026 मध्ये upstream ovpn kernel module च्या support सह release झाले. हा module Linux 6.16 मध्ये समाविष्ट झाला. याला DCO (data channel offload) म्हणतात. Control channel userspace मध्येच राहतो आणि मुख्य data path kernel मध्ये हलतो. WireGuard सुरुवातीपासून साधारणपणे असेच काम करते. DCO वापरण्यास पुरेसे नवीन kernel आणि OpenVPN असल्यास throughput वेगळ्या वर्गात राहत नाही; तो त्याच वर्गात येतो. तुमच्याकडे प्रत्यक्षात काय उपलब्ध आहे ते तपासा:

uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3

October 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 मध्ये नाही. Ubuntu 26.04 LTS मध्ये OpenVPN 2.7.0 आणि Linux 7.0 kernel येतात. दोन्ही ovpn साठी पुरेसे नवीन आहेत. त्यामुळे त्या release वर वरील modinfo line तपासावी.

DCO वर अवलंबून राहण्यापूर्वी त्याच्या मर्यादा नीट समजून घ्या. हे फक्त Layer 3 tunnels support करते. हे केवळ AEAD ciphers स्वीकारते (associated data सह authenticated encryption: AES-GCM किंवा ChaCha20-Poly1305). हे compression support करत नाही. तसेच server वर ते फक्त topology subnet सोबत काम करते. या प्रत्येक मर्यादेमुळे OpenVPN च्या मूळ flexibility मधील एक भाग कमी होतो. WireGuard सारखे configured केलेले OpenVPN म्हणजे वेगवान OpenVPN.

या पानावरील आकड्यांसह कोणाच्याही प्रकाशित throughput आकड्यांवर विश्वास ठेवू नका. VPS वरील मर्यादा साधारणपणे protocol पेक्षा CPU allowance किंवा network allowance असते. Tunnel मधून चालणाऱ्या iperf3 ने स्वतःचे मोजमाप करा. त्यानंतर tunnel च्या बाहेर पुन्हा मोजमाप करा आणि दोन्हींची तुलना करा.

OpenVPN अजूनही उपयुक्त ठरण्याची कारणे

तुम्हाला TCP port 443 वरून बाहेर जाणे आवश्यक आहे. WireGuard केवळ UDP वापरतो आणि हे जाणीवपूर्वक केलेले आहे. त्यात TCP mode येणार नाही. केवळ port number वर filter लावणारे hotel network सहसा proto tcp-server आणि port 443 सह configured केलेले OpenVPN पार करू देतात. याचा disguise असा गैरसमज करू नका: TCP वर चालणारे OpenVPN सामान्य TLS session ऐवजी स्वतःचे packet framing वापरते. त्यामुळे HTTPS ची तपासणी किंवा termination करणारा corporate firewall किंवा proxy ते ओळखून block करू शकतो. त्याच network मधून जाण्यासाठी WireGuard ला wstunnel किंवा udp2raw सारखा wrapper आवश्यक असतो. त्यामुळे चालवायची आणि patched ठेवायची आणखी एक process वाढते. हा conflict लक्षात घ्या: त्या IP address वर एखादा web server आधीच TCP 443 वापरत असेल, तर या दोघांपैकी एकाला दुसऱ्या port वर हलवावे लागेल.

तुम्ही आधीच certificate authority चालवत आहात. OpenVPN X.509 certificates वापरून authentication करते. त्यामुळे तुम्ही आधीपासून चालवत असलेल्या PKI (public key infrastructure) मध्ये ते सहज समाविष्ट होते. Certificates आपोआप expire होतात. crl-verify द्वारे server वाचत असलेल्या certificate revocation list मध्ये एखादे certificate जोडून ते revoke करता येते. WireGuard मध्ये certificates, expiry किंवा certificate revocation list यापैकी काहीही नसते. Peer काढण्यासाठी server config संपादित करून ते reload करावे लागते. दहा peers असतील तर ही पद्धत योग्य आहे. पण audit requirement असलेल्या चारशे peersच्या वातावरणात certificate model प्रत्यक्ष उपयोगी पडते.

तुम्हाला केवळ keys नव्हे, तर named 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 प्रविष्ट करावा", तर WireGuard हे स्वतःहून व्यक्त करू शकत नाही.

तुम्हाला Layer 2 किंवा अतिशय जुन्या system साठी 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.key

OpenVPN साठी याच्याशी समतुल्य प्रक्रिया म्हणजे 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 verbose

OpenVPN साठी 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 सर्व्हरवर होय, आणि मोठ्या फरकाने. कारण WireGuard kernel मध्ये encryption करते, तर OpenVPN 2.6 प्रत्येक packet userspace process मधून पाठवते. OpenVPN 2.7 आणि Linux 6.16 मधील ovpn kernel module वापरल्यास data path देखील kernel मध्ये असतो आणि दोन्हींची कार्यक्षमता समान पातळीवर येते. ब्लॉगवरील एखाद्या आकड्यावर विश्वास ठेवण्याऐवजी tunnel मधून iperf3 वापरून स्वतःच्या प्रणालीची चाचणी घ्या. VPS वर मर्यादा सहसा CPU किंवा bandwidth allowance ही असते.

WireGuard TCP port 443 वर चालवता येतो का?

स्वतंत्रपणे नाही. WireGuard रचनेनुसार फक्त UDP वापरते आणि TCP mode नियोजित नाही. फक्त TCP 443 ला परवानगी देणाऱ्या network मधून जाण्यासाठी ते wstunnel किंवा udp2raw सारख्या tunnel मध्ये wrap करावे लागते. त्यामुळे दोन्ही टोकांवर चालवण्यासाठी आणि patch करण्यासाठी एक process अतिरिक्त ठेवावा लागतो. ही मर्यादा तुमच्या नेहमीच्या कार्यपरिस्थितीचा भाग असल्यास, फक्त port नुसार filtering करणाऱ्या network वर proto tcp-server आणि port 443 सह OpenVPN हा अधिक सोपा पर्याय आहे. मात्र HTTPS ची तपासणी करणारा proxy ते ओळखून block करू शकतो.

OpenVPN आता असुरक्षित आहे का?

नाही. AES-256-GCM सारखा AEAD cipher आणि tls-crypt enabled असलेले अद्ययावत OpenVPN हे विश्वासार्ह VPN आहे. WireGuard च्या बाजूचा मुद्दा वेगळा आहे: OpenVPN मध्ये code आणि options खूप अधिक आहेत. त्यामुळे थकलेल्या administrator कडून चुकीची configuration होण्याचे मार्गही अधिक असतात. पर्याय कमी असतील, तर चुकीच्या निवडीही कमी होतात.

VPS वर वैयक्तिक VPN साठी कोणते निवडावे?

WireGuard. प्रत्येक device साठी एक key pair, सुमारे दहा lines असलेली एक config file, उघडा ठेवायचा एक UDP port आणि सुरू झाल्याचे जाणवण्यापूर्वी पूर्ण होणारा handshake. UDP block करणाऱ्या network वरून तुम्ही नियमितपणे connect करत असाल, किंवा आधीपासून उपलब्ध असलेल्या certificate authority किंवा user directory शी जुळवणे आवश्यक असेल, तरच OpenVPN निवडा.

हा लेख उपयुक्त होता का?