我使用 Windows 7 作为主机操作系统。我在 VirtualBox 上安装了 Debian 6.0.4 和 lighttpd。
我能http://localhost
通过在浏览器地址面板中输入地址,我可以轻松访问我的计算机的 Web 服务器,但我网络中的其他计算机不能通过输入我的 IP 地址来访问它。
我在 VirtualBox 中使用 NAT 端口转发。我应该怎么做才能让我的 Web 服务器可供网络上的所有人使用?
编辑:
我找到了一个“解决方案”——我必须将客户端口和主机端口设置为不同的端口。但我仍然遇到问题,即:
服务器在端口 8080 启动。
Port forwarding : guest port 8080
host port 80
我可以通过我的机器访问服务器
但我只能通过以下方式从网络上的其他计算机访问服务器IP:8080
答案1
一种选择是将虚拟机的网络适配器更改为桥接模式;然后,您应该能够通过提供您的客户的 IP 地址从网络上的其他机器访问虚拟服务器。
编辑:
对于实际方面,请参阅 VirtualBox 文档虚拟网络. 您的选择是使用桥接网络
使用桥接网络时,VirtualBox 使用主机系统上的设备驱动程序来过滤来自物理网络适配器的数据。因此,此驱动程序称为“网络过滤器”驱动程序。这允许 VirtualBox 拦截来自物理网络的数据并将数据注入其中,从而有效地在软件中创建一个新的网络接口。当客户机使用这种新的软件接口时,主机系统会认为客户机使用网络电缆物理连接到接口:主机可以通过该接口向客户机发送数据并从中接收数据。这意味着您可以在客户机和网络的其余部分之间设置路由或桥接。
或者转发端口:
由于虚拟机连接到 VirtualBox 内部的专用网络,主机无法看到它,因此主机或同一网络上的其他计算机无法访问客户机上的网络服务。但是,与物理路由器一样,VirtualBox 可以通过端口转发将选定的服务提供给客户机外部的世界。这意味着 VirtualBox 会监听主机上的某些端口,并通过相同或不同的端口将到达那里的所有数据包重新发送给客户机。
因此,如果发生 NAT 端口转发,您应该使用以下命令:
VBoxManage modifyvm "VM name" --natpf1 "guesthttp,tcp,,80,,80"
答案2
好的,经过几个小时的互联网搜索,我已经解决了这个问题。
问题出在我的即时通讯工具上斯皮克它正在监听端口 80。关闭它并重新启动机器后,一切都恢复正常:)
我读到过有人可能会遇到与 Skype 相同的问题。