在现代服务器架构中,配置和使用多网卡是一项基础且至关重要的技能,它不仅能实现网络流量的隔离,提升安全性,还能通过链路聚合增加带宽,或提供网络冗余以确保高可用性,在CentOS系统中,启用和配置多网卡主要涉及对网络配置文件的精确编辑和管理,本文将详细阐述在CentOS环境下启用多网卡的核心步骤与高级应用。

第一步:识别现有网卡
在进行任何配置之前,首先需要确认系统检测到了哪些网络接口,可以通过以下命令查看:
ip addr
或使用旧版命令(如果已安装):
ifconfig -a
命令的输出会列出所有网络设备,通常包括回环接口(lo)以及一个或多个以太网接口(如 ens33, ens37, eno1 等),假设系统已有主网卡 ens33,我们希望启用并配置第二块网卡 ens37。
第二步:配置网络接口
CentOS的网络配置文件存放在 /etc/sysconfig/network-scripts/ 目录下,每个网卡对应一个名为 ifcfg-[接口名] 的文件。
为第二网卡配置静态IP地址
这是最常见的场景,例如为内网通信或特定服务分配一个固定的IP地址。
-
创建或编辑配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens37
-
写入以下配置内容:

TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens37 UUID=[此处可留空或生成一个新的UUID] DEVICE=ens37 ONBOOT=yes IPADDR=192.168.20.10 NETMASK=255.255.255.0 GATEWAY=192.168.20.1 DNS1=8.8.8.8 DNS2=114.114.114.114
关键参数解释:
BOOTPROTO=static:设置为静态IP模式。ONBOOT=yes:确保系统启动时激活此网卡。IPADDR,NETMASK,GATEWAY:分别定义IP地址、子网掩码和网关,注意,如果此网卡不需要访问外网,GATEWAY可以省略,以避免与主网关冲突。DNS1,DNS2:指定DNS服务器。
为第二网卡配置DHCP获取地址
如果网络环境中存在DHCP服务器,配置会相对简单。
TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes NAME=ens37 DEVICE=ens37 ONBOOT=yes
只需将 BOOTPROTO 设置为 dhcp,并确保 ONBOOT 为 yes 即可。
第三步:高级应用——网卡绑定
为了实现网络冗余和负载均衡,可以将多块物理网卡绑定成一个逻辑网卡。
| 绑定模式 | 名称 | 描述 |
|---|---|---|
| mode=0 | balance-rr | 平衡轮询模式,数据包依次在所有Slave网卡上发送,提供负载均衡和容错。 |
| mode=1 | active-backup | 主备模式,只有一块网卡处于活动状态,其他作为备份,提供高可用性。 |
| mode=6 | balance-alb | 自适应负载均衡模式,结合了mode=0的负载均衡和mode=1的容错能力。 |
配置示例(mode=1 主备模式):
-
创建绑定接口配置文件
ifcfg-bond0:DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_OPTS=mode=1 miimon=100 BOOTPROTO=static IPADDR=192.168.10.100 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 ONBOOT=yes
-
修改物理网卡配置文件(如
ifcfg-ens33和ifcfg-ens37):
# /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 NAME=ens33 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none # /etc/sysconfig/network-scripts/ifcfg-ens37 DEVICE=ens37 NAME=ens37 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none
第四步:应用并验证配置
完成配置文件的编辑后,需要重启网络服务以使更改生效。
systemctl restart network
对于CentOS 8/9,推荐使用 nmcli 命令:
nmcli connection reload nmcli connection up [接口名,如ens37或bond0]
使用 ip addr 检查网卡是否已成功获取IP地址并处于 UP 状态,可以使用 ping 命令测试连通性,特别是对于多网卡环境,可以使用 -I 参数指定从哪个网卡发出ICMP包:
ping -I 192.168.20.10 baidu.com
相关问答FAQs
问题1:配置第二块静态IP网卡后,服务器无法访问外网了,怎么办? 解答: 这是一个典型的路由冲突问题,当系统中有两个网卡都配置了网关时,默认路由可能会变得混乱,解决方法通常是:
- 检查默认路由:使用
ip route或route -n查看默认路由(0.0.0)指向哪个网关,确保它指向正确的、能够连接外网的网关。 - 移除不必要的网关:如果第二块网卡仅用于内网通信,在其配置文件中删除或注释掉
GATEWAY行,然后重启网络服务,这样系统只会保留一个通往外网的默认路由。 - 策略路由:如果需要两块网卡都能访问不同的网络,需要配置策略路由,为不同的源IP地址指定不同的路由表,这属于更高级的网络配置。
问题2:如何确认我的网卡绑定是否工作正常? 解答: 可以通过以下几种方式验证网卡绑定的状态:
- 查看绑定接口状态:执行
cat /proc/net/bonding/bond0命令,输出信息会非常详细地显示Bonding Mode: active-backup、Currently Active Slave: ens33以及所有Slave网卡的状态(MII Status: up),如果主网卡故障,你会看到Currently Active Slave字段切换到备用网卡。 - 物理断开测试:这是最直接的测试方法,在主备模式下,拔掉活动网卡的网线,观察服务器网络是否中断,以及
cat /proc/net/bonding/bond0的输出是否迅速切换到备用网卡,正常情况下,网络连接只会瞬间中断,然后迅速恢复。 - 查看系统日志:使用
journalctl -f或dmesg命令查看系统日志,在网卡状态发生变化时,内核会记录相关事件。