0

0

如何配置Linux多网卡路由 策略路由配置实例解析

P粉602998670

P粉602998670

发布时间:2025-08-04 11:28:01

|

668人浏览过

|

来源于php中文网

原创

策略路由通过自定义路由表和规则实现多网卡流量控制。1. 理解问题:默认路由表可能导致回程不对称,需根据源ip等条件选择路径。2. 配置自定义路由表:编辑rt_tables文件添加表名,使用ip route命令为表添加路由规则。3. 添加策略路由规则:用ip rule命令指定源ip匹配的路由表,并设置规则优先级。4. 测试与持久化:通过traceroute或tcpdump测试路径,将配置写入启动脚本或网络管理工具确保重启后生效。

如何配置Linux多网卡路由 策略路由配置实例解析

在Linux系统中,如果你有多张网卡,并且需要根据不同的流量走不同的网络出口,这时候普通的路由表就不够用了。你需要配置策略路由(Policy Routing)来满足这种需求。

如何配置Linux多网卡路由 策略路由配置实例解析

策略路由的核心在于:不只看目标IP地址,还能根据源IP、协议类型等条件选择路由路径

如何配置Linux多网卡路由 策略路由配置实例解析

1. 理解多网卡环境下的路由问题

假设你有一台服务器有两个网卡:

  • eth0
    接入内网,IP为
    192.168.1.100/24
    ,默认网关是
    192.168.1.1
  • eth1
    接入外网,IP为
    203.0.113.100/24
    ,默认网关是
    203.0.113.1

默认情况下,系统只有一个主路由表,所有流量都按目标地址决定走哪个网卡。比如你从

eth1
的 IP 发出的请求,如果响应回来时被主路由表判断应该走
eth0
,就可能造成“回程不对称”,从而导致连接失败。

如何配置Linux多网卡路由 策略路由配置实例解析

这就是为什么我们需要策略路由——让源IP不同,走不同的路由表


2. 配置自定义路由表

Linux允许我们创建多个路由表,每个表可以独立设置规则。

步骤如下:

  • 编辑
    /etc/iproute2/rt_tables
    文件,添加一个自定义表名:
echo "1 rt_eth1" >> /etc/iproute2/rt_tables

这表示创建了一个名为

rt_eth1
的路由表,编号为1(编号不能重复)。

  • 给这个表添加路由规则:
ip route add 203.0.113.0/24 dev eth1 table rt_eth1
ip route add default via 203.0.113.1 dev eth1 table rt_eth1

这样,这张表就知道如何处理发往

eth1
的流量了。


3. 添加策略路由规则

接下来要告诉系统:来自某个源IP的数据包,使用哪张路由表

IBM Watson
IBM Watson

IBM Watson文字转语音

下载

执行以下命令:

ip rule add from 203.0.113.100 lookup rt_eth1

这条规则的意思是:只要是源IP为

203.0.113.100
的数据包,就去查
rt_eth1
表来找路由路径。

你可以用

ip rule show
查看当前的策略规则列表。

注意:规则是有优先级的,排在前面的先匹配。你可以通过 ip rule add ... pref 1000 指定优先级数值。

4. 测试与持久化保存

测试方法:

可以用

traceroute
mtr
命令测试是否走对了网关。也可以用
tcpdump
在两个网卡上监听流量,确认来回路径一致。

例如:

tcpdump -i eth1 host 8.8.8.8

持久化配置:

上面的命令重启后会失效。为了持久生效,可以把这些命令写进启动脚本,或者使用网络管理工具如

NetworkManager
systemd-networkd
来配置。

以脚本方式为例,可以创建一个脚本放在

/etc/network/if-up.d/
下,让它在网络接口起来之后自动执行相关命令。


基本上就这些。策略路由看似复杂,但只要搞清楚三步:建表 → 加路由 → 定规则,就可以灵活控制不同来源的流量走向。不复杂,但容易忽略细节,特别是规则顺序和表名编号的问题。

相关文章

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

765

2023.08.22

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1051

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

107

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

674

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1353

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

704

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号