跳至主要內容

Debian 策略路由配置

Change Lee...大约 4 分钟Linuxsshrouterule

白话

测试系统版本:Debian(11/12)

经过了解学习,Debian 配置策略路由分以下几步,然而第一步也有非常多的知识可以学习和了解,所有的路由和策略的配置都是基于 iproute2 这个包里的命令,部分命令与老命令的对比

功能ip routeroute
功能更完整×
命令行更简洁×
支持更多功能×
更适合高级用户×
更适合初学者×

新老命令关系对应表

net-toolsiproute2功能
netstat -r/route -nip route show查看路由信息
route addip route add添加路由
route delip route del删除路由
ifconfigip link显示up状态(激活状态)的网卡信息
ifconfig -aip addr show显示所有网卡的信息,包含未up的
ifconfig -sip -s link显示摘要信息
ifconfig -helpip -help查看帮助
ifconfig eth0 upip link set eth0 up启动网卡
ifconfig eth0 downip link set eth0 down停掉网卡
netstatss监控工具
netstat -lss -l查看listen监听状态的连接信息
iptunnelip tunnelip隧道
netstat -g/ipmaddrip maddr多播地址管理
arp -naip neigharp地址解析信息ip->mac地址

【更多命令的使用参考大佬写的文章】open in new window

1. 添加自定义路由表

修改 /etc/iproute2/rt_tables,增加一个自定义路由表 100 为id, clash 为表内容

root@adguard:~# cat /etc/iproute2/rt_tables
#
# reserved values
#
255	local
254	main
253	default
0	unspec
#
# local
#
#1	inr.ruhep
100   clash

2. 给路由表添加路由

ip route add default via 192.168.1.253 dev eth0 table 100

查看

root@adguard:/etc/network/if-up.d# ip route show table 100
default via 192.168.1.253 dev eth0

3. 添加 ip rule 策略

ip rule add from any to 8.8.8.8 table 100 priority 1

查看

root@adguard:/etc/network/if-up.d# ip rule show table 100
1:	from all to 8.8.8.8 lookup clash
1:	from all to 1.1.1.1 lookup clash
1:	from all to 185.199.109.153 lookup clash
1:	from all to 185.199.108.153 lookup clash
1:	from all to 185.199.110.153 lookup clash
1:	from all to 185.199.111.153 lookup clash

4. 永久添加的方法

上述 3 和 4 的操作都是临时添加的,如果机器重启,则添加的路由和策略都会消失,所以我们需要使用一个脚本来添加这些路由和规则,无论是 3,还是现在的脚本,我都是添加的默认路由,只有有 rule 规则匹配到了路由表 clash 那匹配到的路由就会请求到 192.168.1.253 ,如果想到更明细的路由,则需要修改 ip route add 相关的配置参数

因为Debian 使用的是 interfaces(应该是systemd-networkd 这个服务管理的) 配置的网络,所以我们可以在 /etc/network/if-up.d/ 这个目录下创建一个自定义的网络相关配置的脚本(其实使用脚本都可以,都会在启动网络的时候执行),结过测试,脚本需要执行权限,用文件名不能使用 .sh 做为结尾,测试时脚本没有执行,去除后可以正常执行。

root@adguard:/etc/network/if-up.d# cat clash
#!/bin/bash
ip route del default table 100
n=$(ip rule | grep -c clash )
for i in $(seq 1 $n); do
    echo $i
    ip rule del table 100
done
ip route add default via 192.168.1.253 dev eth0 table 100
ip rule add from any to 8.8.8.8 table 100 priority 1
ip rule add from any to 1.1.1.1 table 100 priority 1
ip rule add from any to 185.199.109.153 table 100 priority 1
ip rule add from any to 185.199.108.153 table 100 priority 1
ip rule add from any to 185.199.110.153 table 100 priority 1
ip rule add from any to 185.199.111.153 table 100 priority 1
上次编辑于:
贡献者: change
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3