NoctisNode
← गाइडनेटवर्किंग2026-10-238 मिनट

VPS पर WireGuard PersistentKeepalive 25 और PresharedKey

PersistentKeepalive = 25 हर 25 सेकंड में keepalive भेजता है ताकि NAT टनल खुला रखे; इसे NAT के पीछे वाले क्लाइंट पर सेट करें। PresharedKey एक symmetric, post-quantum सुरक्षा परत जोड़ता है।

संक्षेप में: `PersistentKeepalive = 25` WireGuard को हर 25 सेकंड में peer को एक छोटा authenticated पैकेट भेजने को कहता है, जिससे NAT और stateful firewall mappings ज़िंदा रहती हैं और दूसरी तरफ़ से आप तक पहुँचा जा सकता है। आमतौर पर आप इसे सिर्फ़ उस peer पर सेट करते हैं जो NAT के पीछे है (लैपटॉप, फ़ोन या होम राउटर), public IP वाले VPS पर नहीं। `PresharedKey` हर peer जोड़ी के लिए एक वैकल्पिक अतिरिक्त 256-bit symmetric secret है, जो `wg genpsk` से बनता है और Curve25519 पर भविष्य के quantum हमलों से बचाव के रूप में handshake में मिलाया जाता है।

यह गाइड दोनों विकल्पों को समझाती है और WireGuard VPS के लिए काम करने वाला सर्वर और क्लाइंट config देती है। NAT और DNS के साथ पूरे VPN सेटअप के लिए देखें WireGuard VPN गाइड।

PersistentKeepalive = 25 असल में क्या करता है

WireGuard डिज़ाइन से शांत है: जब कोई डेटा नहीं बहता, तो यह कुछ नहीं भेजता। यह प्राइवेसी और बैटरी के लिए अच्छा है, लेकिन NAT और connection tracking करने वाले राउटर निष्क्रिय UDP mappings हटा देते हैं, अक्सर 30 सेकंड बाद और कभी-कभी कुछ मिनट बाद। Mapping हटते ही सर्वर के पैकेट NAT के पीछे वाले क्लाइंट तक तब तक नहीं पहुँच पाते जब तक क्लाइंट फिर से कुछ न भेजे।

`PersistentKeepalive` सेकंड में एक अंतराल है। `25` के साथ, जब भी peer ने 25 सेकंड तक कुछ नहीं भेजा हो, वह एक खाली, एन्क्रिप्टेड keepalive भेजता है। 25 की वैल्यू WireGuard डॉक्यूमेंटेशन में सुझाई गई है क्योंकि यह सबसे छोटे आम UDP timeouts से सुरक्षित रूप से नीचे रहती है। यह सेटिंग डिफ़ॉल्ट रूप से बंद (`0`) है, और ओवरहेड प्रति peer लगभग हर 25 सेकंड में एक छोटा पैकेट है।

वैल्यूअसरकब इस्तेमाल करें
0 या सेट नहींकोई keepalive नहीं; निष्क्रिय होने पर टनल चुप रहता हैदोनों peers के पास public IP हैं, या क्लाइंट ही हमेशा ट्रैफ़िक शुरू करता है
2525 सेकंड की निष्क्रियता पर keepaliveNAT या CGNAT के पीछे क्लाइंट जिस तक पहुँच बनी रहनी चाहिए
15–20ज़्यादा बार keepaliveअसामान्य रूप से आक्रामक UDP timeouts वाले नेटवर्क
60+कम पैकेट, mapping खोने का ज़्यादा जोखिमशायद ही उपयोगी; ज़्यादातर NAT डिवाइस इससे पहले time out हो जाते हैं

PersistentKeepalive किस तरफ़ चाहिए

Keepalive उस peer पर सेट करें जिस तक सीधे नहीं पहुँचा जा सकता, यानी जो NAT के पीछे है। वही peer पैकेट बाहर भेजता है और अपनी NAT mapping ताज़ा करता है। Public IPv4 वाले VPS के आगे कोई NAT नहीं होता, इसलिए पहुँच में रहने के लिए उसे इस विकल्प की ज़रूरत नहीं है, और वह खुद किसी रिमोट NAT को खुला नहीं रख सकता क्योंकि उसे क्लाइंट का endpoint क्लाइंट के पैकेटों से ही पता चलता है।

