5154

Good Luck To You!

centos查看修改当前dns

CentOS中,查看当前DNS用cat /etc/resolv.conf;修改可通过编辑该文件或使用nmcli命令

是关于如何在CentOS系统中查看和修改当前DNS设置的详细指南:

查看当前的DNS配置

在CentOS中,可以通过多种方式查看现有的DNS服务器地址,以下是常用的几种方法:

查看/etc/resolv.conf文件

该文件是Linux系统中最基础的DNS客户端配置文件,默认由网络服务自动生成或更新,执行以下命令直接显示内容:

cat /etc/resolv.conf

输出示例如下(每行以nameserver开头):

nameserver 8.8.8.8      # Google公共DNS
nameserver 8.8.4.4      # 备用Google DNS

此文件中列出的即为当前生效的DNS服务器列表,按优先级排序。

使用nmcli命令(适用于NetworkManager管理的网络)

如果系统通过NetworkManager工具管理网络连接,可以先列出所有连接名称,再查询特定接口的详细信息:

nmcli con show         # 列出所有网络连接及其配置参数
nmcli con show "eth0" # 替换为实际接口名(如ens33),查看对应连接的DNS设置

在输出结果中,关注字段如 ipv4.dns,其值即为该连接使用的DNS服务器地址。

系统解析状态检查工具

通过systemdresolve命令可获取更全面的解析信息,包括各接口关联的DNS服务器及状态:

systemdresolve status

此命令会详细展示每个网络接口的DNS配置来源、是否启用IPv6解析等高级信息。

修改DNS设置的方法

根据不同的使用场景和管理习惯,可选择以下任意一种方式进行调整:

方法类型 适用场景 操作步骤摘要 持久性保障措施
NetworkManager命令行工具 图形化网络管理优先的环境 nmcli con mod <连接名> ipv4.dns "新DNS1,新DNS2" + ipv4.ignoreautodns yes 无需额外操作,配置自动保存到内部数据库
直接编辑网卡脚本文件 传统服务模式或无NetworkManager的情况 修改/etc/sysconfig/networkscripts/ifcfg*中的DNS1/DNS2参数 确保PEERDNS=no以禁用DHCP覆盖
手动编辑全局解析文件 临时测试或绕过自动化管理的快速调整 追加nameserver条目到/etc/resolv.conf 需同步修改NetworkManager主配置文件阻止覆写

具体实施步骤如下:

  1. 方法1:通过NetworkManager修改指定连接的DNS

    • 第一步,查看现有网络连接名称:nmcli con show
    • 第二步,执行修改命令(将YourConnectionName替换为实际名称,如eth0):
      nmcli con mod YourConnectionName ipv4.dns "8.8.8.8,8.8.4.4"   # 设置Google公共DNS
      nmcli con mod YourConnectionName ipv4.ignoreautodns yes     # 禁止自动获取DHCP分配的DNS
    • 第三步,重启连接使配置生效:nmcli con up YourConnectionName
  2. 方法2:编辑网卡配置文件(静态IP环境常用) 找到对应网卡的配置文件(通常位于/etc/sysconfig/networkscripts/目录下,命名格式为ifcfgxxx):

    sudo vi /etc/sysconfig/networkscripts/ifcfgeth0

    添加或更新以下参数:

    DNS1=8.8.8.8             # 主DNS服务器
    DNS2=8.8.4.4             # 备用DNS服务器
    PEERDNS=no               # 确保使用静态配置而非DHCP动态分配的值

    保存后重启网络服务:sudo systemctl restart network

  3. 方法3:直接修改/etc/resolv.conf(需防覆盖处理) 若选择此方式,需同时禁止NetworkManager对文件的管控:

    • 编辑DNS条目:
      sudo vi /etc/resolv.conf
      # 添加类似如下内容(多行nameserver支持多服务器负载均衡)
      nameserver 114.114.114.114   # 国内114DNS加速节点
      nameserver 223.5.5.5         # 阿里云DNS
    • 防止被NetworkManager重置:修改其主配置文件:
      sudo vi /etc/NetworkManager/NetworkManager.conf
      # 在[main]部分添加:
      dns=none
    • 最后重启服务:sudo systemctl restart NetworkManager

验证新配置是否生效

完成上述任一操作后,可通过以下命令测试解析功能:

ping www.google.com        # 测试域名能否正确转换为IP地址
dig @8.8.8.8 example.com   # 强制使用指定DNS服务器进行递归查询

若返回正常的响应包且无错误提示(如“NOERROR”),则表明DNS已成功更新。

常见问题与解答

Q1: 修改后的DNS没有立即生效怎么办?

原因分析:某些情况下需要手动触发缓存刷新或重启相关进程。
解决方案:尝试执行sudo systemdresolve flushcaches清除本地缓存,或者重启对应的网络服务(如systemctl restart network)。

Q2: /etc/resolv.conf总是被自动还原如何处理?

根本原因:这是由于NetworkManager默认会重新生成该文件导致的。
彻底解决方法:按照方法3中的步骤,在/etc/NetworkManager/NetworkManager.conf中设置dns=none,并重启NetworkManager服务即可锁定手动配置。

注意事项

  1. 备份原始配置:建议在修改前复制关键文件(如cp /etc/resolv.conf{,.bak});
  2. 多网卡环境:不同接口可能有独立的DNS策略,需针对性调整;
  3. 安全性考量:避免使用不可信的第三方DNS,优先选择知名公共服务提供商(如Cloudflare的1.1.

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.