
En WSL 2, cuando intento conectarme a un sitio web, aparece un problema:
$ ping www.google.com
ping: www.google.com: Temporary failure in name resolution
Ahora, para solucionar este problema, tuve que agregar /etc/wsl.conf
este contenido:
[network]
generateResolvConf = true
Y necesito cambiar mi /etc/resolv.conf
a:
nameserver 8.8.8.8
Esto funciona bien.
Sin embargo, cuando reinicio mi sistema, cuando apago wsl o hago algo similar, /etc/resolv.conf
se sobrescribe con el valor anterior.
Por supuesto, si cambio /etc/wsl.conf
a lo siguiente y reinicio nuevamente:
[network]
generateResolvConf = false
La solución mencionada anteriormente desapareció nuevamente.
Entonces, ¿cómo hago que mis cambios sean /etc/resolv.conf
permanentes en WSL 2?
Respuesta1
encontré esta soluciónaquí
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
Respuesta2
Intenté comentarla respuesta de snuczekpero no tengo suficiente reputación.
Desde elsolución vinculadaen su respuesta, agregando:
[network]
generateResolvConf=false
Esto /etc/wsl.conf
impide que wsl genere automáticamente el archivo, pero solo una vez que se ha cerrado una vez. Una vez hecho esto, se respetará la configuración y no es necesario hacer que el /etc/resolv.conf
archivo sea inmutable usando el chattr +i
comando.
Para cerrar wsl, ejecútelo wsl --shutdown
en el símbolo del sistema de Windows (esto cierra todas las distribuciones de WSL).
Por supuesto, aún necesitarás agregar tus servidores DNS al /etc/resolv.conf
archivo (por ejemplo):
nameserver 1.1.1.1
nameserver 1.0.0.1
Respuesta3
Estos pasos asegurarán que/etc/resolv.confestá configurado correctamente con elservidor de nombres 8.8.8.8todas y cada una de las veces que comienza la wsl
- Agregar entrada bashrc para el usuario inicial
echo "sudo su -" >> ~/.bashrc
- Creando una entrada sudoers para el usuario inicial
sudo su -
echo "username ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/username
- Agregar entrada bashrc para usuario root
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Nota:Esto anulará el contenido del/etc/resolv.confarchivo. Puedes usarsedcomando para hacer cualquier modificación específica según sea necesario