WireGuard PersistentKeepalive: NAT मॅपिंग जिवंत ठेवा
उलटे कनेक्शन फक्त पीअरने रहदारी पाठवल्यानंतर लगेच काम करत असेल, तर मॅपिंग संपत आहे. राउटरच्या मागे keepalive सेट करा आणि नंतर प्रत्यक्ष कालमर्यादा वाचा.
घरातील बॉक्स सुरंग उघडतो आणि कोणत्याही अडचणीशिवाय क्लाउड सर्व्हरपर्यंत पोहोचतो। घरातील बॉक्सने शेवटचे काही पाठवल्यानंतर क्लाउड सर्व्हर एक किंवा दोन मिनिटे घरातील अनुप्रयोगापर्यंत पोहोचू शकतो, आणि नंतर थांबतो। WireGuard लॉगमध्ये काहीही दिसत नाही, कोणतीही हँडशेक त्रुटी नोंदवली जात नाही, आणि सुरंग पुन्हा सुरू केल्यास ती थोड्या वेळासाठी सुधारते। हा नमुना संपत असलेले मॅपिंग आहे, तुटलेली सुरंग नाही, आणि खालील मार्गदर्शक काहीही बदलण्यापूर्वी त्याची पुष्टी करतो।
नमुना निष्क्रियतेमध्ये संपणारे मॅपिंग आहे याची पुष्टी करा
वेगळे करणारे तपशील म्हणजे वेळ। घरातील पीअरने रहदारी पाठवल्यानंतर लगेच उलटा कनेक्शन काम करत असेल आणि शांत मध्यांतरानंतर अयशस्वी होत असेल, तर मार्ग ठीक आहे आणि मधली स्थिती नाही। जर ते कधीच काम करत नसेल, रहदारीनंतर लगेचही नाही, तर हे चुकीचे निदान आहे।
sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer
घरातील पीअरने काही पाठवल्यानंतर लगेच पहिले दोन चालवा, पाच मिनिटे थांबा आणि पुन्हा चालवा। नवीन एंडपॉइंटशिवाय वेळापत्रकानुसार नूतनीकरण होणारा हँडशेक टाइमस्टॅम्प तुम्हाला सांगतो की सुरंग जिवंत आहे। जे बदलले ते म्हणजे बाहेरून न मागितलेले पॅकेट येण्याची क्षमता, जी सुरंगाची नसून मार्गाची वैशिष्ट्ये आहे।
मग उलटा प्रयत्न करा आणि हस्तांतरण काउंटर पहा। क्लाउड बाजू बाइट पाठवत असेल आणि घराची बाजू एकही घेत नसेल, तर पॅकेट क्लाउड सोडून वाटेत स्थिती ठेवणाऱ्या उपकरणात मरण पावले। तुम्ही शोधत असलेली स्वाक्षरी हीच आहे। दोन्ही काउंटर हलले तर सुरंगने पॅकेट पोहोचवले आणि संशयित अनुप्रयोग आहे।
keepalive राउटरच्या मागील पीअरवर ठेवा
कायमस्वरूपी keepalive वेळापत्रकानुसार लहान प्रमाणित पॅकेट पाठवून NAT मॅपिंग आणि कोणतीही फायरवॉल स्थिती जिवंत ठेवतात। सेटिंग राउटरच्या मागील मशीनवर, दूरच्या पीअरसाठीच्या तिच्या नोंदीत असावी, कारण तिच्या बाहेर जाणाऱ्या पॅकेटमुळे स्थिती तयार होते।
[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25
ते विद्यमान पीअर विभागात विलीन करा। त्याच सार्वजनिक कीसह दुसरा ब्लॉक जोडणे हा पर्याय जोडण्याचा योग्य मार्ग नाही, आणि wg-quick ते तुमच्यासाठी विलीन करणार नाही। नोंदवलेले 25 सेकंद हे सामान्य UDP कालमर्यादांच्या खाली राहण्यासाठी निवडलेले उदाहरण आहे, विशेष अर्थ असलेले मूल्य नाही।
तेच निर्देश क्लाउड बाजूला ठेवल्याने या समस्येस मदत होत नाही। त्या पीअरचे पॅकेट आधीच सार्वजनिक पत्त्यावरून येतात, त्यामुळे महत्त्वाच्या दिशेने जतन करण्यासारखे मॅपिंग नाही। ते रहदारी वाढवते आणि काहीही बदलत नाही।
मध्यांतराचा अंदाज लावण्याऐवजी टाइमर वाचा
keepalive काम करतात कारण स्थिती संपण्यापेक्षा ते अधिक वेळा येतात। यामुळे कालमर्यादा ही तुम्हाला खरोखर आवश्यक असलेली संख्या बनते, आणि Linux वर ती भाषांतर करणाऱ्या उपकरणावर वाचता येते:
sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820
पहिले मूल्य फक्त एका दिशेने दिसलेल्या UDP प्रवाहाची कालमर्यादा आहे, आणि दुसरे प्रतिसाद दिसल्यानंतर लागू होते। दोन्ही सहसा लहान असतात, आणि शांत होणारे मॅपिंग तुमच्या प्रवाहाला लागू होणारे अनुसरते।
ती संख्या तुमच्या मध्यांतराशी तुलना करा। 30 सेकंदांच्या कालमर्यादेत 25 सेकंदांचे keepalive काम करते; तेच keepalive 15 सेकंदांच्या कालमर्यादेत काम करत नाही। कितीही पुनःप्रयत्न केले तरी ते गणित बदलत नाही। काही ग्राहक राउटर आणि मोबाइल ऑपरेटर Linux च्या डीफॉल्टपेक्षा खूप लहान मूल्ये वापरतात, म्हणूनच एका नेटवर्कवर काम करणारे कॉन्फिगरेशन दुसऱ्यावर अयशस्वी होते।
| Observation | What it means | Reasonable response |
|---|---|---|
| Works after traffic, dies when idle | Mapping or firewall state expiring | Lower the keepalive interval |
| Never works, even immediately | No return route, listener or firewall | Stop tuning keepalive |
| Works for hours, then dies once | Carrier-side translation or address change | Check the endpoint and logs together |
श्रोता आणि फायरवॉल स्वतंत्रपणे तपासा
जिवंत मॅपिंग आवश्यक आहे आणि पुरेसे नाही। घरातील बॉक्सवरील अनुप्रयोगाने योग्य पत्त्यावर ऐकले पाहिजे, आणि होस्ट फायरवॉलने डिक्रिप्ट झाल्यानंतर पॅकेटला परवानगी दिली पाहिजे।
sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health
सॉकेट फक्त भौतिक इंटरफेसच्या पत्त्याशी जोडलेले असेल आणि सुरंगाच्या पत्त्याशी नसेल, तर सुरंगेवर येणारे पॅकेट फायरवॉलला विचारण्यापूर्वीच टाकून दिले जातात। हे अपयश क्लाउड बाजूने मॅपिंग समस्येसारखेच दिसते, आणि प्रत्येक keepalive समायोजन टिकून राहते।
परवानगी दिलेल्या सूचीची तपासणी दुसऱ्या दिशेनेही तितकीच महत्त्वाची आहे। क्लाउड पीअरने उत्तर द्यायचे असेल तर घरातील सुरंगाचा पत्ता स्रोत म्हणून परवानगी दिली पाहिजे, आणि घरातील पीअरने क्लाउडचा पत्ता गंतव्य म्हणून परवानगी दिली पाहिजे। keepalive पॅकेट प्रमाणित रहदारी आहेत आणि तेच नियम लागू करतात, म्हणूनच काम करताना दिसणारे keepalive काम न करणाऱ्या अनुप्रयोगासोबत राहू शकते।
बदल रोल आउट करा आणि त्याच्या मर्यादा जाणून घ्या
सेटिंग लागू करा, ती तुमची अपडेट पद्धत असेल तर इंटरफेस पुन्हा सुरू करा, आणि नंतर तात्काळ चाचणीऐवजी निष्क्रियता चाचणीची पुनरावृत्ती करा। आधी वाचलेल्या कालमर्यादेपेक्षा जास्त थांबा, उलटी विनंती करा आणि दोन्ही टोकांवर काउंटर हलल्याची खात्री करा।
मध्यांतर आणि मोजलेली कालमर्यादा त्याच्या शेजारी नोंदवा। भविष्यात राउटरच्या फर्मवेअरमध्ये बदल, किंवा मोबाइल कनेक्शनवर जाणे, कालमर्यादा बदलू शकते। नोंद हीच एखाद्याला मूल्य कॉपी करण्याऐवजी पुन्हा काढण्यास परवानगी देते। एका ओळीत दोन संख्या पुढे संपूर्ण तपासणी वाचवतात।
कायमस्वरूपी keepalive स्थितीचे रक्षण करतात। ते पोर्ट उघडत नाहीत, परवानगी दिलेल्या सूचीत नोंद जोडत नाहीत, आणि श्रोता दिसू लागत नाही। जेव्हा उलटे कनेक्शन अजिबात काम करत नाही, तेव्हा दोष त्या तीनपैकी एकावर असतो, आणि WireGuard ची झटपट सुरुवात त्याच संकुचित अटींमध्ये keepalive सेटिंगचे वर्णन करते।