2.3.7 网络配置在不同发行版的差异
不同发行版的网络配置核心概念一致(接口、IP、网关、DNS),但配置文件路径、管理服务与生效方式不同。先确认发行版与网络管理栈,再做配置变更,避免被其他工具覆盖。
网络配置栈关系示意图:
发行版差异与核心文件#
- RHEL/CentOS/AlmaLinux/Rocky
- 旧版:
/etc/sysconfig/network-scripts/ifcfg-* - 新版:
NetworkManager默认,推荐nmcli - Debian/Ubuntu
- 旧版:
/etc/network/interfaces+ifup/ifdown - Ubuntu 18.04+:
/etc/netplan/*.yaml+netplan apply - SUSE/openSUSE
wicked或NetworkManager- 配置在
/etc/sysconfig/network/ifcfg-*
典型静态IP配置示例(含命令解释)#
RHEL系(NetworkManager + nmcli)#
# 1) 查看接口名(如 ens33/eth0)
ip link
# 2) 创建/修改连接并设置静态IP
nmcli con mod "System ens33" ipv4.addresses 192.168.10.20/24 \
ipv4.gateway 192.168.10.1 ipv4.dns "8.8.8.8,114.114.114.114" \
ipv4.method manual
# 3) 启用连接
nmcli con up "System ens33"
# 4) 验证
ip addr show ens33
ip route
resolvectl status
命令解释:
nmcli con mod 修改连接配置;ipv4.method manual 指定静态IP;nmcli con up 让配置立即生效。
Ubuntu 20.04+(Netplan)#
/etc/netplan/01-netcfg.yaml:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses: [192.168.10.30/24]
gateway4: 192.168.10.1
nameservers:
addresses: [8.8.8.8,114.114.114.114]
生效与验证:
# 应用配置
sudo netplan apply
# 验证
ip addr show ens33
ip route
resolvectl status
关键点:renderer 选择 networkd 或 NetworkManager,与当前系统管理栈一致。
SUSE(wicked)#
# 1) 查看接口
ip link
# 2) 编辑配置文件
sudo vi /etc/sysconfig/network/ifcfg-eth0
文件示例:
BOOTPROTO='static'
IPADDR='192.168.10.40/24'
GATEWAY='192.168.10.1'
DNS1='8.8.8.8'
STARTMODE='auto'
生效:
sudo wicked ifdown eth0
sudo wicked ifup eth0
DNS配置差异示例#
NetworkManager 管理的 DNS#
nmcli con mod "System ens33" ipv4.dns "1.1.1.1,8.8.8.8"
nmcli con up "System ens33"
resolvectl status
说明:直接编辑 /etc/resolv.conf 可能被覆盖,应通过上层工具配置。
systemd-resolved 手动临时变更#
sudo resolvectl dns ens33 1.1.1.1 8.8.8.8
resolvectl status
迁移/排错步骤(可执行流程)#
# 1) 确认网络管理器
systemctl status NetworkManager
systemctl status systemd-networkd
systemctl status wicked
# 2) 检查是否有多个管理器冲突
nmcli general status
ps -ef | egrep 'NetworkManager|networkd|wicked'
# 3) 查看IP与路由
ip addr
ip route
# 4) DNS与连通性验证
resolvectl status
ping -c 3 8.8.8.8
curl -I https://www.example.com
常见问题与解决#
- 配置不生效或被覆盖
- 原因:多管理器并存(如 NetworkManager 与 network-scripts)。
- 解决:保留一种管理器,停用另一种并统一配置入口。 - DNS 解析失败但 IP 可达
- 原因:resolv.conf被自动生成。
- 解决:改用nmcli或netplan配置 DNS。 - 重启后丢失 IP
- 原因:配置文件未持久化。
- 解决:确认对应发行版的配置文件路径与生效命令。
练习题(含目标与验证)#
- RHEL系:使用
nmcli将ens33设为静态IP192.168.56.10/24,网关192.168.56.1,DNS8.8.8.8。
- 验证:ip addr show ens33、ip route、resolvectl status - Ubuntu:编写 Netplan 文件设置静态IP
10.0.0.20/24,网关10.0.0.1。
- 验证:netplan apply后ip addr与ping 10.0.0.1 - 排错:模拟 DNS 失效(将 DNS 改为不存在的地址),用
resolvectl status与dig排查并修复。