
我配置了路由:
# 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