Iptables

如何添加只匹配“dport”的路由規則?

  • November 15, 2021

在我的 OpenWrt 框中,我只想將特定協議(tcp:1888)路由到一台 PC(192.168.28.2)的 tun 介面,所以我執行以下操作:

ip rule add from 192.168.28.2 dport 1888 lookup 123

ip route add default via 10.8.0.2 dev tun0 table 123

但它不起作用

當我檢查規則列表時ip rule,我得到:

0:從所有本地查找

32765:從 192.168.28.2 查找 123

32766:來自所有查找主

32767:從所有查找預設值

我客人說 dport SELECTOR 沒有生效。

我應該怎麼做?

謝謝!!!

解決方案:在 Nikita Kipriyanov 的幫助下,我得到了它,但是 mangle 表的 FORWARD 鏈不起作用,我使用了 PREROUTING instaed。

請任何人解釋為什麼我應該使用 PREROUTING 而不是 FORWARD 的 mangle?

在mangle表的FORWARD鏈中添加 netfilter標記規則。然後使用該標記添加路由規則:

iptables -t mangle -A PREROUTING -s 192.168.28.2 -p tcp --dport 1888 -j MARK --set-mark 0x1/0x1
ip rule add fwmark 0x1/0x1 lookup 123

引用自:https://serverfault.com/questions/1083564