我们在网关机器上运行 ubuntu。我们有一个 DNAT iptables 规则,将 80 和 3306 上的流量发送到运行 Web 服务器的内部 IP 地址。它根本不起作用。
eth1 是 wan 接口,eth0 是本地接口
-A INPUT -p tcp -m tcp -m multiport -s 192.168.2.173 -j ACCEPT --dports 25,80,443,465,3306
-A OUTPUT -d 173.201.37.214 -o eth1 -j ACCEPT
-A PREROUTING -p tcp -d $EXT_IP -i eth1 --dport 80 -j DNAT --to-destination 192.168.2.173:80
-A PREROUTING -p tcp -d $EXT_IP -i eth1 --dport 3306 -j DNAT --to-destination 192.168.2.173:3306
-A FORWARD -p tcp -d 192.168.2.173 --dport 80 -j ACCEPT
答案1
您需要过滤表中的相应规则来允许流量通过过滤器。您发布的规则仅处理 NAT 部分。
-A FORWARD -p tcp -d 192.168.2.5 -i eth1 --dport 80 -j ACCEPT
-A FORWARD -p tcp -d 192.168.2.5 -i eth1 --dport 3306 -j ACCEPT
编辑:OP 没有在第一篇文章中包含完整的输出。
答案2
尝试这个:
回显“ 1”> / proc / sys / net / ipv4 / ip_forward
答案3
例如,您还需要 POSTROUTING 规则
-A POSTROUTING -p tcp -o eth1 -m multiport --sports 80,3306 -s 192.168.2.173 -j SNAT --to-source $EXT_IP