ubuntu 锁定DNS,不自动修改成127.0.0.1:53
一次性彻底锁定、永远不会再变成 127.0.0.53 的方法(Ubuntu 18.04–24.04 通用)。
一、原理一句话
127.0.0.53 是 systemd-resolved 这个本地 DNS 服务搞的鬼。
要彻底不出现它,只能:
- 关掉并禁用 systemd-resolved
- 把
/etc/resolv.conf改成普通文件并加锁(chattr +i)
二、一键操作(直接复制执行)
# 1. 停止并禁用 systemd-resolved(关键)
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
# 2. 删除原来的软链接(指向 127.0.0.53 的那个)
sudo rm -f /etc/resolv.conf
# 3. 写入你要固定的 DNS(国内推荐 223.5.5.5、114.114.114.114)
sudo tee /etc/resolv.conf >/dev/null <<EOF
nameserver 223.5.5.5
nameserver 114.114.114.114
nameserver 8.8.8.8
options timeout:2 attempts:3
EOF
# 4. 锁定文件,任何程序/服务都无法修改(最关键)
sudo chattr +i /etc/resolv.conf
三、验证是否成功
# 看内容,必须是你写的 DNS,不能有 127.0.0.53
cat /etc/resolv.conf
# 看属性,有 i 表示锁定成功
lsattr /etc/resolv.conf
# 测试解析
ping baidu.com
nslookup github.com
以后重启、拔插网线、DHCP、NetworkManager 都不会再把它改成 127.0.0.53。
以后想改 DNS 怎么办?
先解锁 → 修改 → 再锁定:
sudo chattr -i /etc/resolv.conf # 解锁
sudo nano /etc/resolv.conf # 修改
sudo chattr +i /etc/resolv.conf # 重新锁定