在 Ubuntu 上使用 iptables 进行端口转发

在 Ubuntu 上使用 iptables 进行端口转发

以下是场景

我已经在 MUX 中配置了一个 Web 服务器。现在我想从 Internet 访问该 Web 服务器。Ubuntu 盒子有两个接口,一个连接到 WAN(公共 IP),另一个连接到 MUX(私有 IP)。MUX 没有插入默认网关的选项。

iptables -t nat -A PREROUTING -p tcp -i eth0 -d 103.x.x.x --dport 8001 -j DNAT --to-destination 192.168.1.2:8080
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

这是行不通的。

答案1

你想要的是这个:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8081 -m conntrack -ctstate NEW -j DNAT --to 192.168.1.2:8080
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

希望这可以帮助。

相关内容