我需要帮助来完成我的小设置。
我的 PC 上有一台装有 Ubuntu 16.04.3 LTS 的虚拟机。我的家庭网络是 192.168.1.0/24。许多网络命名空间都带有 OpenVPN 隧道。一些软件可以在 netns 内运行。
我需要的是使用 Web 界面从我的家庭网络控制该软件。
例如。
我的虚拟机的 eth0 ip 是 192.168.1.17,我的一个 netns veth ip 是 10.1.8.1 我在端口 1008 上运行一个 Web 服务,我想从 192.168.1.0 网络访问它,然后转到 192.168.1.17:1008。我可以使用 curl 从虚拟机的 192.168.. 网络内部测试该服务,它运行正常,我可以通过 10.1.8.1:1008 访问该服务。我也可以从我的家庭网络 ping 10.1.8.1,但我无法访问虚拟机外部的 Web 服务。它拒绝连接。
我尝试使用 iptables 将任何传入到端口 1008 的连接转发到 10.1.8.1:1008,但似乎不起作用。系统中已启用端口转发。
答案1
iptables -A FORWARD -p tcp -d 10.1.8.1 --dport 1008 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 1008 -j DNAT --to-destination 10.1.8.1:1008
我能够使用 iptables 来做到这一点。