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


11

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

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

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

编辑:

我来了一个“解决方案”-我必须将来宾端口和主机端口设置为不同的端口。但是我仍然对此有疑问,即:

服务器在端口8080上启动。

Port forwarding : guest port 8080
                  host port 80

我可以通过我的机器访问服务器

但是我只能通过以下方式从网络上的其他计算机访问服务器 IP:8080

Answers:


9

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

编辑:

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

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

端口转发

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

因此,如果是NAT端口转发,则应使用以下命令:

VBoxManage modifyvm "VM name" --natpf1 "guesthttp,tcp,,80,,80"

但是我使用的是WiFi,据我所知,我必须使用USB WiFi适配器才能使桥接模式正常工作。
Patryk'2

@Patryk:我提供了更多细节;这是我们正在谈论的虚拟桥梁。
卡罗洛斯'02

这很整洁,但是我已经知道了,问题是我的端口转发已激活:image
Patryk'2

@Patryk:抱歉,我没有意识到。在这种情况下,我怀疑您有一些防火墙阻止了连接的发生。看看这个:windows.microsoft.com/en-US/windows7/...
卡罗洛斯

@Patryck-从最简单的解决方案开始,朝着期望的结果努力。您还需要确保在服务器上,a)防火墙配置正确,并且b)正确配置并运行了所需的服务(即SSH)
Joe Internet

1

好的,经过数小时的互联网探索,我已经解决了这个问题。

问题是我的IM通讯器尖刺正在监听端口80。关闭它并重新启动计算机后,一切正常,就像魅力:)

我已经读过,例如Skype可能存在相同的问题。


真高兴!
卡罗洛斯'02
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.