Wíkì inú ń gbé kalẹ̀ nínú Edge, ṣùgbọ́n git clone nínú pínpín náà ń parí ní àkókò. Àkíyèsí kan ṣoṣo yẹn ni a sábà máa ń kà bí «VPN ń dí WSL2», àkókò tó kàn sì ń lọ sínú ṣíṣàtúnṣe /etc/resolv.conf. Ìkàwé tó wúlò jù ni pé WSL2 kò ní ọ̀nà nẹ́tíwọ́kì olùgbàlejò rárá láti ìbẹ̀rẹ̀: ó ń ṣiṣẹ́ nínú VM olùrànlọ́wọ́ pẹ̀lú adápítà tirẹ̀, àwọn ọ̀nà tirẹ̀ àti fáìlì resolver tí Windows ń dá fún un. Gbogbo ohun tó tẹ̀le da lórí èwo nínú àwọn mẹ́ta yẹn ni ó ṣe ń kù fún ọ gan-an.

VM ní àkójọ, ìwọ̀n àti resolver tirẹ̀

Nínú ipò NAT àkọ́kọ́, pínpín náà jókòó lẹ́yìn swítsì fojúhàn, ó sì ń dé intánẹ́ẹ̀tì nípasẹ̀ olùgbàlejò, ṣùgbọ́n kò rí àwọn adápítà olùgbàlejò. ip addr ń fi ìfarahàn kan hàn pẹ̀lú àdírẹ́sì àdáni, ip route ń fi ọ̀nà àkọ́kọ́ hàn nípasẹ̀ swítsì yẹn, àti /etc/resolv.conf jẹ́ fáìlì tí a dá tó ń tọ́ka sí stub resolver tí Windows yàn. Kò sí ohun kan nínú ìwọ̀nyí tó yí padà nítorí pé a ti gbé kíláìẹ̀ntì VPN kalẹ̀ ní ẹ̀gbẹ́ Windows.

Ìdí ni pé «aṣàwákiri ń ṣiṣẹ́» ń fi ohun tó kéré jùlọ hàn. Aṣàwákiri ń lo àkójọ olùgbàlejò, ọ̀nà àbẹ̀wò náà àti ìlànà resolver olùgbàlejò. Shell rẹ ń lo àkójọ mìíràn tó ṣe àpapọ̀ káàdì nẹ́tíwọ́kì gbígbé kan lójú àìròtẹ́lẹ̀. Wọ́n gbà ní ọ̀ràn rere, wọ́n sì yàtọ̀ gan-an nígbà tí VPN bá gbé àyọ̀ṣẹ́, tí ó tún àkọ́sílẹ̀ DNS kọ, tàbí tí ó fi ọ̀nà kún fún subnet ti swítsì fojúhàn.

Ìdánwò méjì ń pinnu irú ayé tí o wà, wọ́n sì gbọ́dọ̀ ṣiṣẹ́ nínú pínpín náà:

getent hosts example.com
curl -sS -m 8 -o /dev/null -w "%{http_code}\n" 1.1.1.1
ip route
cat /etc/resolv.conf

Tí àwọn orúkọ bá kùnà nígbà tí àdírẹ́sì gbélé ń dáhùn, ìṣòro resolver ni. Tí àwọn orúkọ àti àdírẹ́sì bá kùnà papọ̀, ìṣòro ọ̀nà ni, kò sì sí àtúnṣe resolver kankan tó máa fọwọ́ kàn án. Lẹ́yìn náà ni ẹ̀rí láti ẹ̀gbẹ́ Windows wá: Get-NetAdapter | Get-DnsClientServerAddress àti route print -4 ń fi hàn bóyá ọ̀nà àbẹ̀wò náà ti gba subnet tí VM rẹ ń gbé.

Ìgbàgbọ́ aṣiṣe kìíní: àwọn sáfà DNS ilé-iṣẹ́ ń tún un ṣe

Ṣíṣàtúnṣe fáìlì resolver ni ìmọ̀ràn àtijọ́, ó sì tọ́ ní nǹkan bí ìdajì àkókò. Nígbà tó bá tọ́, ó tọ́ fún ìdí pàtó: fáìlì tí a dá ń tọ́ka sí resolver tó mọ àwọn orúkọ gbogbogbò nìkan, nítorí náà ìbéèrè fún intranet.example.internal ń padà bí ohun tí kò sí bí ó tilẹ̀ jẹ́ pé ọ̀nà náà dára.

