7.4 RHCSA 备考:网络配置与排错

预计阅读时间:17 分钟

📖 目录

RHCSA 考试要求考生能在 RHEL 系统上配置静态网络、管理网络接口、设置主机名、配置静态路由以及排查常见网络故障。网络配置是 RHCSA 中分值最重的考点之一,几乎每场考试都会涉及 2-3 道网络相关题目。

学习目标

  • 掌握使用 nmcli/nmtui 配置 IPv4/IPv6 静态网络和 DHCP 连接
  • 能够设置主机名、配置 /etc/hosts 本地解析,理解 DNS 解析顺序
  • 熟练添加、删除静态路由,配置多网卡场景下的路由策略
  • 运用 ip/ss/traceroute/dig 等工具快速定位并解决网络故障

前置知识

考试要点

考点权重典型题目
nmcli 配置静态 IP30%为指定网卡配置 IP/掩码/网关/DNS
网络接口管理15%启用/禁用接口、激活/停用连接
主机名与 DNS15%设置 FQDN、编辑 /etc/hosts
静态路由20%添加到特定网段的静态路由
故障排查20%诊断连通性/解析/DNS 问题

1. 使用 nmcli 配置网络

RHEL 9 使用 NetworkManager 管理网络。nmcli 是官方命令行工具,考试中 90% 的网络配置题都通过 nmcli 完成。

# 查看网络设备状态
nmcli device status
# 预期输出:DEVICE  TYPE      STATE         CONNECTION
#            eth0    ethernet  connected     eth0-static
#            lo      loopback  unmanaged     --

nmcli connection show
# 预期输出:NAME          UUID                                  TYPE      DEVICE
#            eth0-static  xxxx-xxxx-xxxx-xxxx                  ethernet  eth0

# 创建静态 IP 连接
sudo nmcli connection add type ethernet con-name eth0-static \
  ifname eth0 \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 1.1.1.1" \
  ipv6.method disabled \
  autoconnect yes
# 预期输出:Connection "eth0-static" (xxxx) successfully added.

# 启用连接
sudo nmcli connection up eth0-static
# 预期输出:Connection successfully activated

# 验证 IP 地址
ip addr show eth0
# 预期输出:inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute eth0

# 修改现有连接
sudo nmcli connection mod eth0-static ipv4.addresses "192.168.1.101/24"
sudo nmcli connection mod eth0-static ipv4.dns "8.8.4.4"
sudo nmcli connection up eth0-static

# 添加第二个 IP 地址
sudo nmcli connection mod eth0-static +ipv4.addresses "10.0.0.10/24"

# 使用 DHCP
sudo nmcli connection add type ethernet con-name eth0-dhcp ifname eth0 \
  ipv4.method auto

nmcli connection 参数详解

参数说明示例
type连接类型ethernet、wifi、bridge
con-name连接名称自定义字符串
ifname网卡名称eth0、ens160
ipv4.methodIP 获取方式auto(DHCP)、manual(静态)
ipv4.addressesIPv4 地址/掩码192.168.1.100/24
ipv4.gateway默认网关192.168.1.1
ipv4.dnsDNS 服务器"8.8.8.8 1.1.1.1"
autoconnect开机自启yes / no

删除连接

# 删除指定连接
sudo nmcli connection delete eth0-static

# 查看所有连接
nmcli connection show

2. 使用 nmtui 交互式配置

nmtui 提供文本界面,适合不熟悉命令行的场景。考试中如果时间紧张,nmtui 也是快速配置的好选择:

sudo nmtui
# 选 Edit a connection → Add/Edit → 填写 IP/掩码/网关/DNS → OK → Quit
# 然后激活:nmcli connection up 连接名

# nmcli 还有更直观的交互模式
sudo nmcli editor eth0-static

nmcli vs nmtui 对比

