Ubuntu 22.04.1 DNS服务器配置反复被覆盖的问题求助
Ubuntu 22.04.1 DNS服务器配置反复被覆盖的问题求助
我太懂你这种反复折腾却一直被重置的崩溃感了,刚升级完系统就碰到这种糟心事,换谁都得上火!咱们先理清楚问题根源:你的/etc/resolv.conf是软链接到Valet Linux的配置文件,每次开关WiFi时,Valet会自动重置这个文件里的DNS设置——因为Valet本身依赖本地的127.0.0.1 DNS来处理本地开发域名(比如.test或.dev),它会主动维护这个配置,所以你手动改完根本留不住。
下面给你几个针对性的解决方案,你可以根据自己的需求选:
方案一:修改Valet的DNS转发配置(保留Valet的前提下)
Valet的本地DNS其实可以把非本地域名的请求转发到公共DNS,咱们直接改它的配置让它默认用你想要的服务器:
- 打开Valet的DNS配置文件,一般在
/opt/valet-linux/config/valet-dns.conf(找不到的话可以用find /opt/valet-linux -name "*.conf"搜索) - 在文件里找到
forwarders配置段,改成:forwarders { 8.8.8.8; 8.8.4.4; }; - 重启Valet服务:
valet restart
这样Valet既可以继续处理本地开发域名,又会把其他请求转发到谷歌DNS,而且开关WiFi时也不会再重置配置了。
方案二:卸载Valet(如果不需要本地开发环境的话)
要是你现在不用Valet做开发了,直接卸载它一了百了:
- 运行卸载命令:
valet uninstall - 把
/etc/resolv.conf改回系统默认的软链接:sudo rm /etc/resolv.conf sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf - 之后在NetworkManager里重新配置DNS(或者直接用DHCP自动获取),就不会再被篡改了。
方案三:强制NetworkManager接管DNS(和Valet共存的折中方案)
如果你既要用Valet,又想让系统DNS不受WiFi开关影响,可以试试让NetworkManager固定DNS设置:
- 打开系统设置 → 网络 → 找到你的WiFi连接,点击右侧齿轮图标进入详情
- 切换到「IPv4」标签页,把DNS设置从「自动」改成「手动」,添加
8.8.8.8和8.8.4.4 - 勾选「忽略自动获取的DNS」选项,保存设置
- 编辑
/etc/NetworkManager/NetworkManager.conf,在[main]段添加:
然后重启NetworkManager:dns=nonesudo systemctl restart NetworkManager
这个方法会让NetworkManager固定使用你设置的DNS,同时Valet的本地DNS依然可以处理开发域名。
你可以先试试方案一,毕竟如果还要用Valet的话这是最稳妥的。要是还是不行,再考虑卸载或者折中方案。
备注:内容来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

