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

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

我有一台 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 上运行的应用程序。这是因为它跨越了两个接口还是其他原因?

答案1

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

相关内容