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:12345
到192.168.0.1:54321
.
新增以上兩條規則後,除來自 的封包外,所有發送至 的封包192.168.0.1:12345
均會在 處收到。192.168.0.1:54321
192.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