CentOS网卡接口配置文件详细指南
目录
1. 核心配置参数详解
2. 典型配置示例
2.1 静态 IP 配置
2.2 DHCP 自动获取 IP
2.3 链路聚合从属接口(配合 bond0)
3. 重要注意事项
3.1 参数依赖性
3.2 服务重启
3.3 网络管理服务
3.4 远程连接风险
3.5 多网卡环境
3.6 网卡名称差异
3.7 Ubuntu/Debian 系统
3.8 IPv6 配置
3.9 文件名与设备名
3.10 参数冲突
3.11 临时配置与永久配置
3.12 文件格式
3.13 故障排查
/etc/sysconfig/network-scripts/ifcfg-eth0
是 RHEL/CentOS 系列 Linux 系统中 以太网接口 eth0
的配置文件,用于定义网络接口的 IP 地址、子网掩码、网关、启动方式等关键参数。系统通过读取该文件,在网络服务启动时自动配置接口,是固定网络环境的核心配置方式。
1. 核心配置参数详解
下面表格汇总了该配置文件中的主要参数,方便你快速查阅:
参数名 | 含义与作用 | 常见可选值/示例 | 备注 |
---|---|---|---|
DEVICE | 指定网络接口的设备名称 | eth0 | 必须与实际设备名一致 |
BOOTPROTO | 指定启动时获取IP地址的协议 |
| 设为 static 或 none 时需手动配置IP、掩码等 |
ONBOOT | 系统启动时是否自动激活该网络接口 | yes 或 no | 服务器通常设为 yes |
IPADDR | 设置静态IP地址 | 192.168.1.100 | BOOTPROTO=static 或 none 时有效 |
NETMASK | 设置子网掩码 | 255.255.255.0 | 同上 |
GATEWAY | 设置默认网关的IP地址 | 192.168.1.1 | 通常只有一个接口设置此项 |
DNS1/DNS2 | 设置首选和备用DNS服务器地址 | 8.8.8.8 , 8.8.4.4 | 会被写入 /etc/resolv.conf |
HWADDR | 绑定设备的MAC地址 | 00:0C:29:8A:16:65 | 确保与实际MAC一致,设备变化时配置仍有效 |
TYPE | 网络类型 | Ethernet (以太网) | 通常为 Ethernet |
USERCTL | 是否允许非root用户控制该设备(如启动/停用) | yes 或 no | 出于安全,服务器通常设为 no |
NM_CONTROLLED | 是否由 NetworkManager 服务管理该接口 | yes 或 no | 服务器环境建议设为 no ,使用 network 服务避免干扰 |
DEFROUTE | 是否将此接口设置为默认路由 | yes 或 no | 通常只有一个接口设为 yes |
PEERDNS | 当 BOOTPROTO=dhcp 时,是否接受DHCP服务器指定的DNS | yes 或 no | 若设为 no ,则使用自定义的 DNS1 等 |
IPV6INIT | 是否初始化IPv6 | yes 或 no | |
UUID | 接口的唯一标识符(通常由系统自动生成)。 | UUID=123e4567-e89b-12d3-a456-426614174000 | |
NAME | 接口的描述性名称(可选)。 | NAME="System eth0" | |
IPV4_FAILURE_FATAL | yes / no | 若 IPv4 配置失败,是否禁用接口:no (默认,允许接口启动但无 IPv4 地址)。 | |
MTU | 1500 | 接口的最大传输单元(数据包大小上限,默认 1500 字节,特殊场景如 VPN 可调整为 1400 ) | |
| 指定广播地址,通常系统会自动计算,一般无需手动设置 |
| |
MASTER | bond0 | 链路聚合(bonding)时,指定主接口(如 bond0 ),当前接口作为从属接口。需配合 SLAVE=yes 使用。 | |
SLAVE | yes | 声明当前接口为从属接口(仅在 MASTER 配置时生效)。 | |
VLAN | yes | 标识当前接口为 VLAN 子接口(如 ifcfg-eth0.10 对应 VLAN 10,需设置 VLAN=yes )。 |
2. 典型配置示例
2.1 静态 IP 配置
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.8.100
PREFIX=24 # 等价于 NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8
HWADDR=00:11:22:33:44:55 # 绑定MAC地址,避免设备名变化
2.2 DHCP 自动获取 IP
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=dhcp
PEERDNS=yes # 接受DHCP服务器的DNS配置
HWADDR=00:11:22:33:44:55
2.3 链路聚合从属接口(配合 bond0)
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=none # 从属接口无需单独配置IP,由bond0统一管理
MASTER=bond0 # 主接口为bond0
SLAVE=yes # 声明为从属接口
3. 重要注意事项
3.1 参数依赖性
当 BOOTPROTO
设置为 static
或 none
时,必须同时配置 IPADDR
和 NETMASK
参数,通常也需要配置 GATEWAY
和 DNS1
等参数,否则网络无法正常通信。
3.2 服务重启
修改配置文件后,必须重启网络服务才能使更改生效。可以使用以下命令:
systemctl restart network # RHEL/CentOS7.x
ifdown eth0 && ifup eth0 # 或者只重启特定的网卡
3.3 网络管理服务
确保你使用的是传统的 network
服务而不是 NetworkManager。如果 NM_CONTROLLED=yes
,则配置可能由 NetworkManager 管理,行为会有所不同。对于服务器,通常建议设置 NM_CONTROLLED=no
并使用 network
服务。
3.4 远程连接风险
如果你是通过SSH远程修改服务器配置,将 BOOTPROTO
从 dhcp
改为 static
时,一定要确保新的静态IP配置正确(特别是网关),否则重启网络服务后可能导致网络断开,无法远程连接。操作前建议做好备份。
3.5 多网卡环境
确保只有一个接口设置了 GATEWAY
和 DEFROUTE=yes
,避免路由冲突。
3.6 网卡名称差异
新版系统可能使用 ens33
、enp0s3
等命名规则,需根据实际接口名称修改 DEVICE
。
3.7 Ubuntu/Debian 系统
Ubuntu 18.04+ 使用 Netplan
配置网络,配置文件路径为 /etc/network/interfaces
文件(旧版)或 /etc/netplan/*.yaml
文件(新版),而非 ifcfg-eth0
。
3.8 IPv6 配置
若需启用 IPv6,添加 IPV6INIT=yes
并配置 IPV6ADDR
。
3.9 文件名与设备名
文件名必须为 ifcfg-<DEVICE>
(如 eth0
对应 ifcfg-eth0
),否则系统无法识别。
3.10 参数冲突
PREFIX
与 NETMASK
只需配置一个,同时存在时 PREFIX
优先。
3.11 临时配置与永久配置
使用 ip addr add
或 ifconfig
命令配置的IP地址会立即生效,但重启后丢失。修改 ifcfg-eth0
文件是永久配置。
3.12 文件格式
配置文件中,每个参数设置为一行,格式为 参数名=参数值
。参数值不区分大小写,也不强制需要引号。
3.13 故障排查
如果配置后网络不通,可按以下顺序检查:
- 使用
ip link show eth0
检查网卡物理连接状态(state UP
为正常)。 - 使用
ping -c 4 <网关IP>
检查到网关的连通性。 - 使用
ping -c 4 8.8.8.8
检查到公网的连通性。 - 使用
nslookup www.baidu.com
检查DNS解析是否正常。