如何将端口 7300 从服务器 A 转发到服务器 B

如何将端口 7300 从服务器 A 转发到服务器 B

我们正在使用 Stunnel。但如果可能的话,想用 iptables 条目替换它。

192.168.123.122:7300 需要转发到 192.168.123.188:7300。因此在 iptables 中我设置了以下两个条目:

[root@dev ~]# iptables -t nat -A PREROUTING -p tcp --dport 7300 -j DNAT --to-destination 192.168.123.188:7300
[root@dev ~]# iptables -A FORWARD -m state -p tcp -d 192.168.123.188 --dport 7300 --state NEW,ESTABLISHED,RELATED -j ACCEPT

但它不起作用。

我确实检查过 /proc/sys/net/ipv4/conf/eth0/forwarding 里面的值为“1”。

有什么提示或暗示吗?

谢谢,帕特里克

答案1

为了启用 IP 转发,我通常将 的值更改/proc/sys/net/ipv4/ip_forward1

为了使其永久生效,我取消了对以下行的注释:net.ipv4.ip_forward=1in /etc/sysctl.conf

您没有提到您从哪里提出请求。

另外,您需要小心选择正确的链(INPUT、FORWARD、PREROUTING 等)。INPUT 链用于处理发往防火墙本身的数据包。OUTPUT 链用于处理来自防火墙主机的数据包。FORWARD 用于处理通过防火墙的数据包。

最后,当您不确定哪条防火墙规则不起作用时,tcpdump 是您的好帮手。您可以跟踪进出防火墙的流量。

答案2

您添加了 Masquerade 吗?

iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0

相关内容