Debian

使用 iptables 轉發非標準埠

  • September 16, 2016

我在將埠(例如:50001)轉發到另一台 PC(192.168.1.101)時遇到問題。埠 50001 用於遠端桌面(客戶端 PC 正在此埠上偵聽新連接)。

伺服器是一個 Debian,有一個外部介面 (eth0) 和一個內部介面 (eth2)。

EXTIF="eth0"
INTIF="eth2"

iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF


iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 3389 -j DNAT --to-destination 192.168.1.100:3389
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 3389 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 1433 -j DNAT --to-destination 192.168.1.100:1433
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 1433 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 2470 -j DNAT --to-destination 192.168.1.100:2470
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 2470 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 50001 -j DNAT --to-destination 192.168.1.101:50001
iptables -A FORWARD -p tcp -d 192.168.1.101 --dport 50001 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

現在……埠 3389、1433 和 2470 的轉發工作正常。但是 50001 不起作用。

我已經測試了將 FORWARD 的政策更改為 ACCEPT 並且沒有任何變化。

提前致謝。

我假設您沒有更改 RDP 在內部伺服器上偵聽的埠,因此請更改行

iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 50001 -j DNAT --to-destination 192.168.1.101:50001
iptables -A FORWARD -p tcp -d 192.168.1.101 --dport 50001 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 50001 -j DNAT --to-destination 192.168.1.101:3389
iptables -A FORWARD -p tcp -d 192.168.1.101 --dport 3389 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

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