当前位置:首页 > 互联网 > 正文

如何实现服务器双网卡路由配置?详细教程与设置步骤

核心原理

  • 默认网关:只能有一个(通常是外网网卡),处理所有非本地网络的流量。
  • 静态路由:指定特定网段的流量通过内网网卡转发。


配置步骤(以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:

如何实现服务器双网卡路由配置?详细教程与设置步骤 第1张

  • 若内网需经网关(如 0.0.1): sudo ip route add 192.168.100.0/24 via 10.0.0.1 dev eth1

验证路由表

ip route show

输出应包含:

如何实现服务器双网卡路由配置?详细教程与设置步骤 第2张

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)

  1. 编辑配置文件 /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 # 或省略此行(直连网段无需网关)
  2. 应用配置: sudo netplan apply

CentOS/RHEL

  1. 编辑网卡配置文件:
    • 外网卡 /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
  2. 添加静态路由
    • 创建文件 /etc/sysconfig/network-scripts/route-eth1: 168.100.0/24 via 10.0.0.1 dev eth1
  3. 重启网络服务: sudo systemctl restart network


防火墙与内核参数

  1. 开启IP转发

    如何实现服务器双网卡路由配置?详细教程与设置步骤 第3张

  2. 防火墙规则(若需NAT):

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables-save > /etc/iptables/rules.v4 # 保存规则(Ubuntu)

  3. 故障排查

    1. 检查网关连通性: ping 192.168.1.1 # 外网网关 ping 10.0.0.1 # 内网网关
    2. 跟踪路由路径: traceroute 8.8.8.8 traceroute 192.168.100.50
    3. 验证策略路由: ip route get 8.8.8.8 # 应走 eth0 ip route get 192.168.100.50 # 应走 eth1


    通过以上步骤,服务器可同时访问内外网,并根据目标IP自动选择路由路径,关键点在于只设置一个默认网关,并通过静态路由指定内网流量路径。

0