特性nmclinmtui
界面纯命令行文本菜单界面(TUI)
脚本化支持(适合自动化/批量)不支持(需手动操作)
功能完整度100%(所有 NetworkManager 功能)约 80%(缺少高级路由/桥接等)
远程操作SSH 友好需终端支持 ncurses
考试推荐首选(可复制粘贴命令)备选(时间紧张时快速配置)
持久化写入 /etc/NetworkManager/system-connections/同左(共享同一后端)

nmtui 操作流程

  1. 打开终端执行 sudo nmtui
  2. 选择「Edit a connection」
  3. 选择网卡或点击「Add」新建连接
  4. 填写 IPv4 CONFIGURATION 为 Manual
  5. 输入 Address、Gateway、DNS servers
  6. 点击 OK 保存
  7. 回到主菜单选择「Activate a connection」激活

3. 管理网络接口

# 启用/禁用接口
sudo nmcli device disconnect eth0
sudo nmcli device connect eth0

# 或用传统方式
sudo ip link set eth0 down
sudo ip link set eth0 up

# 查看 IP 地址
ip addr show eth0
nmcli device show eth0

# 重启网络(谨慎,会断开 SSH)
sudo systemctl restart NetworkManager

# 启用/禁用 NetworkManager 管理某网卡
sudo nmcli device set eth0 managed yes
sudo nmcli device set eth0 managed no

4. 主机名与 hosts

# 查看/设置主机名
hostnamectl status
sudo hostnamectl set-hostname server01.example.com

# 查看主机名各组成部分
hostname              # 短主机名
hostname -f           # FQDN
hostname -d           # 域名部分
hostname -i           # IP 地址

# /etc/hosts 文件(本地 DNS 解析)
echo "192.168.1.100 server01.example.com server01" | sudo tee -a /etc/hosts

# 测试
getent hosts server01
ping -c 1 server01

DNS 解析顺序

Linux 系统的 DNS 解析顺序由 /etc/nsswitch.conf 中的 hosts: 行控制:

# 查看解析顺序
grep hosts /etc/nsswitch.conf
# 典型输出:hosts: files dns myhostname

# 含义:
# files    → 先查 /etc/hosts
# dns      → 再查 /etc/resolv.conf 中的 DNS 服务器
# myhostname → 最后解析本机名

5. 静态路由

# 查看路由表
ip route show
route -n

# 通过 nmcli 添加静态路由
sudo nmcli connection mod eth0-static +ipv4.routes "10.0.0.0/8 192.168.1.254"

# 通过 ip 命令临时添加
sudo ip route add 10.0.0.0/8 via 192.168.1.254

# 删除路由
sudo ip route del 10.0.0.0/8

# 添加默认网关
sudo nmcli connection mod eth0-static ipv4.gateway 192.168.1.1

路由优先级与 metric

# 添加带 metric 的路由(值越小优先级越高)
sudo ip route add 10.0.0.0/8 via 192.168.1.254 metric 100

# 通过 nmcli 设置 metric
sudo nmcli connection mod eth0-static ipv4.routes "10.0.0.0/8 192.168.1.254 100"
# 格式:网络/掩码 网关 跳数(metric)

6. DNS 解析配置

# RHEL 9 默认用 systemd-resolved
# /etc/resolv.conf 由 systemd-resolved 管理

# 查看当前 DNS
resolvectl status

# 通过 nmcli 设置 DNS
sudo nmcli connection mod eth0-static ipv4.dns "8.8.8.8"
sudo nmcli connection mod eth0-static +ipv4.dns "1.1.1.1"
sudo nmcli connection up eth0-static

# 测试 DNS 解析
dig example.com
nslookup example.com
getent hosts example.com

DNS 排查技巧

# 使用 dig 追踪完整解析链
dig +trace example.com

# 指定 DNS 服务器查询
dig @8.8.8.8 example.com

# 只返回 A 记录
dig +short example.com A

# 查看 /etc/resolv.conf 配置
cat /etc/resolv.conf

故障案例:nmcli 修改后连接冲突导致断网

现象

# 修改 eth0 连接的 IP 后,nmcli connection up 报错:
sudo nmcli connection mod eth0-static ipv4.addresses "192.168.1.200/24"
sudo nmcli connection up eth0-static
# Error: Connection activation failed because ...
# 或:Connection "eth0-static" is not available on device eth0

