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 సెట్టింగ్ను వివరిస్తుంది.