跳转至

3. 网络配置

本章介绍 RHEL 9 的网络配置管理,以 NetworkManager 为核心工具,涵盖静态 IP 配置、DNS 管理、连接激活与基础网络诊断。稳定的网络配置是后续订阅注册、SSH 远程访问、软件安装等一切操作的前提条件。

知识点:NetworkManager

RHEL 9 中所有网络接口均由 NetworkManager 统一管理,配置文件存储于 /etc/NetworkManager/system-connections/,格式为 keyfile(.nmconnection)。旧版 /etc/sysconfig/network-scripts/ 脚本格式已在 RHEL 9 中废弃,RHEL 10 已彻底移除,不应再使用


3.1 前提条件

  • RHEL 9 已完成安装(第 1 章),主机名 linuxdc,Vim 已配置(第 2 章)。
  • 通过控制台或 SecureCRT(SSH 端口 22)以 root 身份登录。

确认 NetworkManager 已启用:

systemctl is-active NetworkManager

3.2 查看网络状态

# 查看所有网络设备状态
nmcli device status

# 查看所有连接配置
nmcli connection show

# 查看指定接口的 IP 信息(简洁)
ip -brief address show

# 查看指定接口详细信息
ip addr show ens33

# 查看默认路由
ip route show default

# 查看 DNS 配置
nmcli device show ens33 | grep IP4.DNS

网络接口命名

RHEL 9 使用 systemd 可预测网络接口命名:VMware 第一块网卡通常为 ens33,物理机按 PCI 位置命名(如 enp3s0)。执行 ip link show 查看实际接口名称。


3.3 配置静态 IP

安装时已在向导中配置了静态 IP(192.168.1.100/24)。本节通过 NetworkManager 对配置进行规范化管理,确保持久生效。

3.3.1 方法一:nmcli 命令行(推荐,适合脚本化)

修改现有连接为静态 IP:

nmcli connection modify ens33 \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4" \
  ipv4.dns-search "linuxdc.local" \
  connection.autoconnect yes

# 重新激活连接以使配置生效
nmcli connection up ens33

两步缺一不可

modify 只修改持久化配置,不立即生效;connection up 才能激活变更。两步必须都执行。

新增连接(适用于新网卡):

nmcli connection add \
  type ethernet \
  ifname ens33 \
  con-name ens33-static \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4"

nmcli connection up ens33-static

检查点

执行 ip addr show ens33,确认显示 192.168.1.100/24;执行 ping -c 3 8.8.8.8 确认外网连通。


3.3.2 方法二:nmtui 文本交互界面(适合交互操作)

nmtui