Fífi àwọn sáfà VPN mọlẹ̀ túmọ̀ sí dídá Windows dúró kúrò nínú dídá fáìlì náà lẹ́ẹ̀kan sí i, nítorí pé fáìlì kankan tí o bá fi ọwọ́ kọ ni a máa rọ́pò ní ìbẹ̀rẹ̀ tó kàn.

[network]
generateResolvConf = false

Fi ìyẹn pamọ́ gẹ́gẹ́ bí /etc/wsl.conf, ṣe wsl --shutdown láti Windows, lẹ́yìn náà bẹ̀rẹ̀ pínpín náà kí o sì kọ /etc/resolv.conf pẹ̀lú àwọn sáfà ọ̀nà àbẹ̀wò níṣájú àti resolver gbogbogbò gẹ́gẹ́ bí àbáyò nìkan. Èyí jẹ́ ìyípadà tó dúró pẹ̀lú iye ìtọ́jú: fáìlì kò tẹ̀lé olùgbàlejò mọ́, nítorí náà nígbà tí àwọn àdírẹ́sì DNS ilé-iṣẹ́ bá yí padà, pínpín náà ń bá àwọn ti àtijọ́ ṣe ìbéèrè. Ẹnìkan gbọ́dọ̀ ni fáìlì yẹn.

Kò ṣe ohunkóhun pẹ̀lú nígbà tí ìkùnà náà bá gbòòrò sí i. Tí curl sí 1.1.1.1 bá parí ní àkókò, kíláìẹ̀ntì ọ̀nà àbẹ̀wò náà ń ṣe àyọ̀ṣẹ́ swítsì fojúhàn tàbí ń darí subnet VM sínú ọ̀nà àbẹ̀wò náà, resolver tó tọ́ sì ń fún ọ ní àwọn orúkọ tí a kò tíì lè dé.

Ìgbàgbọ́ aṣiṣe kejì: ìyípadà ìwọ̀n ń dúró

Nígbà tí àwọn orúkọ bá yanjú ṣùgbọ́n tí ìrìnàjò ń jáde nípasẹ̀ adápítà gbígbé, àwọn ìwọ̀n ìfarahàn ni ọ̀jà. Fún adápítà VPN ní iye gíga àti swítsì WSL ní iye kéré:

Get-NetAdapter | Where-Object InterfaceDescription -Match "AnyConnect" | Set-NetIPInterface -InterfaceMetric 4000
Get-NetIPInterface -InterfaceAlias "vEthernet (WSL)" | Set-NetIPInterface -InterfaceMetric 1

Lẹ́yìn náà rántí pé nínú ọ̀pọ̀ àwọn ìkọ́ kíláìẹ̀ntì, a máa ń tún adápítà ọ̀nà àbẹ̀wò náà dá ní gbogbo ìsopọ̀, ìwọ̀n náà sì ń padà sí ipò àkọ́kọ́ rẹ̀. Àṣẹ ẹ̀ẹ̀kan jẹ́ àtúnṣe tó ń parí ní ìdákẹ́jẹ́ẹ́, sábà máa ń ṣẹlẹ̀ ní ìparí ọ̀sẹ̀, tíkẹ́ẹ̀tì sì ń padà pẹ̀lú «ó ń ṣiṣẹ́ ní ọ̀sẹ̀ tó kọjá». Iṣẹ́ tí a ṣètò tí ìṣẹ̀lẹ̀ VPN ń bẹ̀rẹ̀, tàbí script tí olùlò ń ṣe lẹ́yìn ìsopọ̀, ni ẹ̀dà olóòtítọ́ ti àtúnṣe yìí.

Àkókò ìparí kan náà kan àwọn ọ̀nà olùgbàlejò tí a fi kún fún ìpilẹ̀ ọ̀rọ̀ kan tó le. Wọ́n wúlò gẹ́gẹ́ bí àyẹ̀wò, nítorí wọ́n ń sọ bóyá ìṣòro náà jẹ́ ibi kan tàbí gbogbo ọ̀nà, ṣùgbọ́n wọn kì í ṣe ìkọ́lé.

Ìgbàgbọ́ aṣiṣe kẹta: àtúnṣe kan bo gbogbo ìkọ́ Windows

ApproachWhat it actually does
Resolver pinFixes private names only; no effect on path failures
Sidecar distributionForwards traffic over a socket to a helper VM, so the switch's filter no longer matters
Mirrored networkingGives the distribution the host's interface set; also enables DNS tunnelling

