Oli*_*ire 34 networking resolv.conf windows-subsystem-for-linux
在 WSL 2 上,当我尝试连接到网站时,遇到问题:
$ ping www.google.com
ping: www.google.com: Temporary failure in name resolution
Run Code Online (Sandbox Code Playgroud)
现在,为了解决这个问题,我必须添加/etc/wsl.conf以下内容:
[network]
generateResolvConf = true
Run Code Online (Sandbox Code Playgroud)
我需要将我的更改/etc/resolv.conf为:
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
这很好用。
但是,当我重新启动系统时,当我关闭 wsl 或执行类似操作时,/etc/resolv.conf会被以前的值覆盖。
当然,如果我更改/etc/wsl.conf为以下内容并重新启动:
[network]
generateResolvConf = false
Run Code Online (Sandbox Code Playgroud)
上面提到的修复又消失了。
那么如何/etc/resolv.conf在 WSL 2 上将更改永久更改?
小智 56
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
Run Code Online (Sandbox Code Playgroud)
Imp*_*tor 10
我试图对snuczek 的答案发表评论,但没有足够的声誉。
从他们的答案中链接的解决方案中,添加:
[network]
generateResolvConf=false
Run Code Online (Sandbox Code Playgroud)
to/etc/wsl.conf确实会阻止 wsl 自动生成文件,但仅限于关闭一次后。完成后,配置将受到尊重,并且不需要/etc/resolv.conf使用chattr +i命令使文件不可变。
要关闭 wsl,请wsl --shutdown在 Windows 命令提示符下运行(这将关闭所有 WSL 发行版)。
当然,您仍然需要将 dns 服务器添加到文件中/etc/resolv.conf(例如):
nameserver 1.1.1.1
nameserver 1.0.0.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72974 次 |
| 最近记录: |