商城首页欢迎来到中国正版软件门户

您的位置:首页 >CentOS 7怎么修改DNS地址

CentOS 7怎么修改DNS地址

  发布于2026-08-06 阅读(0)

扫一扫,手机访问

说起来,直接改 /etc/resolv.conf 确实最快,但你大概率会发现——重启网络或重启系统后,它就又变回原样了。因为背后有 NetworkManager 或 network 服务在覆盖它。真正可靠的办法,还是老老实实写进网卡配置文件。

改网卡配置文件(推荐,持久生效)

CentOS 7 默认用 network 服务管理传统网卡(比如 ens33),DNS 配置要写入对应接口的 ifcfg 文件。具体步骤:

  • 先查网卡名:ip -br als /sys/class/net/,常见的是 ens33eth0
  • 编辑配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 在文件末尾追加(支持多个,空格分隔):
    DNS1=114.114.114.114
    DNS2=8.8.8.8
  • 重启网络服务:sudo systemctl restart network
  • 验证:cat /etc/resolv.conf 应该已经同步更新,再用 nslookup google.com 测试一下,能通就对了

CentOS 7怎么修改DNS地址

禁用 NetworkManager 覆盖(如果启用了 NM)

如果系统同时运行着 NetworkManager(桌面版或最小化安装后手动启用的情况很常见),它默认会接管 DNS 并覆写 /etc/resolv.conf。这时候需要做两步:

  • 先确认状态:systemctl is-active NetworkManager
  • 临时禁止接管:在 /etc/NetworkManager/NetworkManager.conf[main] 段下面加一行:dns=none
  • 重启 NM:sudo systemctl restart NetworkManager
  • 这样一来,不管你是改 ifcfg 文件还是手动改 /etc/resolv.conf,都不会被覆盖了

直接改 /etc/resolv.conf(仅临时调试)

这个文件由 resolver 库直接读取,改完立刻生效,但风险也很明确:

  • 执行:echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
  • 马上生效,用 dig @1.1.1.1 github.com 就能验证
  • 但只要执行 systemctl restart networkdhclient -r && dhclient,内容就会被还原
  • 注意:不要删掉原有的 searchdomain 行,否则本地主机名解析可能出问题

最容易忽略的坑是 NetworkManager 和 network 服务共存时的冲突——不弄清楚到底谁在管 DNS,只改 resolv.conf 就像往漏水的桶里灌水,白费力气。

本文转载于:https://www.php.cn/faq/2937638.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注