WSL2用着是挺好的,就是发现了一个问题,郁闷了好久,修改/etc/resolv.conf可以自己设置dns,但重启WSL以后,手动设置的DNS就会被重置为默认的,细心看了一下默认的文件以后发现了问题的关键。WSL自动在启动时自动根据系统的虚拟交换机WSL生成 /etc/resolv.conf文件。如下为默认的/etc/resolv.conf文件的内容

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.27.96.1

根据默认文件的描述,首先sudo vim /etc/wsl.conf添加etc/wsl.conf 文件,文件内容为:

[network]
generateResolvConf = false

保存以后 Powershell 或 Windows Terminal 内wsl --shutdown 关机WSL,然后重新打开WSL

手动编辑 /etc/resolv.conf文件,手动设置新的DNS即可,例如:

nameserver 223.5.5.5

重启试一下,手动设置的DNS已经生效

最后修改:2023 年 11 月 13 日
如果觉得我的文章对你有用,请随意赞赏