如何允许网络上的其他计算机访问我的虚拟 Web 服务器?

Pat*_*ryk 11 debian virtualbox webserver lighttpd debian-squeeze

我使用 Windows 7 作为主机操作系统。我在带有 lighttpd 的 VirtualBox 上安装了 Debian 6.0.4。

可以通过http://localhost在浏览器地址面板中键入我的机器轻松访问 Web 服务器,但是我网络中的其他计算机无法通过键入我的 IP 地址来访问它。

我在 VirtualBox 中使用 NAT 端口转发。我应该怎么做才能使我的网络服务器对我的网络上的每个人都可用?

编辑:

我找到了一个“解决方案”——我必须将访客端口和主机端口设置为不同的端口。但是我仍然有这个问题,即:

服务器在端口 8080 上启动。

Port forwarding : guest port 8080
                  host port 80
Run Code Online (Sandbox Code Playgroud)

我可以从我的机器上访问服务器

但是我只能通过网络上的其他机器访问服务器 IP:8080

Kar*_*los 9

一种选择是将虚拟机的网络适配器更改为桥接模式;然后,您应该能够通过提供来宾的 IP 地址从网络上的其他计算机访问虚拟服务器。

编辑:

对于实际方面,请查看有关虚拟网络的 VirtualBox 文档。您的选择是使用桥接网络

通过桥接网络,VirtualBox 使用主机系统上的设备驱动程序来过滤来自物理网络适配器的数据。因此,此驱动程序称为“网络过滤器”驱动程序。这允许 VirtualBox 拦截来自物理网络的数据并将数据注入其中,从而有效地在软件中创建新的网络接口。当来宾使用这样一个新的软件接口时,它在主机系统看来就好像来宾使用网络电缆物理连接到接口:主机可以通过该接口向来宾发送数据并从中接收数据。这意味着您可以在访客和网络的其余部分之间设置路由或桥接。

端口转发

由于虚拟机连接到 VirtualBox 内部的专用网络并且对主机不可见,因此主机或同一网络上的其他计算机无法访问来宾上的网络服务。但是,就像物理路由器一样,VirtualBox 可以通过端口转发将选定的服务提供给来宾之外的世界。这意味着 VirtualBox 侦听主机上的某些端口,并将所有到达那里的数据包重新发送给来宾,在相同或不同的端口上。

因此,在 NAT 端口转发的情况下,您应该使用以下命令:

VBoxManage modifyvm "VM name" --natpf1 "guesthttp,tcp,,80,,80"
Run Code Online (Sandbox Code Playgroud)


Pat*_*ryk 1

好吧,经过几个小时的互联网挖掘,我已经解决了这个问题。

问题出在我的 IM 通讯器spik上,它正在侦听端口 80。将其关闭并重新启动计算机后,一切正常:)

我读到有人可能在使用 Skype 时遇到同样的问题。