Python简单的http服务器和虚拟机 – 无法连接。 叶变了?

我有时使用python -m SimpleHTTPServer一个class轮服务从我的vms文件下载到我的主机。 今天我试图在virtualbox虚拟机,这是在NATnetworking设置下使用它 – 我在控制台中键入这个python一class,然后我检查了我的虚拟机有在knetworkmanager(我用我的客人用kde debian),然后在主机上我试图连接到该端口8000的IP,但我无法连接…

我的客人经常暂停,保存,等等…也许IP应该改变,但出了问题,因为客人被保存,然后恢复? 任何想法如何处理?

我使用的是debian linux guest和debian linux host。

要获得端口redirect,请尝试以下操作

 VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/HostPort" 8080 VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/GuestPort" 8000 VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/Protocol" TCP 

此configuration适用于虚拟英特尔网卡。 对于PCnet尝试pcnet而不是e1000 。 我假设虚拟机中的端口是8000.请记住将NAME_OF_VM更改为虚拟机的名称!

之后,您可以通过http://localhost:8080/访问主机系统上的Web服务器,该Web服务器将被redirect到端口为8000的虚拟机。

您可以使用VBoxManage getextradata "NAME_OF_VM" enumerate检查configuration。 要删除configuration,请input不带值的命令。

 VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/HostPort" VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/GuestPort" VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/Protocol" 

如果您的虚拟局域网是NAT,他们在专用networking(RFC1918 IP范围)中具有虚拟IP,所以它们不可路由并可从外部访问。

为了使NAT-ed机器可以从外部访问,必须在虚拟网关上实现PORT REDIRECT,将给定端口上的请求映射到指定端口上的虚拟IP或其他端口。

这不是一个虚拟化绑定的问题,这是NAT的工作原理。 因此,您可以在网上find有关该主题的任何指南。