Linux策略路由详解(小白也能掌握的多网关网络配置指南)

V5主机测评

在日常使用 Linux 系统时,我们通常只连接一个网络(比如家庭宽带),系统会自动配置一条默认路由,所有流量都通过这个出口发送。但如果你的服务器或电脑同时连接了多个网络(例如:一个内网、一个外网;或者两个不同运营商的宽带),你就需要更灵活的控制——让某些流量走 A 网关,另一些走 B 网关。这时候,Linux 策略路由就派上用场了。

什么是策略路由?

传统的路由表(主路由表)只能根据目标地址决定下一跳。而策略路由允许你根据源 IP 地址入接口防火墙标记等条件,选择不同的路由表进行转发。这使得一台机器可以同时拥有多个“逻辑路由器”。

Linux策略路由详解(小白也能掌握的多网关网络配置指南)

核心组件:ip rule、ip route 和路由表

在 Linux 中,策略路由主要通过以下三个命令和概念实现:

  • ip rule:定义规则,决定何时使用哪个路由表。
  • ip route:管理具体路由表中的路由条目。
  • 自定义路由表:除了默认的 main 表(编号 254),你可以创建新的路由表(如 table 100、table 200)。

实战案例:双网卡双出口配置

假设你的 Linux 主机有两个网卡:

  • eth0:IP 为 192.168.1.100,网关 192.168.1.1(联通线路)
  • eth2:IP 为 10.0.0.100,网关 10.0.0.1(电信线路)

目标:从 192.168.1.100 发出的流量走联通网关,从 10.0.0.100 发出的流量走电信网关。

步骤 1:创建自定义路由表

编辑 /etc/iproute2/rt_tables 文件,添加两个新表:

# echo "100 liantong" >> /etc/iproute2/rt_tables# echo "200 dianxin" >> /etc/iproute2/rt_tables  

步骤 2:为每个表添加默认路由

# ip route add default via 192.168.1.1 dev eth0 table liantong# ip route add default via 10.0.0.1 dev eth2 table dianxin  

步骤 3:添加策略规则

告诉系统:当源 IP 是 192.168.1.100 时,使用 liantong 表;源 IP 是 10.0.0.100 时,使用 dianxin 表。

# ip rule add from 192.168.1.100 table liantong# ip rule add from 10.0.0.100 table dianxin  

步骤 4:验证配置

查看规则:

# ip rule show0:      from all lookup local32764:  from 10.0.0.100 lookup dianxin32765:  from 192.168.1.100 lookup liantong32766:  from all lookup main32767:  from all lookup default  

测试连通性(可选):

# ping -I 192.168.1.100 8.8.8.8  # 应走联通线路# ping -I 10.0.0.100 8.8.8.8    # 应走电信线路  

持久化配置

上述命令重启后会失效。要永久生效,可将命令写入启动脚本(如 /etc/rc.local)或使用 NetworkManager、systemd-networkd 等工具配置。

常见应用场景

  • 企业服务器双 ISP 出口,实现负载均衡或故障切换
  • 虚拟机或容器需要独立的网络路径
  • 基于用户或应用的流量分流(配合 iptables MARK)

总结

Linux策略路由是实现复杂网络拓扑的关键技术。通过 ip rule 和自定义路由表,你可以精细控制数据包的走向。无论是搭建网络多出口环境,还是进行高级网络实验,掌握这一技能都至关重要。希望本教程能帮助你轻松入门!

关键词提示:本文涉及的核心 SEO 关键词包括:Linux策略路由网络多出口ip rule高级路由配置

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。