अगर क्लाइंट टनल से सिर्फ़ ब्राउज़ करता है, तो ट्रैफ़िक भेजते ही वह तुरंत दोबारा जुड़ जाता है, इसलिए keepalive वैकल्पिक है। यह तब चाहिए जब सर्वर या दूसरे peers को क्लाइंट से कनेक्शन शुरू करने हों, जैसे होम मशीन में SSH, मॉनिटरिंग, या site-to-site लिंक।

  • ▹NAT के पीछे लैपटॉप या फ़ोन से VPS: `PersistentKeepalive = 25` सिर्फ़ क्लाइंट पर सेट करें।
  • ▹VPS से VPS, दोनों के पास public IP: आमतौर पर इसे सेट न करें; देखें [WireGuard mesh गाइड](/guides/wireguard-mesh-vps-cluster)।
  • ▹CGNAT के पीछे होम सर्वर जो VPS के ज़रिए उजागर है: इसे होम सर्वर पर सेट करें, वरना VPS कुछ ही मिनटों में रास्ता खो देता है।
  • ▹मोबाइल क्लाइंट: keepalive में कुछ बैटरी खर्च होती है; इसे तभी चालू करें जब डिवाइस तक पहुँच ज़रूरी हो।

PresharedKey: वैकल्पिक symmetric परत

WireGuard का handshake Curve25519 key exchange इस्तेमाल करता है। पर्याप्त बड़ा quantum computer सैद्धांतिक रूप से इस exchange को तोड़ सकता है, और कोई विरोधी आज ट्रैफ़िक रिकॉर्ड करके बाद में decrypt कर सकता है। `PresharedKey` handshake में एक अतिरिक्त 256-bit symmetric key मिलाता है। इस आकार की symmetric keys को ज्ञात quantum एल्गोरिदम से व्यावहारिक रूप से तोड़ने योग्य नहीं माना जाता, इसलिए अगर PSK गुप्त रहे, तो public-key हिस्सा टूटने पर भी रिकॉर्ड किया गया ट्रैफ़िक सुरक्षित रहता है।

PSK हर peer जोड़ी के लिए होता है, दोनों peers के `[Peer]` सेक्शन में एक जैसा होना चाहिए, और हर जोड़ी के लिए अलग होना चाहिए। यह private keys की जगह नहीं लेता; यह एक अतिरिक्त परत है। अगर PSKs मेल नहीं खाते, तो handshake चुपचाप फ़ेल हो जाता है और आपको `wg show` में कोई `latest handshake` नहीं दिखता।

  • ▹इसे `wg genpsk` से बनाएँ, जो एक random base64-encoded 32-byte key देता है।
  • ▹इसे ऐसे चैनल से भेजें जिस पर आप पहले से भरोसा करते हैं, जैसे SSH, कभी चैट या ईमेल में नहीं।
  • ▹हर जोड़ी के लिए एक PSK इस्तेमाल करें: पाँच नोड्स के mesh में यह दस अलग PSKs हैं।
  • ▹डिवाइस खोने या रिटायर होने पर इसे किसी भी दूसरे secret की तरह rotate करें।

Keys और PresharedKey बनाएँ

Debian 12/13 या Ubuntu 24.04 पर `apt install wireguard` से टूल्स इंस्टॉल करें, फिर keys उसी मशीन पर बनाएँ जहाँ हर private key रहेगी। PSK किसी भी तरफ़ बनाकर दूसरी तरफ़ कॉपी किया जा सकता है। `umask 077` पक्का करता है कि फ़ाइलें सिर्फ़ root पढ़ सके।

umask 077
cd /etc/wireguard

# on the VPS
wg genkey | tee server.key | wg pubkey > server.pub

# on the client
wg genkey | tee client.key | wg pubkey > client.pub

# once, on either side; copy to the other over SSH
wg genpsk > client.psk

VPS पर सर्वर config: /etc/wireguard/wg0.conf

सर्वर का listen पोर्ट तय होता है और उसमें न keepalive होता है, न क्लाइंट के लिए `Endpoint`, क्योंकि वह क्लाइंट का मौजूदा पता authenticated पैकेटों से जान लेता है।

[Interface]
Address = 10.8.0.1/24, fd08::1/64
ListenPort = 51820
PrivateKey = <contents of server.key>

[Peer]
# laptop
PublicKey = <contents of client.pub>
PresharedKey = <contents of client.psk>
AllowedIPs = 10.8.0.2/32, fd08::2/128

