Linux双网卡配置实战:从基础到高级设置

张开发
2026/4/4 4:51:21 15 分钟阅读
Linux双网卡配置实战:从基础到高级设置
1. Linux双网卡配置基础入门第一次在Linux服务器上插两块网卡时我盯着闪烁的网口指示灯发懵——这玩意儿到底算两个独立网络还是能合并使用后来才发现双网卡配置远比想象中灵活。你可以让两块网卡各司其职比如一个接内网一个连外网也能玩负载均衡甚至故障自动切换。下面就从最基础的物理连接开始说起。插上网线后先来个快速体检。打开终端输入ip link show这个命令会列出所有网络接口通常有线网卡显示为eth0、eth1或ens33、ens34这样的名称。如果只看到一个网卡先检查物理连接和网卡驱动是否正常加载。我遇到过新买的Intel I350网卡需要手动加载igb驱动的情况这时候用dmesg | grep eth就能看到内核的硬件识别日志。确认双网卡识别后临时测试连通性可以先用动态IPdhclient eth0 dhclient eth1但生产环境强烈建议配置静态IP避免DHCP分配的IP变动导致服务中断。在Ubuntu和CentOS上配置文件路径稍有不同Ubuntu/etc/netplan/*.yamlCentOS/RHEL/etc/sysconfig/network-scripts/ifcfg-ethX2. 静态IP配置实战以CentOS 7为例假设我们要给ens33配置192.168.1.100外网ens34配置10.0.0.100内网。先备份原始配置cp /etc/sysconfig/network-scripts/ifcfg-ens33 ~/ifcfg-ens33.bak然后编辑ens33配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33关键参数这样设置TYPEEthernet BOOTPROTOstatic NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.1.100 NETMASK255.255.255.0 GATEWAY192.168.1.1 DNS18.8.8.8第二块网卡ens34的配置要注意三个区别不要重复GATEWAY设置否则会导致路由冲突内网通常不需要DNS解析确保IP段与第一块网卡不同TYPEEthernet BOOTPROTOstatic NAMEens34 DEVICEens34 ONBOOTyes IPADDR10.0.0.100 NETMASK255.255.255.0配置完成后重启网络服务systemctl restart network验证时有个实用技巧同时开两个终端分别用ping -I ens33 8.8.8.8和ping -I ens34 10.0.0.1指定网卡测试连通性。3. 路由策略精细控制双网卡最常遇到的问题就是路由混乱。上周我同事的服务器明明连着内网微信却总收到外网IP的告警就是因为默认路由走了内网卡。查看当前路由表ip route show假设我们需要默认路由走ens33外网10.0.0.0/24网段走ens34内网先删除原有默认路由ip route del default然后添加精确路由ip route add default via 192.168.1.1 dev ens33 ip route add 10.0.0.0/24 dev ens34想让配置永久生效在CentOS中需要编辑/etc/sysconfig/network-scripts/route-ens33default via 192.168.1.1 dev ens33对于需要严格隔离的场景还可以用策略路由Policy Routing。比如让来自ens34的流量始终走内网echo 100 internal /etc/iproute2/rt_tables ip rule add from 10.0.0.100 lookup internal ip route add default via 10.0.0.1 dev ens34 table internal4. 高级网络模式配置4.1 网卡绑定Bonding把两块网卡绑成逻辑接口能提升带宽和可靠性。创建bond0接口modprobe bonding echo alias bond0 bonding /etc/modprobe.d/bonding.conf编辑ifcfg-bond0DEVICEbond0 TYPEBond BONDING_MASTERyes IPADDR192.168.1.200 NETMASK255.255.255.0 GATEWAY192.168.1.1 ONBOOTyes BONDING_OPTSmode1 miimon100然后把物理网卡加入bond组以ens33为例DEVICEens33 ONBOOTyes MASTERbond0 SLAVEyes六种绑定模式的区别mode0负载均衡流量平均分配但可能乱序mode1主备切换只有主卡故障才启用备用卡mode4LACP需要交换机支持最稳定的负载均衡方案4.2 网桥配置KVM虚拟化常用网桥模式让虚拟机通过物理网卡通信。安装桥接工具yum install bridge-utils -y # CentOS apt install bridge-utils -y # Ubuntu创建br0桥接ens33brctl addbr br0 brctl addif br0 ens33配置ifcfg-br0DEVICEbr0 TYPEBridge IPADDR192.168.1.100 NETMASK255.255.255.0 ONBOOTyes记得把ens33的IP配置移到br0上并修改ens33配置为DEVICEens33 ONBOOTyes BRIDGEbr05. 故障排查与性能优化双网卡环境最头疼的就是网络时通时断。推荐几个诊断命令查看丢包和错误计数ethtool -S ens33 | grep -E err|drop测试实际带宽需要iperf3工具iperf3 -c 目标IP -P 4 -t 30持续监控流量nload -m ens33 ens34如果发现性能瓶颈可以尝试调整网卡参数ethtool -G ens33 rx 4096 tx 4096 # 增大环形缓冲区 ethtool -K ens33 tso off gso off # 关闭分段卸载对于云计算环境特别注意虚拟网卡的MTU设置。某次阿里云ECS的VPN连接异常就是因为默认1500字节MTU与隧道封装冲突改成1450后立即恢复正常ip link set ens33 mtu 1450

更多文章