我们正在使用 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_forward
为1
。
为了使其永久生效,我取消了对以下行的注释:net.ipv4.ip_forward=1
in /etc/sysctl.conf
。
您没有提到您从哪里提出请求。
另外,您需要小心选择正确的链(INPUT、FORWARD、PREROUTING 等)。INPUT 链用于处理发往防火墙本身的数据包。OUTPUT 链用于处理来自防火墙主机的数据包。FORWARD 用于处理通过防火墙的数据包。
最后,当您不确定哪条防火墙规则不起作用时,tcpdump 是您的好帮手。您可以跟踪进出防火墙的流量。
答案2
您添加了 Masquerade 吗?
iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0