
No WSL 2, quando tento me conectar a um site, recebo um problema:
$ ping www.google.com
ping: www.google.com: Temporary failure in name resolution
Agora, para consertar isso, tive que adicionar /etc/wsl.conf
este conteúdo:
[network]
generateResolvConf = true
E preciso mudar meu /etc/resolv.conf
para:
nameserver 8.8.8.8
Isso funciona bem.
No entanto, quando eu reinicio meu sistema, quando encerro o wsl ou faço algo semelhante, /etc/resolv.conf
ele é substituído pelo valor anterior.
Claro, se eu mudar /etc/wsl.conf
para o seguinte e reiniciar novamente:
[network]
generateResolvConf = false
A correção mencionada acima desapareceu novamente.
Então, como faço para tornar minhas alterações /etc/resolv.conf
permanentes no WSL 2?
Responder1
Eu encontrei esta soluçãoaqui
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
Responder2
tentei comentarresposta de Snuczekmas não têm reputação suficiente.
Desolução vinculadaem sua resposta, acrescentando:
[network]
generateResolvConf=false
isso /etc/wsl.conf
impede que o wsl gere automaticamente o arquivo, mas apenas depois de ter sido encerrado uma vez. Feito isso, a configuração será respeitada e não é necessário tornar o /etc/resolv.conf
arquivo imutável através do chattr +i
comando.
Para desligar o wsl, execute wsl --shutdown
em um prompt de comando do Windows (isso desliga todas as distribuições WSL).
É claro que você ainda precisará adicionar seus servidores DNS ao /etc/resolv.conf
arquivo (por exemplo):
nameserver 1.1.1.1
nameserver 1.0.0.1
Responder3
Estas etapas garantirão que/etc/resolv.confestá configurado corretamente com oservidor de nomes 8.8.8.8toda vez que o wsl começa
- Adicionando entrada bashrc para usuário inicial
echo "sudo su -" >> ~/.bashrc
- Criando entrada sudoers para o usuário inicial
sudo su -
echo "username ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/username
- Adicionando entrada bashrc para usuário root
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Observação:Isso substituirá o conteúdo do/etc/resolv.confarquivo. Você pode usarsedcomando para fazer qualquer modificação específica conforme necessário