news 2026/7/10 0:35:02

Rocky Linux 9 DNS 客户端配置:nmcli 与 resolv.conf 的3种管理方案对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rocky Linux 9 DNS 客户端配置:nmcli 与 resolv.conf 的3种管理方案对比

Rocky Linux 9 DNS 客户端配置:nmcli 与 resolv.conf 的3种管理方案对比

在Rocky Linux 9系统中,DNS客户端的配置方式直接影响着网络连接的稳定性和解析效率。本文将深入分析三种主流配置方案,帮助运维人员和开发者根据实际场景选择最佳实践。

1. 理解Rocky Linux 9的DNS管理机制

现代Linux发行版中,DNS解析涉及多个组件的协同工作。Rocky Linux 9采用NetworkManager作为默认网络管理工具,它与传统的/etc/resolv.conf文件之间存在复杂的交互关系。理解这种关系是避免配置冲突的关键。

NetworkManager通过插件系统管理DNS配置,默认使用dnsmasqsystemd-resolved作为后端。当检测到网络连接变化时,它会动态更新DNS设置。这种机制在DHCP环境中特别有用,但可能干扰手动配置。

关键配置文件位置

  • /etc/resolv.conf:传统的DNS解析配置文件
  • /etc/NetworkManager/NetworkManager.conf:主配置文件
  • /etc/NetworkManager/conf.d/:附加配置片段
  • /etc/NetworkManager/system-connections/:各连接的独立配置

注意:直接修改/etc/resolv.conf可能在系统重启或网络服务重新加载时被覆盖,这是许多配置问题的根源。

2. 方案一:使用nmcli命令行工具动态配置

nmcli是NetworkManager的命令行接口,提供最可靠的配置方式。它直接修改NetworkManager的数据库,确保配置持久化且不会被意外覆盖。

2.1 基本配置命令

查看当前连接列表:

nmcli connection show

修改指定连接的DNS设置(以"有线连接1"为例):

sudo nmcli connection modify "有线连接1" ipv4.dns "8.8.8.8 8.8.4.4"

设置DNS搜索域:

sudo nmcli connection modify "有线连接1" ipv4.dns-search "example.com"

2.2 高级配置选项

禁用DHCP提供的DNS服务器(适用于静态IP环境):

sudo nmcli connection modify "有线连接1" ipv4.ignore-auto-dns yes

配置多组DNS服务器(按优先级排序):

sudo nmcli connection modify "有线连接1" ipv4.dns "192.168.1.1 8.8.8.8"

2.3 配置生效与验证

应用更改并重新激活连接:

sudo nmcli connection up "有线连接1"

验证DNS配置:

nmcli device show <接口名> | grep DNS

nmcli方案优势

  • 配置持久化,不受服务重启影响
  • 支持每个连接独立配置
  • 与NetworkManager深度集成,避免冲突

3. 方案二:直接编辑/etc/resolv.conf文件

虽然不推荐作为首选方案,但在某些特殊场景下,直接修改/etc/resolv.conf仍有其价值。

3.1 基本配置方法

典型/etc/resolv.conf内容示例:

nameserver 8.8.8.8 nameserver 1.1.1.1 search example.com options timeout:2 attempts:3

3.2 防止配置被覆盖的三种方法

方法1:设置文件不可变属性

sudo chattr +i /etc/resolv.conf

方法2:修改NetworkManager配置编辑/etc/NetworkManager/NetworkManager.conf

[main] dns=none

方法3:使用符号链接替换

sudo rm /etc/resolv.conf sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

3.3 适用场景与注意事项

  • 适用场景

    • 容器环境
    • 需要精细控制DNS参数的场景
    • 临时测试配置
  • 注意事项

    • 配置可能在系统更新后失效
    • 与NetworkManager的自动管理冲突
    • 不适合生产环境长期使用

4. 方案三:通过nmtui图形界面配置

对于不熟悉命令行的用户,nmtui提供了直观的文本界面配置方式。

4.1 操作步骤详解

  1. 启动nmtui:

    sudo nmtui
  2. 选择"Edit a connection"

  3. 选择要配置的网络连接

  4. 在IPv4/IPv6配置部分设置DNS服务器

  5. 使用空格键切换"Automatically obtain DNS"选项

