我在Ubuntu 8.04服务器上运行一个http(zope)服务器,在一个Ubuntu 9.04盒子上运行一个Virtualbox机器。 访客系统通过NAT访问networking。 如何将主机的端口80转发到访客系统的http端口?
您必须在VirtualBox中启用端口转发。 您可以通过使用VBoxManage命令来执行此操作。 例如:
VBoxManage setextradata VM_NAME "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8888 VBoxManage setextradata VM_NAME "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80 VBoxManage setextradata VM_NAME "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
在这种情况下,这将在您的主机(物理机器)上打开端口8888 / tcp,并将其转发到虚拟机的端口80 / tcp(使用虚拟机的名称replaceVM_NAME)。
有关更多详细信息,请参见“ VirtualBox用户手册” (第6.4.1节,第84页)中的“ 使用NATconfiguration端口转发 ”
如果您需要外部访问虚拟机上托pipe的Web服务器,则还需要创build端口转发规则(例如,通过iptables或在您的路由器中configuration它)。
找出客户系统有哪些IP地址(虽然是分配了dhcp,但重启之后它的地址更可能;如果没有,则切换到静态IP地址)
iptables -t nat -A PREROUTING -s 0/0 -d IP_HOST -p tcp --dport 80 -j DNAT --to IP_GUEST:80