原因与修复

# 原因:同一网卡上存在多个连接(如 eth0-static 和 eth0-dhcp),
# 新连接激活时旧连接仍在占用设备,导致冲突

# 排查
nmcli connection show
# NAME          UUID                                  TYPE      DEVICE
# eth0-static   xxxx-xxxx-...                        ethernet  eth0
# eth0-dhcp     yyyy-yyyy-...                        ethernet  eth0    ← 冲突源

# 修复:删除不需要的连接
sudo nmcli connection delete eth0-dhcp
sudo nmcli connection up eth0-static
ip addr show eth0   # 确认新 IP 生效

故障案例:静态路由不生效——重启后丢失

现象

# 用 ip route add 添加的路由,重启后消失:
sudo ip route add 10.0.0.0/8 via 192.168.1.254
ip route show | grep 10.0.0
# 10.0.0.0/8 via 192.168.1.254 dev eth0    ← 当前生效

# 重启后
ip route show | grep 10.0.0
# (空)← 路由丢失

原因与修复

# 原因:ip route add 是临时命令,不写入持久化配置
# nmcli connection mod 才会写入 NetworkManager 连接文件

# 修复:用 nmcli 添加持久化路由
sudo nmcli connection mod eth0-static +ipv4.routes "10.0.0.0/8 192.168.1.254"
sudo nmcli connection up eth0-static
ip route show | grep 10.0.0
# 10.0.0.0/8 via 192.168.1.254 dev eth0    ← 持久化生效

# 删除路由
sudo nmcli connection mod eth0-static -ipv4.routes "10.0.0.0/8 192.168.1.254"

故障案例:DNS 解析顺序被劫持——/etc/hosts 不生效

现象

# 在 /etc/hosts 中配置了 192.168.1.50 server01.example.com
# 但 ping server01.example.com 解析到公网 IP

cat /etc/hosts | grep server01
# 192.168.1.50 server01.example.com server01   ← 配置存在

ping -c 1 server01.example.com
# PING server01.example.com (93.184.216.34) ...  ← 解析到公网

原因与修复

# 原因:/etc/nsswitch.conf 中 hosts 行的顺序决定了解析优先级
# 如果配置为 "dns files"(DNS 在前),先查 DNS 再查 hosts

# 排查
grep hosts /etc/nsswitch.conf
# hosts: dns myhostname    ← 缺少 files,hosts 文件被跳过

# 修复:确保 files 在 dns 前面
sudo sed -i 's/^hosts:.*/hosts: files dns myhostname/' /etc/nsswitch.conf
grep hosts /etc/nsswitch.conf
# hosts: files dns myhostname

# 验证
ping -c 1 server01.example.com
# PING server01.example.com (192.168.1.50) ...  ← 正确解析到本地 IP

7. 故障排查命令速查

命令用途
ping -c 4 目标基础连通性测试
ip addr show查看 IP 配置
ip route show查看路由表
ss -tlnp查看监听端口
dig example.comDNS 解析测试
curl -v http://目标HTTP 连通性测试
traceroute 目标路由追踪
mtr 目标实时路由+丢包统计
nmcli device showNetworkManager 状态

网络故障排查思路

  1. 检查物理层:网线是否插好、网卡是否 UP
  2. 检查 IP 层:IP 地址是否正确、子网掩码是否匹配
  3. 检查路由层:默认网关是否正确、是否有到目标的路由
  4. 检查 DNS:解析是否正常、DNS 服务器是否可达
  5. 检查服务端:目标服务是否在监听、防火墙是否放行

常见错误

常见错误原因分析解决方法
配置后无法上网网关配置错误或未激活连接检查 gateway,执行 nmcli connection up
DNS 无法解析/etc/resolv.conf 被覆盖或 DNS 服务器不可达检查 resolvectl status,用 dig 测试
重启后配置丢失修改了 netplan 但未 apply使用 nmcli 确保配置持久化
多网卡路由冲突默认路由走错接口检查 ip route show,调整 metric
SSH 连接中断重启 NetworkManager 导致使用 nmcli connection up 而非 restart

