什么可以解释我的端口转发不起作用?

什么可以解释我的端口转发不起作用?

我正在尝试使用 iptables 将端口 443 转发到其他服务器。这怎么解释不起作用?我已启用 net.ipv4.ip_forward。

这是我使用的代码。我没有其他 iptables 规则:

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j DNAT --to 1.2.3.4:443
iptables -A FORWARD -p tcp -d 1.2.3.4 --dport 443 -j ACCEPT

答案1

如果您的默认转发策略是 DROP,那么您还需要接受流量返回:

iptables -A FORWARD -p tcp -s 1.2.3.4 --sport 443 -j ACCEPT

您应该稍微保护一下,这样如果您的盒子 1.2.3.4 受到威胁,至少没有伪造的数据包可以使用源端口 443 通过您的网关。

IPTABLES=/sbin/iptables
[ ... ]
$IPTABLES -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j DNAT --to 1.2.3.4:443
$IPTABLES -I FORWARD -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A FORWARD -p tcp -d 1.2.3.4 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 1.2.3.4 --sport 443 -m state --state ESTABLISHED -j ACCEPT

相关内容