信息发布→ 登录 注册 退出

Linux多网卡路由怎么配置_策略路由实战说明【技巧】

发布时间:2025-12-24

点击量:
Linux多网卡路由应使用策略路由而非多默认网关:先为每网卡配置独立IP,再通过/etc/iproute2/rt_tables定义自定义路由表,用ip route添加各表路由、ip rule绑定源IP与表,最后持久化至systemd或Netplan。

Linux多网卡路由配置,核心不是“加多条默认网关”,而是让不同流量按需走指定路径。直接在main表里硬塞多个default路由会冲突,系统只认一条;真正可靠的方式是用策略路由(Policy Routing),基于源IP、目标地址等条件选择对应路由表。

先配好每块网卡的基础IP

确保每张网卡有独立、无重叠的IP和子网。例如:

  • eth0(内网):192.168.1.100/24,网关192.168.1.1
  • eth1(外网):10.0.0.100/24,网关10.0.0.1

临时配置用:ip addr add 192.168.1.100/24 dev eth0 && ip link set eth0 up;永久配置则写入对应发行版文件(如Ubuntu的/etc/netplan/*.yaml或CentOS的/etc/sysconfig/network-scripts/ifcfg-eth0)。

创建自定义路由表

编辑/etc/iproute2/rt_tables,追加两行(数字为优先级,越小越靠前):

200 table_intranet
201 table_internet

注意:不要改动已有的local、main、default三行。这个操作只需做一次,系统重启后仍保留。

为每个表添加路由规则

以eth0走内网、eth1走外网为例,执行以下命令:

  • 清空并填充内网表:ip route flush table table_intranet && ip route add 192.168.1.0/24 dev eth0 src 192.168.1.100 table table_intranet && ip route add default via 192.168.1.1 dev eth0 table table_intranet
  • 清空并填充外网表:ip route flush table table_internet && ip route add 10.0.0.0/24 dev eth1 src 10.0.0.100 table table_internet && ip route add default via 10.0.0.1 dev eth1 table table_internet
  • 绑定源IP到对应表:ip rule add from 192.168.1.100/32 table table_intranet && ip rule add from 10.0.0.100/32 table table_internet

这样,从192.168.1.100发出的包自动查table_intranet,从10.0.0.100发出的包查table_internet,互不干扰。

让配置开机生效

上述命令重启即失效,需持久化:

  • 推荐方式:写入systemd服务或/etc/rc.local(记得加sleep 5等网卡就绪延迟)
  • Netplan用户可在yaml中直接定义路由表与rule(v0.102+支持),比手动脚本更健壮
  • 验证是否生效:ip rule show看规则,ip route show table table_intranet查具体路由

策略路由不是“高级可选项”,而是多网卡场景下的标准解法。只要IP不冲突、路由表不漏、rule匹配准确,内外网分流自然稳定。

标签:# 路由表  # 可在  # 只需  # 多个  # 清空  # 绑定  # 重启  # 自定义  # 内网  # linux  # table  # default  # 子网  # 路由  # ai  # ubuntu  # internet  # centos  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!