使用 iptables 转发端口不起作用?

Jam*_*s T 6 server iptables firewall networking

我有一个 ubuntu 服务器(14.04.1),它要求作为我网络的路由器。它有一个面向互联网的接口 eth0 和第二个接口 eth1,用于连接到我的 10.0.0.0 网络。

我正在尝试将定向到 eth0 的 TCP 流量(在此示例中,假设其 IP 为 118.94.79.113)转发到地址为 10.0.0.1 的 eth1,用于端口 27016

我已按顺序尝试了以下命令:

sudo echo "1" > /proc/sys/net/ipv4/ip_forward

sudo sysctl net.ipv4.ip_forward=1

sudo iptables -t nat -A PREROUTING -p tcp --dport 27016 -j DNAT --to-destination 10.0.0.104:27016

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

但这似乎根本不起作用,我无法连接到 118.94.79.113:27016 以访问在 10.0.0.104:27016 上运行的应用程序。它与跨越两个接口有关还是什么?

Ben*_*Ben 4

尝试添加-i eth0到您的PREROUTING条目和-o eth0您的POSTROUTING条目并执行sudo iptables -A FORWARD -i eth1 -j ACCEPT