Windows ആന്തരിക ഹോസ്റ്റിനെ ഒരു പരാതിയുമില്ലാതെ റിസോൾവ് ചെയ്യുന്നു, എന്നാൽ അതേ പേര് ടണൽ ഉയരുന്ന നിമിഷത്തിൽ WSL-നുള്ളിൽ പരാജയപ്പെടുന്നു. സാധാരണ പരിഹാരം ഡിസ്ട്രിബ്യൂഷനിൽ ഒരു പൊതു റിസോൾവർ എഴുതുന്നതാണ്, അത് സാധാരണ ബ്രൗസിംഗ് പുനഃസ്ഥാപിക്കുകയും ജോലി ഹോസ്റ്റ്നാമിനെ റിസോൾവ് ചെയ്യാനാകാത്തതാക്കുകയും ചെയ്യുന്നു. അത് ഒരു പരാജയം മറ്റൊന്നുമായി കൈമാറുകയും യഥാർത്ഥത്തിൽ തകർന്ന പാളി മറയ്ക്കുകയും ചെയ്യുന്നു. ഏതെങ്കിലും റിസോൾവർ വരി ചേർക്കുന്നതിനോ നീക്കം ചെയ്യുന്നതിനോ മുമ്പ് മൂന്ന് പാളികളിൽ ഏതാണ് പരാജയപ്പെടുന്നതെന്ന് കണ്ടെത്തുക.

ആദ്യം റൂട്ടിംഗ് പരാജയം ഒഴിവാക്കുക

ഇരുവശത്തും അതേ പൂർണ്ണ യോഗ്യതയുള്ള പേര് ചോദിക്കുക, സമാനമായി കാണുന്ന രണ്ട് പേരുകളല്ല. ഒരേ സ്ട്രിംഗിന് Windows-ൽ വിജയവും WSL-ൽ പരാജയവും രണ്ട് റിസോല്യൂഷൻ പാതകളുടെ ഒപ്പമാണ്, ഈ മാതൃക ഇത്ര വ്യക്തമായി മറ്റൊന്ന് സൃഷ്ടിക്കുന്നില്ല. WSL-ന് അറിയപ്പെടുന്ന സംഖ്യാ വിലാസത്തിലും സേവനത്തിലെത്താൻ കഴിയുന്നില്ലെങ്കിൽ, റൂട്ടിംഗ് അല്ലെങ്കിൽ ഫിൽട്ടറിംഗ് പ്രശ്നവുമുണ്ട്. ആ സാഹചര്യത്തിൽ DNS ജോലി അത് വെളിപ്പെടുത്തില്ല, ഉച്ചയ്ക്ക് ശേഷമുള്ള സമയം തെറ്റായ പാളിയിലേക്ക് പോകും.

മൂന്ന് ലക്ഷണങ്ങൾ ഈ കേസുകളിൽ ഭൂരിഭാഗവും ഉൾക്കൊള്ളുന്നു, ഓരോന്നും വേറെയെവിടെയോ ചൂണ്ടുന്നു. കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുന്നതിന് മുമ്പ് യോജിക്കുന്ന വരി വായിക്കുക:

Symptom inside WSLLikely layerWhere to look
Private name fails while public browsing worksResolver pathTunneling mode and the Windows build
A name that worked yesterday fails todayStale overrideGenerated resolver file, immutable flag, shell profile
The name resolves but the service does notRouting or filteringThe resolved address and the path to it

മധ്യ വരി ആളുകൾ തെറ്റായി വായിക്കുന്നതാണ്, കാരണം അത് തകർത്ത മാറ്റം ആഴ്ചകൾക്ക് മുമ്പ് ചെയ്തതാണ്, അപ്പോൾ വിജയകരമായി തോന്നി. മൂന്നാം വരി ആളുകൾ തെറ്റായി രോഗനിർണയം ചെയ്യുന്നതാണ്, കാരണം റിസോൾവ് ചെയ്യുന്ന ഒരു പേര് നെറ്റ്‌വർക്ക് ആരോഗ്യകരമാണെന്നതിന്റെ തെളിവായി തോന്നുന്നു. രണ്ട് വരികളും താഴെയുള്ള വ്യത്യസ്ത വിഭാഗത്തിലേക്ക് നിങ്ങളെ അയയ്ക്കുന്നു.

DNS ടണലിംഗിന് ഒരു കനിഷ്ഠ പതിപ്പ് പരിധിയുണ്ട്

വെർച്വലൈസേഷൻ ചാനലിലൂടെ DNS അഭ്യർത്ഥനകൾ Windows റിസോൾവറിലേക്ക് ടണൽ ചെയ്യുന്ന ഒരു WSL നെറ്റ്‌വർക്കിംഗ് മോഡ് Microsoft രേഖപ്പെടുത്തുന്നു. പിന്തുണയുള്ള 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'

ആദ്യ കമാൻഡ് പരിസ്ഥിതി അവസാനിപ്പിക്കുന്നു, രണ്ടാമത്തേത് ഡിസ്ട്രിബ്യൂഷൻ ഇപ്പോൾ ഏത് റിസോൾവർ ഉപയോഗിക്കുന്നു എന്ന് കാണിക്കുന്നു, അവസാന രണ്ടെണ്ണം ഓരോ ഭാഗത്തോടും അതേ ചോദ്യം ചോദിക്കുന്നു. ക്രമീകരണത്തിന്റെ അവസ്ഥയല്ല, ഉത്തരങ്ങൾ താരതമ്യം ചെയ്യുക. രണ്ട് ഫയലുകളും ശരിയായിരിക്കെ വ്യക്തമായ പുനരാരംഭത്തിനുശേഷവും പരാജയപ്പെടുന്ന ചോദ്യം കോർപ്പറേറ്റ് റിസോൾവർ നയത്തിലേക്ക് ചൂണ്ടുന്നു, ആ സംഭാഷണത്തിന് മറ്റൊരു ഉടമയാണുള്ളത്.

അനുബന്ധ ലേഖനങ്ങൾ