使用 iptables 转发非标准端口

使用 iptables 转发非标准端口

我在将端口(例如: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,但没有任何变化。

提前致谢。

答案1

我假设你没有更改 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

相关内容