目录
显示
如果是 Ubuntu 16.10
或更新的版本,则由 systemd-resolved
服务来管理 DNS,可以使用下面的命令来禁用并立即停止该服务并解除53端口的占用:
systemctl disable --now systemd-resolved.service rm /etc/resolv.conf
然后手动创建 /etc/resolv.conf
文件。
创建 /etc/resolv.conf
最后的最后,就是手动创建 /etc/resolv.conf
文件了,建议权限设置为 644
。配置示例:
vim /etc/resolv.conf
文件内容如下:
nameserver 114.114.114.114 nameserver 223.5.5.5
chmod 644 /etc/resolv.conf
当然,除了 nameserver 外,还有其他的参数可以配置,感兴趣可以 man 一下:
man 5 resolv.conf
正常来说到这里就结束了 继续深入可以往下看
确保 /etc/resolv.conf
不会被覆盖
通过设置只读权限来保护 /etc/resolv.conf
文件:
sudo chattr +i /etc/resolv.conf
这样可以防止文件被意外修改。如果你需要更改 /etc/resolv.conf
文件,可以先取消只读属性:
sudo chattr -i /etc/resolv.conf
然后再进行编辑,完成后再次设置只读权限。
配置 NetworkManager
如果你使用 NetworkManager
管理网络连接,需要确保它不会覆盖 /etc/resolv.conf
。
编辑 NetworkManager
的配置文件:
sudo nano /etc/NetworkManager/NetworkManager.conf
在 [main]
部分添加或修改以下行:
[main] dns=none
重启 NetworkManager
:
sudo systemctl restart NetworkManager
这样就可以确保 NetworkManager
不会修改你的 DNS 配置。
检查配置
最后,确认你的 DNS 设置是否生效:
cat /etc/resolv.conf
测试 DNS 是否正常工作:
nslookup example.com
通过以上步骤,你应该能够成功地重新夺回对 /etc/resolv.conf
的控制权并解除 53 端口的占用。