Navegar dentro da distribución funciona, e o primeiro nome de host interno falla no momento en que sobe o túnel. O reflexo é engadir un resolutor público, que restaura internet e deixa o nome corporativo inalcanzable durante o resto do día. En WSL 2, /etc/resolv.conf é unha saída xerada e non unha configuración, e ese é o mecanismo que merece entenderse. A solución non é un mellor resolutor, senón a propiedade do ficheiro.

O ficheiro xérase, non se configura

WSL 2 escribe o ficheiro ao arrincar a partir dos adaptadores de Windows que ve nese momento, e imprime arriba un comentario que o di. Cando un cliente de VPN engade ou reescribe un adaptador despois, a distribución non necesariamente rexenera nada, e o ficheiro segue describindo unha rede que xa non existe.

Un segundo modo de fallo é máis silencioso: WSL pode copiar servidores só dalgúns adaptadores. Se o adaptador físico xa ten un resolutor IPv6, os servidores IPv4 que fornece o adaptador da VPN poden descartarse en lugar de engadirse, e o ficheiro parece completo mentres omite xustamente o que responde aos nomes internos.

Compare a vista de Windows coa vista de Linux

Le ambos os lados antes de editar. Dentro da distribución, mira que contén o ficheiro e se é un ficheiro normal ou unha ligazón. En Windows, enumera o resolutor de cada adaptador, incluído o que creou a VPN:

ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'

Cando o adaptador da VPN mostra os servidores corporativos e Linux mostra outra cousa, a discrepancia está na xeración e non no alcance. Compare a lista de adaptadores ademais dos enderezos, porque un adaptador ausente explica un servidor ausente. Esa distinción decide se repara WSL ou un cortalumes, e as dúas cousas non teñen nada en común.

Desactive a xeración e escriba o seu propio ficheiro

Un axuste documentado impide que WSL reescriba o ficheiro, e atópase en /etc/wsl.conf. Engada unha sección de rede a ese ficheiro:

[network]
generateResolvConf = false

Despois remate a distribución desde Windows con wsl --shutdown e vólvaa iniciar. Se a ruta é unha ligazón simbólica e non un ficheiro normal, elimine a ligazón antes de escribir o seu propio contido, porque escribir a través da ligazón pode recrear o obxectivo xerado no seguinte arrinque. Desde ese momento o ficheiro é seu e nada o reescribe.

nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate

Sen un dominio de busca, un nome de host non cualificado complétase coa raíz pública e volve como que non existe tal dominio. timeout evita que un primeiro servidor morto bloquee cada consulta, attempts limita cantos intentos gasta unha consulta, e rotate reparte os reintentos en lugar de comezar sempre polo primeiro. O intercambio é que o ficheiro xa non segue unha VPN cuxo enderezo de resolutor cambia entre sesións.

Xestione un resolutor que se move e despois verifique

Algúns clientes entregan un resolutor específico da sesión, así que un ficheiro estático rompe na seguinte conexión. Dous enfoques son defendibles. Escriba o ficheiro desde un script pequeno sempre que cambie o enderezo, ou deixe a xeración activada e asegúrese de que o adaptador do que copia WSL leva o servidor corporativo. O segundo non necesita ningún gancho e falla cando a xeración omite o adaptador da VPN; ambos seguen esixindo resolver primeiro o conflito de IPv6.

Windows tamén aplica as súas propias directivas de nomes, como unha lista de busca de sufixos ou unha directiva de resolución para dominios concretos, e copiar os enderezos dos adaptadores non reproduce esas regras. Se un nome se resolve en Windows e non na distribución co mesmo servidor, compare o tratamento dos sufixos antes de culpar o túnel.

Probe cun nome e non cun paquete: getent hosts sensor-access0.corp.example pasa pola pila de resolutores, mentres que un ping pode ter éxito contra un enderezo almacenado ou literal. Despois repítao tras desconectar e reconectar, porque un axuste que funciona unha vez e se rexenera ao retomar nunca se arranxou. Garde o contido anterior e anote que compoñente posúe a ruta nesa máquina, para que o seguinte cambio comece con probas.

Artigos relacionados