故障案例 1:nmcli connection up 失败

现象:执行 nmcli connection up eth0-static 后报错 Error: Connection activation failed: No suitable device found

排查:① nmcli device status 查看网卡状态;② 发现 ens160 显示 "unmanaged"(未被 NetworkManager 管理);③ 检查 /etc/NetworkManager/NetworkManager.conf 中 managed=true 是否设置;④ 检查 ifcfg-ens160 中 DEVICE=ens160 是否正确。

解决:确保 NetworkManager 管理该接口:sudo nmcli device set ens160 managed yessudo systemctl restart NetworkManager → 重新 nmcli connection up

故障案例 2:双网卡路由冲突

现象:配置两块网卡后,只有其中一个网段可访问。

排查:① ip route show 查看路由表;② 发现只有一条默认路由,指向其中一块网卡;③ 检查另一块网卡的路由是否正确添加。

解决:为第二块网卡添加特定网段路由:nmcli connection mod mgmt-static +ipv4.routes "172.16.0.0/12 192.168.1.1"nmcli connection up mgmt-static → 验证:ip route show | grep 172.16

故障案例 3:DNS 解析顺序问题

现象ping www.example.com 失败,但 ping 8.8.8.8 正常。

排查:① dig www.example.com 超时;② cat /etc/resolv.conf 显示 DNS 服务器正确;③ grep hosts /etc/nsswitch.conf 发现 hosts 行为 dns files(DNS 在前)。

解决:修改 nsswitch.conf:sudo sed -i 's/^hosts:.*/hosts: files dns/' /etc/nsswitch.conf → 验证:getent hosts www.example.com

实操练习

练习 1:配置双网卡静态网络

为服务器配置两个网卡的静态 IP,要求 eth0 连接内网(192.168.1.0/24),eth1 连接外网(10.0.0.0/24),且内网优先级高于外网。

练习 2:网络故障排查实战

模拟以下故障场景并修复:① DNS 配置错误导致无法解析域名;② 网关配置错误导致无法访问外网;③ 防火墙规则导致无法 SSH 连接。

nmcli 命令速查

操作命令说明
查看设备状态nmcli device status显示所有网络设备状态
查看连接列表nmcli connection show显示所有已配置的连接
查看连接详情nmcli connection show eth0-static显示指定连接的详细配置
创建静态连接nmcli connection add type ethernet con-name eth0-static ifname eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24创建持久化静态 IP 配置
修改连接nmcli connection mod eth0-static ipv4.dns "8.8.8.8"修改现有连接的配置
激活连接nmcli connection up eth0-static激活指定连接
停用连接nmcli connection down eth0-static停用指定连接
删除连接nmcli connection delete eth0-static删除指定连接
添加路由nmcli connection mod eth0-static +ipv4.routes "10.10.0.0/16 192.168.1.254"添加静态路由
删除路由nmcli connection mod eth0-static -ipv4.routes "10.10.0.0/16 192.168.1.254"删除静态路由
设置自动连接nmcli connection mod eth0-static autoconnect yes设置开机自动激活
禁用自动连接nmcli connection mod eth0-static autoconnect no设置开机不自动激活
查看所有属性nmcli -f all connection show eth0-static显示连接的所有属性
重启 NetworkManagersystemctl restart NetworkManager重启网络管理服务

完整配置案例

案例:配置生产服务器网络

为一台 RHEL 9 服务器配置网络:ens160 连接生产网络(10.0.1.10/24,网关 10.0.1.1,DNS 8.8.8.8),主机名 web-server.example.com,添加到 172.16.0.0/12 的静态路由。

# 第一步:设置主机名
sudo hostnamectl set-hostname web-server.example.com

# 第二步:查看当前网络状态
nmcli device status
nmcli connection show

