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 次 |
最近记录: |