Note · VPS firewall में UDP 51820 खोलें और `systemctl enable --now wg-quick@wg0` से टनल शुरू करें। कुछ और उजागर करने से पहले SSH hardening गाइड के अनुसार SSH को लॉक करें, और StrictModes गाइड से key permissions जाँचें।

NAT के पीछे क्लाइंट config

क्लाइंट VPS के public पते की ओर इशारा करता है और keepalive रखता है। सिर्फ़ प्राइवेट टनल के लिए `AllowedIPs = 10.8.0.0/24, fd08::/64` इस्तेमाल करें, या पूरा ट्रैफ़िक VPS से भेजने के लिए `0.0.0.0/0, ::/0`।

[Interface]
Address = 10.8.0.2/32, fd08::2/128
PrivateKey = <contents of client.key>

[Peer]
PublicKey = <contents of server.pub>
PresharedKey = <contents of client.psk>
Endpoint = 203.0.113.10:51820
AllowedIPs = 10.8.0.0/24, fd08::/64
PersistentKeepalive = 25

Note · Dedicated IPv4 वाला NoctisNode Wisp VPS (1 vCPU, 1 GB RAM, $6 प्रति 28-दिन साइकिल) निजी WireGuard endpoint के लिए काफ़ी है, और इसका भुगतान Monero या दूसरे क्रिप्टो में किया जा सकता है, साइनअप पर सिर्फ़ ईमेल और पासवर्ड के साथ।

Verify और troubleshoot करें

दोनों तरफ़ `wg show` चलाएँ। ठीक चल रहा क्लाइंट peer के लिए हाल का `latest handshake`, `persistent keepalive: every 25 seconds` और `preshared key: (hidden)` दिखाता है।

  1. 01.कोई handshake नहीं: जाँचें कि VPS पर UDP 51820 खुला है और `Endpoint` में सही IP और पोर्ट है।
  2. 02.PSK के बिना handshake होता है पर उसके साथ नहीं: दोनों configs में PresharedKey अलग है; उसे दोबारा कॉपी करें।
  3. 03.टनल काम करता है, फिर एक मिनट बाद सर्वर क्लाइंट तक नहीं पहुँच पाता: क्लाइंट पर `PersistentKeepalive = 25` जोड़ें।
  4. 04.बिना restart के keepalive बदलें: `wg set wg0 peer <server-public-key> persistent-keepalive 25`।
  5. 05.Runtime पर फ़ाइल से PSK जोड़ें: `wg set wg0 peer <public-key> preshared-key /etc/wireguard/client.psk`।

अक्सर पूछे जाने वाले सवाल

QWireGuard में PersistentKeepalive 25 का क्या मतलब है?

Aयह peer से दूसरे ट्रैफ़िक के बिना 25 सेकंड बीतने पर एक एन्क्रिप्टेड keepalive पैकेट भिजवाता है। इससे NAT और firewall mappings खुली रहती हैं ताकि टनल दूसरी तरफ़ से पहुँच में रहे।

QPersistentKeepalive सर्वर पर हो या क्लाइंट पर?

ANAT के पीछे वाले peer पर, जो लगभग हमेशा क्लाइंट होता है। Public IP वाले VPS को इसकी ज़रूरत नहीं है और वह खुद क्लाइंट की NAT mapping खुली नहीं रख सकता।

Qक्या WireGuard PresharedKey ज़रूरी है?

Aनहीं, यह वैकल्पिक है। यह Curve25519 पर भविष्य के quantum हमलों से बचाव के रूप में handshake में एक symmetric secret जोड़ता है, इसलिए लंबे समय तक चलने वाले टनल के लिए यह अच्छा डिफ़ॉल्ट है।

QWireGuard PresharedKey कैसे बनाऊँ?

A`wg genpsk > peer.psk` चलाएँ और वही वैल्यू दोनों peers के `[Peer]` सेक्शन की `PresharedKey` लाइन में डालें। हर peer जोड़ी के लिए अलग PSK इस्तेमाल करें।

Qक्या PersistentKeepalive बहुत bandwidth खाता है?

Aनहीं। यह निष्क्रियता के लगभग हर 25 सेकंड में एक छोटा पैकेट भेजता है, जो VPS पर नगण्य है, हालाँकि फ़ोन पर यह बैटरी लाइफ़ थोड़ी घटा सकता है।

VPS पर WireGuard PersistentKeepalive 25 और PresharedKey · NoctisNode