上一篇
如何实现服务器双网卡路由配置?详细教程与设置步骤
- 互联网
- 2026-02-09
- 4467
核心原理
- 默认网关:只能有一个(通常是外网网卡),处理所有非本地网络的流量。
- 静态路由:指定特定网段的流量通过内网网卡转发。
配置步骤(以Linux为例)
确认网卡信息
ip addr # 查看网卡名称及IP(如 eth0、eth1)
假设:
- eth0:外网网卡,IP 168.1.100,网关 168.1.1
- eth1:内网网卡,IP 0.0.100,无网关
配置默认网关(外网)
# 删除原有默认路由(谨慎操作) sudo ip route del default # 添加外网网关 sudo ip route add default via 192.168.1.1 dev eth0
添加静态路由(内网)
假设内网网段为 168.100.0/24,流量需通过 eth1:

- 若内网需经网关(如 0.0.1): sudo ip route add 192.168.100.0/24 via 10.0.0.1 dev eth1
验证路由表
ip route show
输出应包含:

default via 192.168.1.1 dev eth0 192.168.100.0/24 dev eth1 # 或 via 10.0.0.1
测试连通性
ping 8.8.8.8 # 测试外网(通过eth0) ping 192.168.100.50 # 测试内网(通过eth1)
永久生效配置
Ubuntu/Debian (Netplan)
- 编辑配置文件 /etc/netplan/01-netcfg.yaml: network: version: 2 renderer: networkd ethernets: eth0: addresses: [192.168.1.100/24] routes: - to: 0.0.0.0/0 via: 192.168.1.1 nameservers: addresses: [8.8.8.8] eth1: addresses: [10.0.0.100/24] routes: - to: 192.168.100.0/24 via: 10.0.0.1 # 或省略此行(直连网段无需网关)
- 应用配置: sudo netplan apply
CentOS/RHEL
- 编辑网卡配置文件:
- 外网卡 /etc/sysconfig/network-scripts/ifcfg-eth0: BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 # 默认网关在此设置 DNS1=8.8.8.8
- 内网卡 /etc/sysconfig/network-scripts/ifcfg-eth1: BOOTPROTO=static IPADDR=10.0.0.100 NETMASK=255.255.255.0 # 不设置 GATEWAY
- 添加静态路由:
- 创建文件 /etc/sysconfig/network-scripts/route-eth1: 168.100.0/24 via 10.0.0.1 dev eth1
- 重启网络服务: sudo systemctl restart network
防火墙与内核参数
-
开启IP转发:

-
防火墙规则(若需NAT):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables-save > /etc/iptables/rules.v4 # 保存规则(Ubuntu)
- 检查网关连通性: ping 192.168.1.1 # 外网网关 ping 10.0.0.1 # 内网网关
- 跟踪路由路径: traceroute 8.8.8.8 traceroute 192.168.100.50
- 验证策略路由: ip route get 8.8.8.8 # 应走 eth0 ip route get 192.168.100.50 # 应走 eth1
故障排查
通过以上步骤,服务器可同时访问内外网,并根据目标IP自动选择路由路径,关键点在于只设置一个默认网关,并通过静态路由指定内网流量路径。