今天在wsl中不知道操作了什么,重启后apt更新报错,发现resolv.conf的DNS变成了“127.0.0.1”,然后用 echo 写入 DNS,重启后又是没有了。
按微软的文档,设置修改 /etc/wsl.conf
[network]
generateResolvConf = false
然后写入 DNS 到 resolv.conf
echo "nameserver 192.168.1.1" > /etc/resolv.conf
echo "nameserver 114.114.115.115" > /etc/resolv.conf
重启后,一样,添加的nameserver没有了。
在windows中,直接编辑 \wsl.localhost\Debian\etc\resolv.conf
提示“系统无法辨识文件名”,无法直接修改。
看了服务,猜测是不是某些服务控制修改的,如:resolvconf,rdnssd,systemd-resolved,先关闭启动:
systemctl disable --now resolvconf.service rdnssd.service systemd-resolved.service
再次 echo DNS 到 resolv.conf, 重启后,还是不行。。。
无奈,直接删除了resolv.conf: rm /etc/resolv.conf
再生成写入:
echo "nameserver 192.168.1.1" > /etc/resolv.conf
echo "nameserver 114.114.115.115" > /etc/resolv.conf
然后再设置只读:sudo chattr -f +i /etc/resolv.conf
再次重启,DNS没有丢失。
如果要在windows中直接修改,设置为属性可写:sudo chattr -i /etc/resolv.conf
不知道为什么必须要先删除,才再建resolv.conf,才可以修改成功。。。
【end】