操作路径:

  1. 选择 Edit a connection
  2. 选择接口 ens33,按 Enter 编辑
  3. IPv4 CONFIGURATION<Automatic> 改为 <Manual>
  4. Addresses192.168.1.100/24
  5. Gateway192.168.1.1
  6. DNS servers8.8.8.8(添加第二条 8.8.4.4
  7. OK 保存,返回主界面
  8. 选择 Activate a connection,激活 ens33

3.3.3 方法三:直接编辑 keyfile(适合精确控制)

# 查找配置文件路径
nmcli -f NAME,FILENAME connection show

# 编辑配置文件
vim /etc/NetworkManager/system-connections/ens33.nmconnection

配置文件标准格式:

[connection]
id=ens33
type=ethernet
interface-name=ens33
autoconnect=true

[ethernet]

[ipv4]
method=manual
address1=192.168.1.100/24,192.168.1.1
dns=8.8.8.8;8.8.4.4;
dns-search=linuxdc.local;

[ipv6]
method=disabled

设置权限并重载:

# 权限必须为 600,否则 NetworkManager 拒绝加载
chmod 600 /etc/NetworkManager/system-connections/ens33.nmconnection

nmcli connection reload
nmcli connection up ens33

文件权限要求

.nmconnection 文件权限必须为 600(仅 root 可读写)。权限过宽(如 644)会被 NetworkManager 拒绝,连接将无法激活。


3.4 配置双网卡

企业服务器通常需要独立的管理网络和业务网络,避免路由冲突:

# 配置第二块网卡 ens34 为管理网(不设置默认路由)
nmcli connection modify ens34 \
  ipv4.method manual \
  ipv4.addresses 10.0.0.100/24 \
  ipv4.never-default yes \
  connection.autoconnect yes

nmcli connection up ens34

ipv4.never-default

该参数阻止此连接产生默认路由,避免多网卡场景下路由表冲突。每台主机只允许一条默认路由。


3.5 防火墙端口管理

NetworkManager 负责网络连接,firewalld 负责流量过滤,两者协同工作。

# 查看当前防火墙状态
firewall-cmd --list-all

# 开放端口(永久生效)
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

# 开放标准服务(推荐,语义更清晰)
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

# 验证
firewall-cmd --list-ports
firewall-cmd --list-services

第 5 章说明

第 5 章(SSH 配置)将把 SSH 端口从 22 更改为 2222,届时需要同步更新防火墙规则。本章无需提前修改。


3.6 网络诊断

# 连通性测试
ping -c 4 192.168.1.1          # 测试网关
ping -c 4 8.8.8.8              # 测试外网 IP
ping -c 4 google.com           # 测试 DNS 解析

# DNS 解析测试
dig google.com                 # 详细 DNS 查询
nslookup google.com            # 简单 DNS 查询

# 端口与服务监听
ss -tuln                       # 查看所有监听端口
ss -tulnp | grep sshd          # 查看 sshd 监听端口

# 接口统计
ip -s link show ens33          # 查看收发包统计

# 路由追踪(需安装)
dnf install -y traceroute
traceroute 8.8.8.8

3.7 常见问题与排查

问题现象 排查步骤
connection up 后 IP 未生效 检查语法:nmcli connection show ens33;确认 method=manual 已保存
DNS 解析失败 nmcli device show ens33 | grep DNS;检查 /etc/resolv.conf
重启后 IP 恢复为 DHCP 确认 connection.autoconnect yesipv4.method manual 已持久化
.nmconnection 文件无法加载 ls -l 确认权限为 600chmod 600 修正后重载
# NetworkManager 日志(排查连接问题)
journalctl -u NetworkManager --since "30 minutes ago"

3.8 实践任务

  1. 执行 nmcli device status 查看接口状态。
  2. 使用 nmcli connection modify 方式,将 ens33 配置为:
    • IP:192.168.1.100/24,网关:192.168.1.1,DNS:8.8.8.8 8.8.4.4
  3. 激活连接并完整验证:

    nmcli connection up ens33
    ip addr show ens33
    ip route show default
    ping -c 3 8.8.8.8
    dig google.com
    
  4. 使用 nmtui 查看(不修改)相同连接的配置,熟悉交互界面。

  5. 执行 firewall-cmd --list-all,确认 SSH(端口 22)已在防火墙开放规则中。

3.9 自测问题

Q1:RHEL 9 中为什么不能直接编辑 /etc/sysconfig/network-scripts/ 下的文件?

该格式已在 RHEL 9 中废弃,NetworkManager 不会读取这些文件。所有网络配置必须通过 NetworkManager 管理(nmclinmtui 或 keyfile),否则配置不会生效且可能在系统升级后丢失。

Q2:nmcli connection modify 执行后为何 IP 没有立即变化?

modify 只写入持久化配置,不中断当前连接。需执行 nmcli connection up ens33 重新激活连接,新配置才会生效。

Q3:如何查看 NetworkManager 为某个接口分配了哪些 DNS 服务器?

执行 nmcli device show ens33 | grep IP4.DNS,该命令显示 NetworkManager 实际下发的 DNS 服务器地址。


3.10 章节总结

本章介绍了 RHEL 9 网络配置的三种标准方法:nmcli(脚本化首选)、nmtui(交互式)和 keyfile 直接编辑。所有配置均通过 NetworkManager 管理,确保持久性。稳定的网络配置为后续用户管理、SSH 配置、订阅注册提供了可靠的连接基础。