# 第三步:创建静态 IP 连接
sudo nmcli connection add type ethernet con-name prod-static ifname ens160 \
  ipv4.method manual \
  ipv4.addresses 10.0.1.10/24 \
  ipv4.gateway 10.0.1.1 \
  ipv4.dns "8.8.8.8 1.1.1.1" \
  ipv6.method disabled \
  autoconnect yes

# 第四步:添加静态路由
sudo nmcli connection mod prod-static +ipv4.routes "172.16.0.0/12 10.0.1.254"

# 第五步:激活连接
sudo nmcli connection up prod-static

# 第六步:验证配置
ip addr show ens160          # 确认 IP 地址
ip route show                # 确认路由表
ping -c 2 10.0.1.1          # 测试网关连通性
ping -c 2 8.8.8.8           # 测试外网连通性
dig www.example.com          # 测试 DNS 解析
hostnamectl status           # 确认主机名

# 第七步:保存配置备份
nmcli connection show prod-static > /tmp/network-backup.txt

预期输出:IP 地址显示 10.0.1.10/24,路由表显示默认路由 via 10.0.1.1 和 172.16.0.0/12 via 10.0.1.254,ping 和 dig 均成功。

NetworkManager 配置文件详解

RHEL 9 使用 NetworkManager 管理网络,配置文件位于 /etc/NetworkManager/system-connections/ 目录。理解配置文件结构有助于故障排查。

配置项含义示例值
[connection]连接元数据id=eth0-static, type=ethernet
[ipv4]IPv4 配置method=manual, addresses=192.168.1.100/24
[ipv4.method]IPv4 方法auto(DHCP) 或 manual(静态)
[ipv4.addresses]IPv4 地址192.168.1.100/24
[ipv4.gateway]默认网关192.168.1.1
[ipv4.dns]DNS 服务器8.8.8.8;1.1.1.1(分号分隔)
[ipv4.routes]静态路由10.10.0.0/16 192.168.1.254
[ipv6]IPv6 配置method=auto 或 manual
[ipv6.addresses]IPv6 地址2001:db8::100/64
[ipv6.gateway]IPv6 网关2001:db8::1
[ipv6.dns]IPv6 DNS2001:4860:4860::8888
[autoconnect]开机自动连接yes 或 no

配置文件示例(/etc/NetworkManager/system-connections/prod-static.nmconnection):

[connection]
id=prod-static
type=ethernet
autoconnect=true

[ipv4]
method=manual
addresses=10.0.1.10/24
gateway=10.0.1.1
dns=8.8.8.8;1.1.1.1
route1=172.16.0.0/12,10.0.1.254

[ipv6]
method=disabled

注意:直接编辑配置文件后需要重启 NetworkManager:sudo systemctl restart NetworkManager。考试中推荐使用 nmcli 命令,避免手动编辑配置文件出错。

nmcli vs nmtui 对比

特性nmclinmtui
界面类型命令行终端图形界面
学习曲线较陡(需记忆命令)较平(菜单操作)
操作速度快(熟练后)中等
功能完整性完整(所有 NetworkManager 功能)部分(缺少高级配置)
脚本化支持(可编写脚本)不支持(需要交互)
SSH 远程操作推荐(无需 X 转发)可用(需要终端支持)
考试推荐★★★★★(首选)★★★☆☆(备选)
生产环境★★★★★(自动化运维)★★☆☆☆(临时修改)

考试建议:优先使用 nmcli,nmtui 作为备选。nmcli 更适合脚本化和自动化,且考试中大部分题目都需要 nmcli 完成。

# 步骤
sudo nmcli connection add type ethernet con-name eth0-int \
  ifname eth0 ipv4.method manual \
  ipv4.addresses 192.168.1.100/24

sudo nmcli connection add type ethernet con-name eth1-ext \
  ifname eth1 ipv4.method manual \
  ipv4.addresses 10.0.0.100/24 \
  ipv4.gateway 10.0.0.1

# 验证
ip addr show
ip route show

练习 2:配置静态路由访问远程网段

添加到 172.16.0.0/16 网段的静态路由,网关为 192.168.1.254。

