我在 Windows 10 上安装了 ToolBox。
已经创建了机器和 Nginx 容器,并在端口 8000 上打开外部。
Docker 机器的 IP 是192.168.99.100
,容器的 IP 是172.17.0.2
。
我可以从 Windows 访问 Nginx 192.168.99.100:8000
。甚至,我可以从 Windows 主机直接访问172.17.0.2:80
。我也可以从容器内部访问 Internet。
总体配置如下:
Container (Nginx) Docker Host (VirtualBox) Host (Windows 10) Router
172.17.0.2:80 <-----------> 172.17.0.1 (docker0)
10.0.2.15 (eth0)
192.168.99.100:8000 (eth1) <------> 192.168.99.1 (Ethernet 2, VirtualBox Host-Only Ethernet Adapter)
192.168.1.3 (Ethernet, Intel Hardware Adapter) <--------------------> 192.168.1.1
<Internet static IP address> <-----------> Provider
问题是我无法在 Windows 主机之外连接 Nginx。telnet 192.168.1.3 8000
从路由器尝试 - 连接被拒绝。我的 Windows 机器上没有任何防病毒软件,并且防火墙已关闭。
答案1
答案2
您的标题是互联网,但您的解决方案更倾向于指 LAN。
此代码执行类似的技巧:
netsh interface portproxy add v4tov4 listenport=80 connectaddress=192.168.99.100 connectport=8000 protocol=tcp