如何在Linux中路由过滤 Linux ip rule规则配置
发布时间 - 2025-09-03 00:00:00 点击率:次通过ip rule和自定义路由表实现策略路由,可基于源地址、接口、fwmark等条件进行流量控制,结合iptables标记与路由规则,实现多ISP出口、用户级路由等复杂场景的灵活管理。
在Linux中实现路由过滤和灵活的路由控制,主要依赖于 ip rule 和 ip route 命令,结合策略路由(Policy Routing)机制。传统的路由表是基于目标地址的单一查找,而策略路由允许你根据源地址、接口、防火墙标记等多种条件选择不同的路由表,从而实现更精细的流量控制。
理解策略路由与ip rule的作用
Linux内核维护多个路由表,除了默认的 main 表外,还可以创建自定义路由表。ip rule 用于定义使用哪个路由表来查找路由,规则按优先级顺序执行。
规则匹配的常见条件包括:
- 源IP地址(from)
- 目标IP地址(to)
- 入站接口(iif)
- 防火墙标记(fwmark)
- 优先级(priority)
例如,你可以让来自某个子网的流量走特定的网关,或让标记过的数据包使用独立的路由表。
配置自定义路由表
首先需要定义额外的路由表。路由表编号和名称的映射保存在 /etc/iproute2/rt_tables 文件中。
编辑该文件,添加自定义表:
echo "100 custom_table" >> /etc/iproute2/rt_tables然后为这个表配置路由:
ip route add default via 192.168.2.1 dev eth1 table custom_table ip route add 10.0.0.0/8 dev eth0 src 192.168.2.100 table custom_table添加ip rule规则实现路由过滤
使用 ip rule add 命令添加策略规则,控制数据包使用哪个路由表。
常见用法示例:
- 根据源地址选择路由表:
ip rule add from 192.168.10.0/24 table custom_table priority 100
- 根据防火墙标记选择路由表:
先在iptables中打标记:
iptables -t mangle -A OUTPUT -s 192.168.10.50 -j MARK --set-mark 0x1
然后添加规则:
ip rule add fwmark 0x1 table custom_table priority 200 - 根据入站接口决定路由:
ip rule add iif eth0 table custom_table priority 150
规则优先级数值越小,优先级越高。系统会按优先级顺序匹配规则,一旦匹配就停止。
查看与管理规则和路由
查看当前规则:
ip rule show查看指定路由表的内容:
ip route show table custom_table删除规则(按优先级):
ip rule del priority 100临时规则在重启后会丢失。若需持久化,应将命令写入网络配置脚本,如:
- 在 systemd 系统中使用 network-pre-up 脚本
- 或在 /etc/network/interfaces(Debian)中使用 up 指令
- 或使用 NetworkManager 的 dispatcher 脚本
基本上就这些。通过组合 ip rule、自定义路由表和 iptables 标记,你可以实现复杂的路由过滤和流量分流,比如多ISP出口、基于用户的路由、策略性旁路等场景。关键是理解匹配顺序和路由表选择逻辑,避免规则冲突。不复杂但容易忽略细节。
# linux
# ai
# 子网
# echo
# 接口
# default
# table
# debian
# 路由表
# 自定义
# 你可以
# 源地址
# 数据包
# 流量控制
# 还可以
# 多个
# 越高
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高防服务器如何保障网站安全无虞?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
做企业网站制作流程,企业网站制作基本流程有哪些?
Java类加载基本过程详细介绍
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
如何快速查询域名建站关键信息?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何快速完成中国万网建站详细流程?
详解CentOS6.5 安装 MySQL5.1.71的方法
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Laravel Docker环境搭建教程_Laravel Sail使用指南
JS碰撞运动实现方法详解
android nfc常用标签读取总结
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
香港服务器部署网站为何提示未备案?
如何用美橙互联一键搭建多站合一网站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
怎样使用JSON进行数据交换_它有什么限制
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
重庆市网站制作公司,重庆招聘网站哪个好?
北京的网站制作公司有哪些,哪个视频网站最好?
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
,网页ppt怎么弄成自己的ppt?
IOS倒计时设置UIButton标题title的抖动问题
详解Android中Activity的四大启动模式实验简述
网站制作壁纸教程视频,电脑壁纸网站?
如何用虚拟主机快速搭建网站?详细步骤解析
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何快速搭建高效服务器建站系统?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何快速重置建站主机并恢复默认配置?
如何在IIS中新建站点并配置端口与物理路径?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
如何在建站宝盒中设置产品搜索功能?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
如何在香港免费服务器上快速搭建网站?