sudo nmcli connection mod eth0-static +ipv4.routes "172.16.0.0/16 192.168.1.254"
sudo nmcli connection up eth0-static
ip route show | grep 172.16

练习 3:排查 DNS 解析故障

模拟 DNS 配置错误并排查修复。

# 故意设置错误 DNS
sudo nmcli connection mod eth0-static ipv4.dns "192.0.2.1"
sudo nmcli connection up eth0-static

# 测试(应失败)
dig example.com

# 排查
resolvectl status
cat /etc/resolv.conf

# 修复
sudo nmcli connection mod eth0-static ipv4.dns "8.8.8.8"
sudo nmcli connection up eth0-static
dig example.com

练习 4:使用 hostnamectl 配置 FQDN

设置主机名为 web01.example.com,并确保 /etc/hosts 中正确配置。

sudo hostnamectl set-hostname web01.example.com
echo "192.168.1.50 web01.example.com web01" | sudo tee -a /etc/hosts
hostname -f
getent hosts web01

模拟题

题目 1

将系统主机名设置为 server01.example.com,配置 ens160 网卡的静态 IP 地址为 192.168.1.100/24,默认网关为 192.168.1.1,DNS 为 8.8.8.8。配置完成后验证网络连通性。

参考答案sudo hostnamectl set-hostname server01.example.comsudo nmcli connection add type ethernet con-name ens160-static ifname ens160 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 autoconnect yessudo nmcli connection up ens160-static → 验证:ip addr show ens160ip route showping -c 2 192.168.1.1ping -c 2 8.8.8.8hostnamectl status

题目 2

为系统添加一条静态路由:到 10.10.0.0/16 网段的数据包通过 192.168.1.254 转发。确保路由在重启后仍然生效。

参考答案:持久化方式(推荐):sudo nmcli connection mod eth0-static +ipv4.routes "10.10.0.0/16 192.168.1.254"sudo nmcli connection up eth0-staticip route show | grep 10.10 确认路由存在。临时方式(重启丢失):sudo ip route add 10.10.0.0/16 via 192.168.1.254。考试要求"重启后生效",必须用 nmcli。

题目 3

系统无法解析域名 www.example.com,请排查问题并修复。要求记录排查过程和使用的命令。

参考答案:排查步骤:① ping -c 2 8.8.8.8 确认网络层连通;② dig www.example.com 确认 DNS 解析失败;③ cat /etc/resolv.conf 检查 DNS 服务器配置是否正确;④ resolvectl status 查看 NetworkManager 下发的 DNS;⑤ grep hosts /etc/nsswitch.conf 确认解析顺序(files 应在 dns 前)。修复:若 DNS 服务器错误,sudo nmcli connection mod eth0-static ipv4.dns "8.8.8.8"sudo nmcli connection up eth0-static;若 /etc/hosts 优先级问题,修正 nsswitch.conf 中 hosts 行顺序。

题目 4

系统有两块网卡 ens160(生产网络)和 ens192(管理网络)。要求 ens160 配置为 10.0.1.10/24,ens192 配置为 192.168.1.200/24,默认网关走 ens160,到 172.16.0.0/12 的流量走 ens192。

参考答案:分别创建两个连接:sudo nmcli connection add type ethernet con-name prod-static ifname ens160 ipv4.method manual ipv4.addresses 10.0.1.10/24 ipv4.gateway 10.0.1.1 autoconnect yessudo nmcli connection add type ethernet con-name mgmt-static ifname ens192 ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.routes "172.16.0.0/12 192.168.1.1" autoconnect yes → 分别 up 两条连接 → 验证:ip route show 确认两条路由都存在。

题目 5

临时将 ens160 的 IP 地址改为 192.168.1.200/24(不修改现有连接配置),验证连通性后恢复原配置。

参考答案:使用 nmcli 的临时修改:sudo nmcli connection mod eth0-static ipv4.addresses 192.168.1.200/24sudo nmcli connection up eth0-static → 测试连通性 → 恢复原配置:sudo nmcli connection mod eth0-static ipv4.addresses 192.168.1.100/24sudo nmcli connection up eth0-static。或者使用 ip 命令临时修改:sudo ip addr add 192.168.1.200/24 dev ens160 → 测试 → sudo ip addr del 192.168.1.200/24 dev ens160(重启丢失)。

