一、RedHat 系列(RHEL / CentOS / Rocky / 国产服务器系统)
说明:国产服务器系统(如银河麒麟V10、统信UOS等)大多基于RHEL 7或8开发,配置方式可参照对应版本
1. RHEL / CentOS / Rocky 7.x
特点:network 和 NetworkManager 两个服务并存。以下两种方式均可,任选其一
方式一:使用 network-scripts(传统方式)
# 1. 编辑配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改以下内容:
# 系统默认配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=7b26dec5-fd4b-4e37-a247-15c0bda63190
DEVICE=eth0
ONBOOT=no
# 修改后
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=no # 避免和NetworkManager冲突
DEFROUTE=yes # 系统如果有多个网卡,需要把该网卡作为默认路由转发则修改yes,其他网卡no
NAME=eth0
UUID=7b26dec5-fd4b-4e37-a247-15c0bda63190
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=114.114.114.114
DNS2=8.8.8.8
# 2. 重启网络服务生效
systemctl restart network
方式二:使用 nmcli(推荐)
nmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.254 ipv4.dns 114.114.114.114
nmcli con mod eth0 connection.autoconnect yes
nmcli con down eth0 && nmcli con up eth0
注意:7.x 默认两个服务都开启,若遇到配置不生效,可检查是否服务冲突,建议只保留一个活跃
2. RHEL / CentOS / Rocky 8.x
特点:NetworkManager 为默认且必须开启的服务,network服务已不存在
推荐方式:直接使用 nmcli
nmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.254 ipv4.dns 114.114.114.114
nmcli con mod eth0 connection.autoconnect yes
nmcli con down eth0 && nmcli con up eth0
备选:也可沿用 7.x 的 ifcfg 文件方式配置
3. RHEL / CentOS / Rocky 9.x
特点:network-scripts 包已彻底移除,不再可用;NetworkManager 是唯一的网络管理方式;配置文件默认以 keyfile 格式存储在 /etc/NetworkManager/system-connections/ 目录下。
配置命令(与其他版本完全一致):
nmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.254 ipv4.dns 114.114.114.114
nmcli con mod eth0 connection.autoconnect yes
nmcli con down eth0 && nmcli con up eth0
配置会自动保存到 /etc/NetworkManager/system-connections/eth0.nmconnection。
注意:ifcfg 格式虽仍可被读取,但不再是默认存储格式。若需将旧格式迁移至新格式,可使用 nmcli connection migrate <con-name>。
📌 Red Hat 系列版本差异速查表
| | | |
|---|
| 7.x | network + NetworkManager 并存 | | /etc/sysconfig/network-scripts/ |
| 8.x | | | /etc/sysconfig/network-scripts/ |
| 9.x | | | /etc/NetworkManager/system-connections/ |
二、Ubuntu 系列(22.04 / 24.04)
说明:Ubuntu 从 17.10 开始使用 Netplan 作为默认网络配置工具。22.04 和 24.04 配置方式基本一致,均使用 Netplan。
配置文件位置:/etc/netplan/ 目录下,常见文件名有:
- 00-installer-config.yaml(Server版安装程序生成)
- 01-netcfg.yaml
- 01-network-manager-all.yaml(Desktop版)
配置步骤:
# 1. 查看实际网卡名称
ip a
# 2. 编辑 Netplan 配置文件(以 00-installer-config.yaml 为例)
sudo vi /etc/netplan/00-installer-config.yaml
写入以下内容(注意 YAML 缩进格式):
network:
version: 2
renderer: networkd # Server版用 networkd;Desktop版可用 NetworkManager
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.2/24
routes:
- to: default
via: 192.168.1.254
nameservers:
addresses:
- 114.114.114.114
# 3. 测试配置(推荐,有确认环节)
sudo netplan try
# 4. 直接应用配置
sudo netplan apply
22.04 vs 24.04 差异:24.04 进一步强化了 Netplan,彻底移除了传统的 ifupdown 包;云环境中需注意 cloud-init 可能覆盖手动配置。但日常静态IP配置命令和步骤完全一致。
三、常见问题
Q1:执行 nmcli con mod eth0 ... 时报错 “Connection ‘eth0’ does not exist”?
A1:连接名(connection name)可能不叫 eth0。先执行 nmcli con show 查看实际的 NAME,再用该名称替换命令中的 eth0。
Q2:BOOTPROTO=none 和 BOOTPROTO=static 有什么区别?
A2:在 Red Hat 系列中两者功能完全相同,都表示手动指定静态IP。none 是更推荐的写法。
Q3:配置后重启系统不生效?
A3:检查 ONBOOT=yes(ifcfg方式)或 connection.autoconnect yes(nmcli方式)是否已设置。
Q4:Red Hat 7.x 上两个服务同时开启会怎样?
A4:可能争抢网卡控制权导致配置异常。建议只保留一个活跃服务。若使用 network 服务,可在 ifcfg 文件中添加 NM_CONTROLLED=no 禁止 NetworkManager 接管。