Linux服务器各个版本网络配置文件

在 RHEL(Red Hat Enterprise Linux)的不同版本中,网卡配置文件的演进体现了从“传统脚本管理”向“NetworkManager 声明式管理”的过渡。以下是详细的对比总结:
1、 RHEL 7/Centos7 与 RHEL 9/10 的网卡配置异同

特性RHEL /centos 7RHEL 9/rockylinux9RHEL 10/rockylinux10
管理核心NetworkManager + network 脚本NetworkManager (强依赖)NetworkManager (唯一核心)
默认文件位置/etc/sysconfig/network-scripts//etc/NetworkManager/system-connections//etc/NetworkManager/system-connections/
文件格式ifcfg (Shell 变量)Keyfile (INI 格式)Keyfile (INI 格式)
ifcfg 脚本兼容性完美支持已弃用 (Deprecated),需插件支持已移除 (Removed),彻底不支持
默认 DHCP 客户端dhclient内置客户端 / dhclient仅限内置客户端 (dhclient 已删)

一、RHEL/CentOS 7(含 7)—— 传统 ifcfg 文件方式

这是经典的配置方法,虽然 8/9 已不推荐,但 7 及以下版本依然稳定使用。

1. 打开网络配置文件

配置文件位于 /etc/sysconfig/network-scripts/ifcfg-<接口名>。先确认你的网络接口名(如 eth0ens33):

ip a

然后编辑对应文件,例如 ifcfg-ens33

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

2. 修改为静态 IP

确保文件包含以下关键参数:

DEVICE=ens33                     # 设备名,需与文件名一致
TYPE=Ethernet
BOOTPROTO=static                 # 将 dhcp 改为 static
ONBOOT=yes                       # 开机自启
IPADDR=192.168.1.100             # 你要设置的 IP
NETMASK=255.255.255.0            # 子网掩码
GATEWAY=192.168.1.1              # 网关
DNS1=114.114.114.114             # DNS 服务器
DNS2=8.8.8.8

保存并退出。

3. 重启网络服务生效

sudo systemctl restart network
# 或使用旧命令
sudo service network restart

4. 验证配置

ip addr show ens33               # 查看 IP 是否配置成功
ping -c 4 114.114.114.114        # 测试外网连通性

二、RHEL/CentOS 8/9(含 Rocky/AlmaLinux 8/9)—— nmcli 推荐方式

从 RHEL 8 开始,网络配置由 NetworkManager 统一管理,/etc/sysconfig/network-scripts/ 目录已被弃用。官方推荐使用 nmcli 命令或 nmtui 文本界面。

方法 A:使用 nmcli 命令行(最推荐,适合脚本)

nmcli 是 NetworkManager 的命令行工具,修改后立即生效,无需重启服务。

1. 查看当前网络连接和设备

nmcli connection show            # 查看连接名(NAME 列)
nmcli device status              # 查看设备状态

记下你的连接名(例如 ens33Wired connection 1)。

2. 修改为静态 IP

# 设置 IP 地址、子网掩码(用 CIDR 格式)
sudo nmcli connection mod ens33 ipv4.addresses 192.168.1.100/24

# 设置网关
sudo nmcli connection mod ens33 ipv4.gateway 192.168.1.1

# 设置 DNS(多个用逗号分隔)
sudo nmcli connection mod ens33 ipv4.dns "114.114.114.114,8.8.8.8"

# 将获取方式改为手动(manual)
sudo nmcli connection mod ens33 ipv4.method manual

# 设置开机自动连接
sudo nmcli connection mod ens33 connection.autoconnect yes

注意ipv4.addresses 用的是 CIDR 格式(如 192.168.1.100/24),而非传统的 IPADDR+NETMASK

3. 重新激活连接使配置生效

sudo nmcli connection down ens33
sudo nmcli connection up ens33

或者直接重启 NetworkManager 服务:

sudo systemctl restart NetworkManager

4. 验证配置

ip addr show ens33
ip route show default             # 查看默认网关
cat /etc/resolv.conf               # 查看 DNS

方法 B:使用 nmtui 文本界面

如果不熟悉命令行参数,nmtui 提供了友好的界面。

1. 启动 nmtui

sudo nmtui

2. 操作步骤

  1. 选择 Edit a connection → 选中你的网卡(如 ens33)→ Edit
  2. IPv4 CONFIGURATIONAutomatic 改为 Manual
  3. Addresses 后填写 IP/掩码(如 192.168.1.100/24)。
  4. 填写 GatewayDNS servers
  5. 选择 OK 保存,返回主菜单。
  6. 选择 Activate a connection,先 DeactivateActivate 该连接。

3. 验证

同样使用 ip addrping 测试。


三、补充说明:RHEL 8/9 的网络配置文件新位置

如果习惯直接编辑文件,RHEL 8/9 的配置文件存储在 /etc/NetworkManager/system-connections/ 目录下,格式为 .nmconnection

sudo vi /etc/NetworkManager/system-connections/ens33.nmconnection

内容示例:

[connection]
id=ens33
uuid=xxxx
type=ethernet
autoconnect=true

[ipv4]
method=manual
addresses=192.168.1.100/24
gateway=192.168.1.1
dns=114.114.114.114;8.8.8.8;

修改后需重启 NetworkManager:

sudo systemctl restart NetworkManager

四、常见问题快速排查

问题排查命令/思路
修改后不生效确保执行了 nmcli connection up 激活连接,或重启 NetworkManager
网关冲突ip route show default 检查是否有多条默认路由,只保留一条正确的。
DNS 不生效确认 ipv4.dns 已设置,并检查 /etc/resolv.conf 是否被覆盖。
虚拟机网络不通检查虚拟网络模式(Bridged/NAT)与宿主机网关设置。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注