我有一台 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