活動 UDP 連接的 iptables 連接埠轉發

活動 UDP 連接的 iptables 連接埠轉發

port 12345我正在嘗試使用port 54321以下命令在 UDP 上設定連接埠轉送:

iptables -t nat -A PREROUTING -p udp -i eth0 -d 192.168.0.1  --dport 12345 -j DNAT --to 192.168.0.1:54321

iptables -A FORWARD -p udp -i eth0 -d 192.168.0.1 --dport 54321 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

這對於新連接來說效果很好,但是對於當前活動的連接則不起作用。

為了澄清我的意思,假設在添加規則之前,有一個來自192.168.0.2:55555<---> 的活動連接192.168.0.1:12345,並且我嘗試將所有傳入連接重定向192.168.0.1:12345192.168.0.1:54321.

新增以上兩條規則後,除來自 的封包外,所有發送至 的封包192.168.0.1:12345均會在 處收到。192.168.0.1:54321192.168.0.2:55555

我想連結的狀態在這方面發揮了作用。我該如何解決這個問題並從192.168.0.1:55555目的地port 12345獲取資料包port 54321

答案1

我知道怎麼做了!

您需要在 NAT 上使用重定向!但在此之前,您必須從 conntrack 中刪除與此連接對應的條目!像下面這樣的東西

conntrack -D -p udp -d  192.168.0.1 --dport=55555 

相關內容