路由器:IP:192.168.1.1
主机操作系统:Windows 7(64 位)- IP:192.168.1.2
客户操作系统(VMware):Ubuntu 12.04 LTS(64 位)-IP:192.168.1.10
客户操作系统具有 NAT 和通过 VMWare 的桥接连接。
我正在运行一个基本的 Node.js 服务器/网站,监听端口 8000。端口转发路由器的内部/外部端口为:8000
我可以在 LAN 上(通过 Windows 操作系统)访问我的网站,但不能从外部的任何计算机或通过互联网访问。
尝试过:
(1) 禁用 Ubuntu 防火墙“ufw”。
(2) 禁用 Windows 7 防火墙。
(3) 即使对于 apache2 或任何其他服务器,问题仍然存在。
结果:无变化
此外,外部端口扫描(外部 IP 上的 nmap)显示我的端口 8000 被“过滤”而不是打开。
在 Win 7 中,在端口 8000 上运行相同的 Node.js 服务器也可以正常工作。端口 8000 处于“打开”状态。
几天来,我尝试了“很多”在线解决方案,但没有进展。有什么解决方案/想法吗?
答案1
您说您转发了路由器上的端口。
但您需要将端口从主机系统转发到客户系统。
您可以在 VMWare 设置中执行此操作。转到 NAT 设置(编辑 > 虚拟网络设置 > NAT)并编辑 VMnet 主机。然后按“端口转发”按钮并将端口 8000 转发到 8000。
请参阅 VMWare 支持文章:
http://www.vmware.com/support/ws5/doc/ws_net_nat_advanced.html
答案2
问题解决了。
我切换到“Oracle 的 VirtualBox“并且它运行完美。
可以通过以下方式使用虚拟服务器 -
(1)带端口转发的 NAT 连接。
(2) NAT 和桥接连接。
我使用了选项 2,并使用静态 IP(192.168.1.10)进行桥接连接。NAT 连接默认为 192.168.1.2(由 DHCP 提供)。
路由器端口转发为:传入端口:8000,传出端口:8000 和传出 IP:192.168.1.10
为一个简洁明了的教程,这里有一个很好的链接 ->http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/
在“VMWare”上也是可能的,但在我看来,在“VirtualBox”上要简单得多。