Atilla Filiz Asked: 2009-08-22 03:46:26 +0800 CST2009-08-22 03:46:26 +0800 CST 2009-08-22 03:46:26 +0800 CST 端口转发到虚拟机 772 我在 Ubuntu 8.04 服务器、Virtualbox 机器、Ubuntu 9.04 机器上运行 http(zope) 服务器。访客系统通过 NAT 访问网络。如何将主机的 80 端口转发到来宾系统的 http 端口? ubuntu virtualbox port-forwarding 2 个回答 Voted Best Answer mfriedman 2009-08-22T04:40:05+08:002009-08-22T04:40:05+08:00 您必须在 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(将 VM_NAME 替换为您的虚拟机的名称)。 有关详细信息,请参阅VirtualBox 用户手册中的“使用 NAT 配置端口转发” (第 6.4.1 节,第 84 页) 如果您需要从外部访问托管在您的虚拟机上的 Web 服务器,那么您还需要创建一个端口转发规则(例如通过iptables或在您的路由器中配置它)。 quaie 2009-08-22T03:54:42+08:002009-08-22T03:54:42+08:00 找出来宾系统的 IP 地址(虽然分配了 dhcp,但重启后它更有可能具有相同的地址;如果没有,请切换到静态 IP) iptables -t nat -A PREROUTING -s 0/0 -d IP_HOST -p tcp --dport 80 -j DNAT --to IP_GUEST:80
您必须在 VirtualBox 中启用端口转发。你可以通过使用
VBoxManage
命令来做到这一点。例如:在这种情况下,这将在您的主机(物理机)上打开端口 8888/tcp,并将其转发到您的虚拟机的端口 80/tcp(将 VM_NAME 替换为您的虚拟机的名称)。
有关详细信息,请参阅VirtualBox 用户手册中的“使用 NAT 配置端口转发” (第 6.4.1 节,第 84 页)
如果您需要从外部访问托管在您的虚拟机上的 Web 服务器,那么您还需要创建一个端口转发规则(例如通过
iptables
或在您的路由器中配置它)。找出来宾系统的 IP 地址(虽然分配了 dhcp,但重启后它更有可能具有相同的地址;如果没有,请切换到静态 IP)