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 туннелдөөнүн төмөнкү версия чеги бар

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'

Биринчи буйрук чөйрөнү бүтүрөт, экинчиси дистрибутив азыр кайсы чечүүчүнү колдонуп жатканын көрсөтөт, ал эми акыркы экөө ар тарапка ошол эле суроону берет. Параметрдин абалын эмес, жоопторду салыштырыңыз. Эки файл тең туура болгондо таза кайра иштетүүдөн кийин да ишке ашпаган суроо корпоративдик чечүүчү саясатына көрсөтөт, жана бул сүйлөшүүнүн ээси башка.

Тектеш макалалар