题目 6

配置系统使用两个 DNS 服务器:8.8.8.8(主)和 1.1.1.1(备),并确保 /etc/hosts 中的本地解析优先于 DNS。

参考答案:修改 DNS 配置:sudo nmcli connection mod eth0-static ipv4.dns "8.8.8.8 1.1.1.1"sudo nmcli connection up eth0-static → 确认 /etc/nsswitch.conf 中 hosts 行为 files dns(files 在前,DNS 在后)→ 添加 hosts 条目:echo "192.168.1.50 myserver.local" | sudo tee -a /etc/hosts → 验证:getent hosts myserver.local 应返回 192.168.1.50。

题目 7

系统网络出现故障:ens160 接口显示 UP,但无法 ping 通网关。请排查问题并修复。

参考答案:排查步骤:① ip addr show ens160 检查 IP 配置是否正确;② ip route show 检查默认网关是否存在;③ ip neigh show 检查 ARP 表是否有网关的 MAC 地址;④ ping -c 2 网关IP 测试连通性;⑤ 若 ARP 表无条目,检查二层连通性(交换机端口、VLAN 配置);⑥ 检查防火墙:sudo firewall-cmd --list-allsudo iptables -L -n。常见原因:网关 IP 配置错误、子网掩码错误、二层隔离(VLAN)、防火墙规则。

题目 8

配置系统使用 IPv6 地址 2001:db8::100/64,网关 2001:db8::1,DNS 2001:4860:4860::8888。同时保留现有的 IPv4 配置。

参考答案:修改现有连接的 IPv6 设置:sudo nmcli connection mod eth0-static ipv6.method manual ipv6.addresses 2001:db8::100/64 ipv6.gateway 2001:db8::1 ipv6.dns 2001:4860:4860::8888sudo nmcli connection up eth0-static → 验证:ip -6 addr show ens160ip -6 route showping6 -c 2 2001:db8::1

最佳实践

  • 优先使用 nmcli connection 而非 ip addr,因为 nmcli 配置是持久化的,重启不会丢失
  • 修改网络配置前先备份当前连接:nmcli connection show eth0-static > /tmp/backup.txt
  • 不要在 SSH 远程操作时重启 NetworkManager,使用 nmcli connection up 逐个激活
  • 配置完成后立即验证:ip addr showip route showping 网关ping DNS
  • 考试中遇到不确定的网卡名称,先执行 nmcli device status 确认

验证 checklist

ip addr show           # IP 配置正确
ip route show          # 默认网关和静态路由
ping -c 2 8.8.8.8      # 外网连通性
ping -c 2 目标主机     # 内网连通性
dig example.com        # DNS 解析
hostnamectl status     # 主机名
cat /etc/hosts         # 本地解析
nmcli connection show  # NetworkManager 连接状态

学习检查点

学完本章后,请检验自己是否掌握以下内容:

检查项自测问题验证方法
概念理解能用自己的话解释 NetworkManager 和 nmcli 的工作原理尝试向他人讲解
命令操作能不查文档完成 nmcli 网络配置和连接管理在终端实际执行
原理掌握能说出静态 IP 和 DHCP 配置的区别及 DNS 解析原理画出流程图
故障排查能独立排查网络配置错误导致无法联网的问题模拟故障并修复
最佳实践能说明为什么生产环境建议使用静态 IP对比不同方案

本章总结

网络配置考点集中在 nmcli 的 11 个子命令体系与连接配置文件 /etc/NetworkManager/system-connections。记住"先查状态(nmcli dev status)→再改连接(nmcli con mod)→后激活(nmcli con up)"的配置顺序。hosts 文件与 DNS 解析顺序是易错点,考试中应用 nmcli 而非直接改 ifcfg 文件。

延伸阅读

↑ 回到顶部