2. RHEL网络基础与配置

在RHEL 7及之后的版本中,网络配置的核心服务是 NetworkManager。它取代了早期RHEL 6中基于 network 脚本和 ifcfg 文件的传统管理方式,成为RHEL 8/9中默认且唯一推荐的网络管理守护进程。理解NetworkManager的架构,是掌握RHEL网络配置的前提。

NetworkManager以守护进程 NetworkManager.service 的形式运行,通过D-Bus对外提供接口。它管理三类对象:设备(Device)、连接(Connection) 和 配置文件。设备是物理或虚拟网卡,如 ens160、eth0;连接是一组配置参数的集合,描述“如何配置某个设备”,包括IP地址、网关、DNS、路由等;配置文件则是连接的持久化存储,默认位于 /etc/NetworkManager/system-connections/ 目录下,以 .nmconnection 为后缀。一个设备可以关联多个连接,但同一时刻只有一个连接处于激活状态。

NetworkManager提供三种主要配置方式:命令行工具 nmcli、文本用户界面 nmtui,以及图形化工具。其中 nmcli 是自动化运维和脚本化配置的首选,nmtui 适合在无图形界面的服务器上快速交互式修改。

使用nmcli查看与配置网络

查看当前网络状态是最常用的操作。以下命令分别列出设备状态、活动连接和所有连接配置:

nmcli device status
nmcli connection show
nmcli connection show "ens160"

假设需要为 ens160 配置静态IP地址 192.168.10.50/24,网关 192.168.10.1,DNS为 192.168.10.2 和 8.8.8.8,可以执行:

nmcli connection modify ens160 \
  ipv4.method manual \
  ipv4.addresses 192.168.10.50/24 \
  ipv4.gateway 192.168.10.1 \
  ipv4.dns "192.168.10.2 8.8.8.8"
nmcli connection up ens160

其中 ipv4.method manual 表示使用静态地址;若改为 auto,则通过DHCP自动获取。修改后必须执行 connection up 使配置生效。验证时使用 ip addr show ens160 查看地址,ip route show 查看路由,cat /etc/resolv.conf 查看DNS解析器。

路由与DNS的配置逻辑

路由决定数据包如何到达目标网络。RHEL中默认路由由 ipv4.gateway 参数指定,NetworkManager会自动生成一条 default via 192.168.10.1 dev ens160 的路由。对于多网卡场景,可以通过 ipv4.route-metric 调整路由优先级,数值越小优先级越高。例如,让 ens160 优先于 ens224:

nmcli connection modify ens160 ipv4.route-metric 100
nmcli connection modify ens224 ipv4.route-metric 200

DNS配置方面,NetworkManager会将连接中 ipv4.dns 指定的服务器写入 /etc/resolv.conf。需要注意的是,RHEL 8/9中 /etc/resolv.conf 通常由 systemd-resolved 或NetworkManager动态生成,不建议手工编辑。若需添加搜索域,使用 ipv4.dns-search 参数。

主机名管理

RHEL主机名分为三类:静态主机名(static)、瞬态主机名(transient)和灵活主机名(pretty)。静态主机名持久化保存在 /etc/hostname,由 hostnamectl 管理。查看当前主机名:

hostnamectl status
hostnamectl set-hostname web01.example.com

修改后需确保 /etc/hosts 中包含主机名与IP的映射,以便本地解析。例如添加一行 192.168.10.50 web01.example.com web01。对于需要被其他主机解析的场景,应在DNS服务器中配置A记录或PTR记录。

nmtui交互式配置

当不便记忆命令时,直接运行 nmtui 进入文本界面,选择“Edit a connection”即可编辑已有连接,或“Activate a connection”激活/停用连接。nmtui的修改同样会写入 .nmconnection 文件,与nmcli完全等价。

修改网络配置后,建议使用 nmcli connection up <名称> 重新激活连接,而不是重启NetworkManager服务,以避免影响其他活动连接。

配置关系总览

下图展示了NetworkManager中设备、连接、配置文件与IP/路由/DNS参数之间的对应关系,以及nmcli与nmtui两种操作入口如何作用于同一套配置模型。

NetworkManager 配置模型与操作入口 nmcli 命令行工具 nmtui 文本交互界面 连接 Connection 一组配置参数的集合(如 ens160) 设备 Device 物理/虚拟网卡 ens160 配置文件 /etc/NetworkManager/ system-connections/*.nmconnection 激活/绑定 持久化存储 核心参数 ipv4.method | ipv4.addresses | ipv4.gateway | ipv4.dns | ipv4.route-metric | ipv4.dns-search ip addr / ip route /etc/resolv.conf

掌握上述模型后,日常运维中无论使用nmcli还是nmtui,本质上都是在操作“连接”对象,最终由NetworkManager将参数下发到内核网络栈,并持久化到配置文件中。理解这一层对应关系,可以避免在修改网络后出现“命令生效但重启丢失”或“配置文件改了但未激活”的常见问题。