如何標記輸出資料包並使 ip-rule 看到它?

如何標記輸出資料包並使 ip-rule 看到它?

我配置了路由:

# ip rule

0:      from all lookup local
25555:  from all fwmark 0x3000 lookup main
32766:  from all lookup another
32767:  from all lookup default

我試圖curl http://ifconfig.io/ip用 0x3000 標記輸出 HTTP 請求(例如 )以使 25555 工作:

# iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark 0x3000

但這不起作用。我缺什麼?

答案1

事實證明,路由代碼根本需要預設路由才能觸發 fwmark 規則,否則會直接出現「網路不可達」且不會產生任何資料包。

我透過在規則列表末尾的無處添加預設路由來繞過這個奇怪的規則:

ip route add default via 127.0.0.1 dev lo table 4222222222
ip rule add table 4222222222 priority 4294967295

相關內容