HCRM博客

在CentOS系统中使用命令调整DNS设置的方法

在CentOS系统中,修改DNS配置是管理网络连接的基础操作之一,DNS(Domain Name System)将域名解析为IP地址,确保设备能访问互联网资源,作为网站站长,我经常需要调整服务器设置以适应不同网络环境,修改DNS不仅能优化访问速度,还能增强安全性和可靠性,本文将详细指导您通过命令行操作修改CentOS的DNS设置,涵盖永久和临时方法,操作前请确保您有root权限或使用sudo命令,避免配置错误导致网络中断。

了解CentOS DNS配置基础

CentOS默认使用NetworkManager管理网络,DNS信息通常存储在/etc/resolv.conf文件中,这个文件是临时性的,重启网络服务或系统后可能被覆盖,修改DNS需考虑持久性配置,常见场景包括更换DNS服务器以提升解析效率(如使用Cloudflare的1.1.1.1或Google的8.8.8.8),或解决域名解析失败问题,开始前,先检查当前DNS设置:

在CentOS系统中使用命令调整DNS设置的方法-图1
cat /etc/resolv.conf

输出会显示类似nameserver 192.168.1.1的行,表示当前DNS服务器,如果结果为空或错误,说明配置需调整,错误修改可能导致网络不可用,建议备份文件:

cp /etc/resolv.conf /etc/resolv.conf.bak

临时修改DNS(编辑/etc/resolv.conf)

这是最直接的方式,但非永久性,适用于快速测试或临时调整,使用文本编辑器如nano或vi操作:

  1. 打开文件:
    sudo nano /etc/resolv.conf
  2. 修改或添加nameserver行,添加Cloudflare DNS:
    nameserver 1.1.1.1
    nameserver 1.0.0.1

    删除原有行或注释掉(在行首加#),保存退出(在nano中按Ctrl+O,然后Ctrl+X)。

  3. 立即生效:无需重启,更改会自动应用,验证:
    nslookup example.com

    如果解析成功,说明DNS工作正常,注意,重启网络或系统后,此文件可能恢复默认值,因为它由NetworkManager动态生成。

永久修改DNS(使用NetworkManager命令行工具)

推荐此方法,因为它持久且管理简便,NetworkManager的nmcli工具允许通过命令行修改配置,步骤如下:

  1. 列出当前网络连接:
    nmcli connection show

    输出显示连接名(如eth0或ens33),记下名称。

    在CentOS系统中使用命令调整DNS设置的方法-图2
  2. 修改DNS设置,假设连接名为eth0,添加新DNS服务器:
    sudo nmcli connection modify eth0 ipv4.dns "1.1.1.1 1.0.0.1"

    这里,ipv4.dns指定IPv4 DNS;若需IPv6,用ipv6.dns,多个DNS用空格分隔。

  3. 设置DNS获取方式为手动,防止自动覆盖:
    sudo nmcli connection modify eth0 ipv4.ignore-auto-dns yes
  4. 应用更改并重启网络:
    sudo nmcli connection down eth0 && sudo nmcli connection up eth0

    验证:

    systemd-resolve --status | grep 'DNS Servers'

    输出应显示新DNS地址,此方法确保配置持久化,重启后不变。

修改NetworkManager配置文件

如果nmcli不可用或需更精细控制,直接编辑配置文件,文件位于/etc/NetworkManager/system-connections/

  1. 找到连接配置文件:
    sudo ls /etc/NetworkManager/system-connections/

    文件名类似eth0.nmconnection。

  2. 编辑文件:
    sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection
  3. [ipv4]部分添加或修改dns行:
    [ipv4]
    dns=1.1.1.1;1.0.0.1;
    dns-search=
    method=manual

    保存后重启NetworkManager:

    在CentOS系统中使用命令调整DNS设置的方法-图3
    sudo systemctl restart NetworkManager

    此方法适合高级用户,但需谨慎,避免语法错误。

常见问题与解决

  • DNS不生效? 检查防火墙设置:sudo firewall-cmd --list-all,确保DNS端口53开放,或清除DNS缓存:sudo systemd-resolve --flush-caches
  • 配置被覆盖? 确认未启用DHCP自动获取DNS,在nmcli中设置ignore-auto-dns或在文件中指定method=manual
  • 测试DNS解析:使用dig example.comping google.com验证,若失败,回滚备份:sudo cp /etc/resolv.conf.bak /etc/resolv.conf
  • 安全建议:选择可靠DNS提供商,避免恶意服务器,定期更新系统:sudo yum update

根据我的经验,优先使用nmcli方法,因为它高效且不易出错,特别在生产服务器上,手动编辑文件虽灵活,但风险较高,掌握这些命令能提升服务器管理效率,确保网站稳定运行,作为站长,我强调测试变更在小环境后再部署,避免影响访客访问。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/35597.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~