wsl-vpnkit ni àwòrán sidecar: pínpín kékeré kan ni ó ni ọ̀nà ní ẹ̀gbẹ́ olùgbàlejò, ó sì ń fi ránṣẹ́ fún àwọn pínpín mìíràn nípasẹ̀ sọ́kẹ́tì fojúhàn, nítorí náà ìrìnàjò àwọn ohun èlò ń dáwọ́ dúró láti gbára lé swítsì tí a ṣe àyọ̀ṣẹ́. Ó nílò kí ọ̀nà àkọ́kọ́ ṣiṣẹ́, ìyẹn ni yíyọ àwọn àtúnṣe networkingMode àti dnsTunneling kúrò nínú %UserProfile%\.wslconfig, mú generateResolvConf = true padà nínú gbogbo pínpín tó ń ṣiṣẹ́ àti bíbẹ̀rẹ̀ iṣẹ́ náà nígbà ìwọlé.

Ipò dígí ni àyànfúnni tí a kọ́ sínú Windows 11 22H2 àti àwọn tó tẹ̀le, ó sì jẹ́ ètò kan pẹ̀lú pípadé kan:

[wsl2]
networkingMode=mirrored

Nínú pínpín náà, ip addr yóò ṣe àkọsílẹ̀ àwọn adápítà olùgbàlejò, ọ̀nà àbẹ̀wò náà lè farahàn láàrín wọn, àti àbẹ̀wò DNS ń fi àwọn ìwádìí ránṣẹ́ nípasẹ̀ resolver Windows pàápàá nígbà tí kíláìẹ̀ntì bá tún àkọ́sílẹ̀ DNS kọ. Kì í ṣe ohun gbogbo: àwọn awakọ̀ àyọ̀ṣẹ́ kan ṣì ń ju ọ̀nà dígí nù, àwọn ìlànà odi iná Hyper-V sì lè nílò àṣẹ tó ṣe kedere. Ìtọ́sọ́nà nẹ́tíwọ́kì WSL ti Microsoft ni ojú-ìwé tí o gbọ́dọ̀ fi wé ìkọ́ rẹ kí o tó lo ìlànà tí a kọ fún ẹ̀dà tuntun.

Dán ìgbà mẹ́ta wò lẹ́yìn gbogbo ìyípadà

Yan ọ̀nà kan fún ẹ̀rọ kọ̀ọ̀kan kí o sì kọ ọ́ sílẹ̀, nítorí pé àwọn méjèèjì ń darapọ̀ lọ́nà tí kò dára. Sidecar lórí ipò dígí ń ṣe ìfiránṣẹ́ ní ìlọ́po méjì, ẹ̀rọ olùgbàlejò dígí pẹ̀lú àkọsílẹ̀ sidecar àtijọ́ nínú .wslconfig sì máa ń kùnà lẹ́yìn ìgbéga, kì í ṣe ṣáájú rẹ̀.

Ohunkóhun tí o bá yàn, ìdánwò ìtẹ́wọ́gbà ni àwọn ìbéèrè mẹ́ta kan náà nínú pínpín náà: orúkọ inú, orúkọ gbogbogbò àti àdírẹ́sì àìtọ́. Lẹ́yìn náà tún wọn ṣe lẹ́yìn gígé kúrò àti sísopọ̀ mọ́ ọ̀nà àbẹ̀wò náà lẹ́ẹ̀kan sí i, àti lẹ́yìn wsl --shutdown. Orúkọ inú nìkan tí ó kùnà ni ìlànà resolver; orúkọ inú àti gbogbogbò tí wọ́n kùnà papọ̀ nígbà tí àdírẹ́sì ń ṣiṣẹ́ ṣì jẹ́ ìlànà resolver; ohun gbogbo tí ó kùnà ni ọ̀nà náà.

Tí ẹ̀rọ olùgbàlejò inú kan bá kùnà nígbà tí ìyókù ń ṣiṣẹ́, dáwọ́ wo resolver dúró kí o sì wá ọ̀nà tó ṣá à fún ìpilẹ̀ ọ̀rọ̀ yẹn. Tí ohun gbogbo bá ń ṣiṣẹ́ títí dé ìsopọ̀ tó kàn, o ti rí àtúnṣe tó gbára lé ipò àkókò ṣíṣe, ó sì gbọ́dọ̀ tún wà ní ìlò ní àdáṣe tàbí kí a fi ọ̀kan nínú àwọn ọ̀nà méjì lókè rọ́pò rẹ̀.

Àwọn àpilẹ̀kọ tó jọra