4.2 配置示例

典型nmtui界面中的DNS配置区域:

[X] Automatically obtain DNS addresses DNS servers: 8.8.8.8, 8.8.4.4 Search domains: example.com

4.3 优缺点分析

优点

  • 无需记忆复杂命令
  • 可视化操作降低出错概率
  • 适合临时调整配置

缺点

  • 不适合自动化部署
  • 批量修改效率低
  • 某些高级选项不可见

5. 方案对比与决策指南

三种方案的特性对比:

特性nmcliresolv.confnmtui
配置持久性
自动化支持优秀一般
学习曲线中等简单简单
适用场景生产环境/长期配置临时测试/特殊需求快速调整/图形化操作
多连接管理支持不支持支持
与NetworkManager集成深度集成可能冲突深度集成

决策流程图

  1. 是否需要持久化配置?
    • 是 → 选择nmcli或nmtui
    • 否 → 考虑resolv.conf
  2. 是否需要脚本化/自动化?
    • 是 → 选择nmcli
    • 否 → 考虑nmtui
  3. 是否在容器环境中?
    • 是 → 优先使用resolv.conf
    • 否 → 继续其他判断

6. 高级技巧与故障排除

6.1 多网络接口DNS优先级管理

当系统有多个活动连接时,可以使用nmcli设置连接优先级:

sudo nmcli connection modify "有线连接1" connection.autoconnect-priority 10 sudo nmcli connection modify "Wi-Fi连接" connection.autoconnect-priority 5

6.2 诊断DNS解析问题

检查当前生效的DNS配置:

systemd-resolve --status

测试DNS解析延迟:

dig example.com | grep "Query time"

6.3 性能优化参数

/etc/resolv.conf中添加优化选项:

options rotate timeout:1 attempts:3

6.4 容器环境特殊处理

对于Docker容器,建议在启动时指定DNS:

docker run --dns 8.8.8.8 --dns 1.1.1.1 ...

对于Kubernetes Pod,可通过修改/etc/coredns/Corefile配置集群DNS行为。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 21:08:06

VMware ESXi 8.0 U3e 免费版部署:4步完成物理服务器安装与基础网络配置

VMware ESXi 8.0 U3e 免费版实战部署指南&#xff1a;从裸机安装到网络配置 在当今企业IT基础设施中&#xff0c;虚拟化技术已成为提升资源利用率、简化管理的核心工具。作为行业领先的裸机虚拟化平台&#xff0c;VMware ESXi以其轻量级架构和稳定性能赢得了广泛认可。最新发布…

作者头像 李华
网站建设 2026/7/8 21:05:08

Ubuntu 22.04与Bochs虚拟机:跨平台C程序编译与运行的2种环境配置

Ubuntu 22.04与Bochs虚拟机&#xff1a;跨平台C程序开发环境配置实战在操作系统学习与开发过程中&#xff0c;经常需要在不同环境中测试和运行程序。本文将详细介绍如何在Ubuntu 22.04原生环境和Bochs虚拟机中配置开发环境&#xff0c;实现C程序的"一次编写&#xff0c;两…

作者头像 李华
网站建设 2026/7/8 21:04:14

Ubuntu 22.04 Telnet 服务部署实战:3步完成安装、启动与远程登录验证

Ubuntu 22.04 Telnet 服务部署与安全实践指南为什么选择Telnet及其适用场景Telnet作为经典的远程终端协议&#xff0c;至今仍在特定场景中发挥着独特价值。在内网环境、设备调试和教学实验中&#xff0c;Telnet因其轻量级和易用性成为许多运维人员的首选工具。不同于SSH的加密传…

作者头像 李华
网站建设 2026/7/8 21:03:24

你的电脑还在为软件残留烦恼吗?试试这款批量卸载神器!

你的电脑还在为软件残留烦恼吗&#xff1f;试试这款批量卸载神器&#xff01; 【免费下载链接】Bulk-Crap-Uninstaller Remove large amounts of unwanted applications quickly. 项目地址: https://gitcode.com/gh_mirrors/bu/Bulk-Crap-Uninstaller 你是否曾经遇到过这…

作者头像 李华