Linux怎么配置系统的路由表信息

夏磊小哥_8712

夏磊小哥_8712

2026-06-26

762人浏览

原创

route命令在多网卡下失效,因其仅操作main表且内核强制唯一默认路由,导致回程路径不一致而丢包;必须用ip rule+ip route table为每网卡建独立路由表并绑定源ip规则,同时注册表名、添加src直连路由。

linux怎么配置系统的路由表信息

route 和 ip route 都能改路由表,但直接用 route add default gw 在多网卡机器上一定会出问题——SSH 一交互就断、ping 通但服务连不上,根本原因是回程路径不一致,不是配置没生效。

为什么 route 命令在多网卡下会失效

route 只操作 main 路由表,而内核强制只允许一张默认路由存在。你执行两次 route add default gw,后一条会直接覆盖前一条;更隐蔽的问题是:即使你加了多条非默认路由(比如 route add -net 10.0.20.0/24 gw 192.168.10.1),回包仍走 main 表里那个唯一的默认网关,导致请求从 eth1 进、响应从 eth0 出,对方看到源 IP 和出口接口不匹配,直接丢包。

  • 典型现象:能 SSH 连上 eth1 的 IP,输入命令几秒后卡死或断开
  • route -n 看起来“有两条默认路由”?那是假象——实际生效的只有一条,另一条已被覆盖
  • 单网卡场景下 route 没问题;多网卡必须绕过 main 表限制

如何用 ip rule + ip route table 实现策略路由

核心是为每张网卡建独立路由表 + 绑定源地址规则,让“从哪进、就从哪出”。顺序不能错,且必须先注册表名:

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 编辑 /etc/iproute2/rt_tables,追加两行(ID ≥ 100,避开系统保留值):
    100 tab_eth0<br>101 tab_eth1
    名字只能含字母、数字、下划线,tab-eth0 会失败
  • 为 eth0(IP 192.168.10.100/24,网关 192.168.10.1)建表:
    ip route add 192.168.10.0/24 dev eth0 src 192.168.10.100 table tab_eth0<br>ip route add default via 192.168.10.1 dev eth0 table tab_eth0
  • 为 eth1(IP 10.0.20.100/24,网关 10.0.20.1)建表:
    ip route add 10.0.20.0/24 dev eth1 src 10.0.20.100 table tab_eth1<br>ip route add default via 10.0.20.1 dev eth1 table tab_eth1
  • 绑定规则:
    ip rule add from 192.168.10.100/32 table tab_eth0<br>ip rule add from 10.0.20.100/32 table tab_eth1

临时路由 vs 永久路由怎么写

ip route 和 ip rule 命令本身是临时的,重启即丢。持久化要按发行版走不同路径:

  • CentOS/RHEL:在 /etc/sysconfig/network-scripts/route-eth0 里写
    192.168.10.0/24 dev eth0 src 192.168.10.100 table tab_eth0<br>default via 192.168.10.1 dev eth0 table tab_eth0
    再在 /etc/sysconfig/network-scripts/ifup-post 或 ifcfg-eth0 里加 POSTUP="ip rule add from 192.168.10.100/32 table tab_eth0"
  • Ubuntu/Debian:在 /etc/network/interfaces 对应接口段落里加
    up ip route add 192.168.10.0/24 dev eth0 src 192.168.10.100 table tab_eth0<br>up ip route add default via 192.168.10.1 dev eth0 table tab_eth0<br>up ip rule add from 192.168.10.100/32 table tab_eth0
  • 通用 fallback:把完整命令塞进 /etc/rc.local(确保它有执行权限且被 systemd 启用)

验证和排错关键点

别只信 ip route show,它默认只显示 main 表。查策略路由必须指定表或规则:

  • 看某张表内容:ip route show table tab_eth0
  • 看所有规则:ip rule show
  • 模拟数据包走向:ip route get 8.8.8.8 from 192.168.10.100 —— 输出应含 dev eth0 和 table tab_eth0
  • 常见漏项:忘了 src 参数,导致直连路由不带源地址,回程选错接口
  • 调试时先清掉旧规则:ip rule del from 192.168.10.100/32,再重加,避免冲突
策略路由不是“高级技巧”,而是多网卡 Linux 主机的刚需配置。最容易被忽略的是 /etc/iproute2/rt_tables 里表名注册和 ip route add 中的 src 参数——缺一不可,否则规则匹配成功,但路由查表时找不到对应源地址的直连条目,照样走错路。

相关文章

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

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

下载

相关标签:

linux 路由

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

相关专题

更多
磁盘配额是什么
磁盘配额是什么

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

2023.06.21

4030

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3433

10

linux find
linux find

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

2023.06.30

2613

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6370

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6022

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3513

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3005

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3239

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习