CentOS 7:禁止NetworkManager基于主机名添加搜索域
阻止NetworkManager自动添加主机名域名作为搜索域的优雅方案
直接用chattr +i /etc/resolv.conf虽然能临时锁定文件,但后续修改DNS配置会非常麻烦,给你几个更灵活、更合理的解决方案:
方案1:针对单个连接禁用自动搜索域(推荐)
这个方法只修改你当前使用的网络连接,不会影响其他连接的配置:
- 先查看你的网络连接名称:
输出里会显示类似nmcli connection show有线连接 1或者你的WiFi名称的条目。 - 修改该连接,禁用自动添加搜索域的功能:
如果是IPv6网络,可同步添加nmcli connection modify "你的连接名称" ipv4.auto-dns-search noipv6.auto-dns-search no的配置。 - 重启连接让设置生效:
nmcli connection up "你的连接名称"
方案2:全局禁用所有连接的自动搜索域
如果你想让所有网络连接都默认不自动添加搜索域,可以创建全局配置文件:
- 新建一个NetworkManager自定义配置文件:
sudo nano /etc/NetworkManager/conf.d/90-disable-auto-search.conf - 添加以下内容:
[connection] ipv4.auto-dns-search=false ipv6.auto-dns-search=false - 重启NetworkManager服务使配置生效:
sudo systemctl restart NetworkManager
方案3:手动编辑连接配置文件
如果你习惯直接编辑配置文件操作,可按以下步骤修改:
- 进入NetworkManager连接配置目录:
cd /etc/NetworkManager/system-connections/ - 找到对应连接的配置文件(文件名一般和连接名称一致,需要sudo权限查看),用编辑器打开:
sudo nano "你的连接名称.nmconnection" - 在
[ipv4]部分添加或修改以下配置:
同样,IPv6可在auto-dns-search=false dns-search=[ipv6]部分添加相同配置。 - 保存文件后,重启NetworkManager服务:
sudo systemctl restart NetworkManager
这些方案都比锁定/etc/resolv.conf更灵活,既能精准阻止自动添加搜索域的行为,又不会影响后续正常的DNS配置修改。
内容的提问来源于stack exchange,提问作者nerolucas
相关产品推荐
相关产品推荐

