RHEL7 配置DNS地址详解
在Red Hat Enterprise Linux 7(RHEL7)中,正确配置DNS服务器地址是确保网络通信顺畅的关键步骤,以下是几种常用的方法来实现这一目标:
通过nmcli
命令行工具设置
-
查看当前网卡信息
执行以下命令列出所有网络连接及其详细信息:nmcli connection show
输出结果将显示设备名称(如
ens32
)、UUID等信息,若目标网卡为ens32
,则记录其标识以便后续操作。 -
修改指定网卡的DNS配置
使用以下格式更新对应接口的IPv4 DNS服务器地址:nmcli con mod <接口名或UUID> ipv4.dns "<DNS_IP>"
示例:将
ens32
的DNS设置为谷歌公共DNS(8.8.8.8):nmcli con mod ens32 ipv4.dns "8.8.8.8"
此方法直接作用于网络管理器的配置数据库,避免手动编辑文件被覆盖的风险。
编辑网卡配置文件
- 定位并打开配置文件
默认路径为/etc/sysconfig/networkscripts/ifcfg<网卡名称>
,vim /etc/sysconfig/networkscripts/ifcfgeno16777728
典型参数说明如下表所示:
参数 | 值类型 | 作用 | 示例 |
---|---|---|---|
TYPE |
固定值“Ethernet” | 定义网络类型 | Ethernet |
BOOTPROTO |
static/dhcp | IP分配方式 | static |
ONBOOT |
yes/no | 是否随系统启动启用 | yes |
IPADDR |
IP地址 | 设置本机静态IP | 168.1.100 |
PREFIX |
CIDR格式子网掩码 | 简化的前缀表示法 | 24 |
GATEWAY |
网关IP | 默认路由地址 | 168.1.1 |
DNS1 |
首选DNS服务器IP | 主DNS解析节点 | 3.1.1 |
DNS2 |
备选DNS服务器IP | 冗余DNS节点 | 可选填第二个IP |
- 保存后重启网络服务生效
运行以下任一命令使更改立即应用:systemctl restart network # systemd方式 # OR service network restart # init脚本兼容模式
图形化界面配置(可选)
对于偏好可视化操作的用户,可通过两种途径调整DNS设置:
- 终端交互程序
nmtui
启动后通过方向键导航至对应网卡的属性页面进行修改。 - 高级编辑器
nmconnectioneditor
提供更细致的参数控制,适合复杂场景下的精细调优。
两种工具均基于NetworkManager后台服务,修改会自动同步到底层配置文件。
验证与测试
完成上述任一方法后,需确认配置已成功应用:
-
检查全局解析文件
查看/etc/resolv.conf
内容是否符合预期:cat /etc/resolv.conf
应包含刚刚设置的DNS条目(如
nameserver 8.8.8.8
)。 -
域名解析测试
使用nslookup
命令验证域名到IP的转换是否正常:nslookup example.com
若返回正确的A记录,则表明DNS链路畅通。
相关问题与解答
Q1: 为什么手动修改 /etc/resolv.conf
后总是失效?
A: 因为RHEL7引入了NetworkManager动态管理机制,它会定期覆盖静态编写的文件,推荐使用nmcli
或编辑网卡配置文件的方式持久化变更,若必须直接修改该文件,需同时禁用NetworkManager的相关功能(不推荐)。
Q2: 如何同时设置多个DNS服务器实现负载均衡?
A: 在网卡配置文件中追加 DNS2
, DNS3
等字段,多个DNS项之间用空格分隔。
DNS1=8.8.8.8 DNS2=8.8.4.4
系统会按顺序尝试这些DNS服务器