VPN కనెక్ట్ అయినప్పుడు WSL పని హోస్ట్నేమ్ను ఎందుకు కోల్పోతుంది?
అదే పేరు Windows లో పనిచేస్తుంది, సొరంగం పైకి లేచిన క్షణంలో WSL లోపల విఫలమవుతుంది. రిజాల్వర్ను జోడించే ముందు ప్లాట్ఫారమ్ DNS మోడ్ మరియు పాత ఓవర్రైడ్లను తనిఖీ చేయండి.
Windows అంతర్గత హోస్ట్ను ఎలాంటి ఫిర్యాదు లేకుండా పరిష్కరిస్తుంది, అదే పేరు సొరంగం పైకి లేచిన క్షణంలో WSL లోపల విఫలమవుతుంది. సాధారణ పరిష్కారం ఏమిటంటే పంపిణీలో పబ్లిక్ రిజాల్వర్ను రాయడం, అది సాధారణ బ్రౌజింగ్ను తిరిగి తెస్తుంది మరియు పని హోస్ట్నేమ్ను పరిష్కరించలేనిదిగా చేస్తుంది. అది ఒక వైఫల్యాన్ని మరొకదానితో మారుస్తుంది మరియు నిజంగా విరిగిన పొరను దాస్తుంది. ఏదైనా రిజాల్వర్ పంక్తిని జోడించే లేదా తీసివేసే ముందు మూడు పొరలలో ఏది విఫలమవుతోందో నిర్ణయించండి.
మొదట రూటింగ్ వైఫల్యాన్ని మినహాయించండి
రెండు వైపులా అదే పూర్తిగా అర్హత కలిగిన పేరును అడగండి, ఒకేలా కనిపించే రెండు పేర్లను కాదు. ఒకే స్ట్రింగ్కు Windows లో విజయం మరియు WSL లో వైఫల్యం రెండు పరిష్కార మార్గాల సంతకం, ఈ నమూనాను ఇంత శుభ్రంగా మరేదీ ఉత్పత్తి చేయదు. WSL తన తెలిసిన సంఖ్యా చిరునామాలో కూడా సేవను చేరుకోలేకపోతే, రూటింగ్ లేదా ఫిల్టరింగ్ సమస్య కూడా ఉంది. ఆ స్థితిలో DNS పని దాన్ని బయటపెట్టదు, మధ్యాహ్నం తప్పు పొరకు వెళ్తుంది.
మూడు లక్షణాలు ఈ సందర్భాలలో చాలావరకు కవర్ చేస్తాయి, ప్రతి ఒక్కటి వేరే చోటుకు సూచిస్తుంది. కాన్ఫిగరేషన్ ఫైల్ను తెరవడానికి ముందు సరిపోయే వరుసను చదవండి:
| Symptom inside WSL | Likely layer | Where to look |
|---|---|---|
| Private name fails while public browsing works | Resolver path | Tunneling mode and the Windows build |
| A name that worked yesterday fails today | Stale override | Generated resolver file, immutable flag, shell profile |
| The name resolves but the service does not | Routing or filtering | The resolved address and the path to it |
మధ్య వరుసను ప్రజలు తప్పుగా చదువుతారు, ఎందుకంటే దాన్ని విరిగిన మార్పు వారాల క్రితం చేయబడింది మరియు అప్పుడు విజయవంతంగా కనిపించింది. మూడవ వరుసను ప్రజలు తప్పుగా నిర్ధారిస్తారు, ఎందుకంటే పరిష్కరమయ్యే పేరు నెట్వర్క్ ఆరోగ్యంగా ఉందనడానికి సాక్ష్యంగా అనిపిస్తుంది. రెండు వరుసలు మిమ్మల్ని క్రింద వేరే విభాగానికి పంపుతాయి.
DNS సొరంగానికి కనీస వెర్షన్ పరిమితి ఉంది
Microsoft వర్చువలైజేషన్ ఛానెల్ ద్వారా DNS అభ్యర్థనలను Windows రిజాల్వర్కు సొరంగం చేసే WSL నెట్వర్కింగ్ మోడ్ను డాక్యుమెంట్ చేస్తుంది. మద్దతు ఉన్న Windows 11 బిల్డ్లలో ఇది డిఫాల్ట్గా ప్రారంభమై ఉంటుంది, అందుకే ఒకే కార్పొరేట్ నెట్వర్క్లో రెండు మెషీన్లు వేరుగా ప్రవర్తిస్తాయి. మారేది బిల్డ్ నంబర్, కార్పొరేట్ విధానం కాదు.
WSL నెట్వర్కింగ్ గైడ్ ఆ మోడ్ను మరియు దాన్ని మద్దతిచ్చే వెర్షన్లను వివరిస్తుంది. ఈ ఫీచర్ ముఖ్యం ఎందుకంటే కార్పొరేట్ DNS విధానం సాధారణంగా Windows రిజాల్వర్లో నివసిస్తుంది, Windows మార్గాన్ని వారసత్వంగా పొందే పంపిణీ విధానాన్ని కూడా పొందుతుంది. పబ్లిక్ రిజాల్వర్ను అడిగే పంపిణీకి ప్రైవేట్ పేరుకు ఎలాంటి మార్గం లేదు, దాని స్వంత కాన్ఫిగరేషన్ ఎంత చక్కగా కనిపించినా. ఆ యంత్రాంగమే మొత్తం లక్షణాన్ని వివరిస్తుంది, పబ్లిక్-రిజాల్వర్ పరిష్కారం ఎందుకు విఫలమవుతుందో కూడా వివరిస్తుంది.
ఏదైనా సవరించే ముందు బిల్డ్ను చదవండి. కొత్త ఇన్స్టాలేషన్ నుండి కాపీ చేసిన సెట్టింగ్ పాతది దాన్ని అమలు చేస్తుందనడానికి సాక్ష్యం కాదు. మార్పు పక్కన బిల్డ్ నంబర్ను నమోదు చేయండి, ఎందుకంటే రెండు మెషీన్ల మధ్య తేడా దాదాపు ఎల్లప్పుడూ వెర్షన్, విధానం కాదు.
పాత ఓవర్రైడ్లు తాము పరిష్కరించిన సమస్య కంటే ఎక్కువ కాలం జీవిస్తాయి
పాత పద్ధతులు ఉత్పత్తి అయ్యే రిజాల్వర్ ఫైళ్లను నిలిపివేసేవి, నేమ్సర్వర్ను హార్డ్కోడ్ చేసేవి, లేదా ఫైల్ను మార్పులేని లక్షణంతో లాక్ చేసేవి. ఆ మార్పులు వాటిని ప్రేరేపించిన కనెక్టివిటీ సమస్య మాయమైన తర్వాత కూడా చాలా కాలం అలాగే ఉంటాయి, మరియు కొత్త సెట్టింగ్ ఏమీ చేయనట్టు కనిపించడానికి సాధారణంగా అవే కారణం. పంపిణీ పునఃస్థాపన తర్వాత కూడా అవి shell ప్రొఫైల్ రూపంలో నిలిచి ఉంటాయి, అది ప్రతి లాగిన్లో ఫైల్ను తిరిగి రాస్తుంది. చివరిది కనుగొనడం అత్యంత కష్టం, ఎందుకంటే అందరూ తనిఖీ చేసే ఫైల్ నుండి అది కనిపించదు.
చేతితో రాసిన రిజాల్వర్ ఫైల్, దానిపై మార్పులేని లక్షణం, మరియు దాన్ని తిరిగి రాసే స్టార్టప్ స్క్రిప్ట్ను వెతకండి. సవరించే ముందు మార్పులేని జెండాను తనిఖీ చేయండి, ఎందుకంటే లాక్ చేసిన ఫైల్లో రాయడం అనుమతి సమస్యగా చదవబడే విధంగా విఫలమవుతుంది. తర్వాత shell ప్రొఫైల్ను తనిఖీ చేయండి, ఎందుకంటే అక్కడి స్క్రిప్ట్ మీ సవరణ తర్వాత కొన్ని సెకన్లలో పాత కంటెంట్ను పునరుద్ధరిస్తుంది.
ఓవర్రైడ్ను తీసివేయడానికి పరిణామాలు ఉంటాయి, కాబట్టి మీరు ఏమి తీసివేశారు, ఎందుకు అని నమోదు చేయండి. మరో ప్రయోజనం కోసం నిజంగా స్థిర రిజాల్వర్ అవసరమయ్యే పంపిణీ ఉత్పత్తి అయిన ఫైల్ తిరిగి వచ్చినప్పుడు విరిగిపోతుంది.
రెండు ఫైళ్లు, రెండు వేరే పాత్రలు
రెండు కాన్ఫిగరేషన్ ఫైళ్లు వేరే చోట్ల ఉంటాయి, వేరే విషయాలను నియంత్రిస్తాయి, వాటిని కలిపేయడం తప్పు పొరపై వర్తించే సవరణలను ఉత్పత్తి చేస్తుంది. Windows వైపు ఫైల్ వర్చువల్ మెషీన్ లక్షణాలను సెట్ చేస్తుంది, పంపిణీ వైపు ఫైల్ ఆ పంపిణీ తన స్వంత రిజాల్వర్ కాన్ఫిగరేషన్ను ఎలా నిర్మిస్తుందో సెట్ చేస్తుంది. ఏదీ మరొకదాన్ని ఓవర్రైడ్ చేయదు, అందుకే రెండూ అంగీకరించాలి.
ఈ ఫీచర్కు మద్దతిచ్చే ఇన్స్టాలేషన్ కోసం, Windows వైపు శకలం చిన్నది. ఆ వైపు మొత్తం మార్పు అదే:
[wsl2]
dnsTunneling=trueఆ శకలం Windows వినియోగదారు ప్రొఫైల్కు చెందుతుంది మరియు ఒక పంపిణీకి కాదు, వర్చువల్ మెషీన్కు వర్తిస్తుంది. సొరంగానికి పంపిణీ రిజాల్వర్ ఉత్పత్తిని నిలిపివేయకుండా ఉండాలని కూడా అవసరం, కాబట్టి పంపిణీ వైపు ఫైల్ ఆ ప్రవర్తనను ప్రశాంతంగా వదలాలి. ఒకదాన్ని మరొకదాని లేకుండా మార్చండి, మోడ్ నిశ్శబ్దంగా ఏమీ చేయదు, ఈ పరిష్కారం విరిగినదిగా నివేదించబడే అత్యంత సాధారణ మార్గం అదే. ఒకే సెషన్లో రెండు ఫైళ్లను తనిఖీ చేయండి, ఎందుకంటే వారాల వ్యవధిలో చేసిన రెండు సవరణలు ఎవరూ ఆపాదించలేని రెండు సవరణలు.
మళ్లీ ప్రారంభించి, తర్వాత రెండు వైపుల నుండి అడగండి
ఈ సెట్టింగ్లు వాతావరణం ప్రారంభమయ్యేటప్పుడు చదవబడతాయి, కాబట్టి నడుస్తున్న పంపిణీలో కొత్త shell వాటిని మళ్లీ లోడ్ చేయదు. shell తిరిగి ప్రారంభించడం బదులు వాతావరణాన్ని ఆపివేయండి, మరియు మొదట నడుస్తున్న పనిని సేవ్ చేయండి ఎందుకంటే ప్రతి పంపిణీ దానితో ఆగిపోతుంది. ఈ ఒక్క మినహాయింపే మార్పుకు ఎలాంటి ప్రభావం లేదనే చాలావరకు నివేదికలను వివరిస్తుంది.
తర్వాత రెండు వైపులా అదే ప్రశ్న అడగండి. పంపిణీ చివరికి ఏ రిజాల్వర్తో ముగిసిందో కూడా అవుట్పుట్ చూపిస్తుంది:
wsl.exe --shutdown
wsl.exe -e sh -c 'cat /etc/resolv.conf'
wsl.exe -e sh -c 'getent hosts files.corp.example'
wsl.exe -e powershell -Command 'Resolve-DnsName files.corp.example'మొదటి ఆదేశం వాతావరణాన్ని ముగిస్తుంది, రెండవది పంపిణీ ఇప్పుడు ఏ రిజాల్వర్ను ఉపయోగిస్తుందో చూపిస్తుంది, చివరి రెండు ప్రతి వైపుకు అదే ప్రశ్న వేస్తాయి. సెట్టింగ్ స్థితిని కాదు, సమాధానాలను పోల్చండి. రెండు ఫైళ్లు సరిగ్గా ఉన్నా శుభ్రమైన పునఃప్రారంభం తర్వాత కూడా విఫలమయ్యే ప్రశ్న కార్పొరేట్ రిజాల్వర్ విధానాన్ని సూచిస్తుంది, ఆ సంభాషణకు వేరే యజమాని ఉన్నారు.