从Guest到Host的Virtualbox"port forward"

Car*_*men 158 virtualbox portforwarding

这是我的设置:

- Host: Windows XP
- Guest: Ubuntu 10.04
- Networking: NAT
Run Code Online (Sandbox Code Playgroud)

我在Guest上设置了一个Apache Web服务器,但我希望能够在Windows机器上执行此操作:

- go to the browser, type http://localhost:8000
Run Code Online (Sandbox Code Playgroud)

此外,我试图改变我的网络桥接,我得到了一个新的IP.但是,当我尝试做http://:8000时,它说它无法连接.

Rob*_*ujo 219

网络通信主机 - >访客

连接到访客并找到IP地址:

ifconfig 
Run Code Online (Sandbox Code Playgroud)

结果示例(IP地址为10.0.2.15):

eth0      Link encap:Ethernet  HWaddr 08:00:27:AE:36:99
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
Run Code Online (Sandbox Code Playgroud)

转到Vbox实例窗口 - >菜单 - >网络适配器:

  • 适配器应该是NAT
  • 点击"端口转发"
  • 插入新记录(+图标)
    • 对于主机ip输入127.0.0.1,对于来自prev的来宾ip地址.步骤(在我的情况下是10.0.2.15)
    • 在您的情况下端口是8000 - 将它放在两者上,但如果您愿意,您可以更改主机端口

转到主机系统并在浏览器中尝试:

http://127.0.0.1:8000
Run Code Online (Sandbox Code Playgroud)

或您的网络IP地址(通过运行:ipconfig在主机上找到).

网络通信访客 - >主机

在这种情况下,不需要端口转发,通信通过LAN返回主机.

在主机上 - 找出你的网络IP地址:

ipconfig
Run Code Online (Sandbox Code Playgroud)

结果的例子:

IP Address. . . . . . . . . . . . : 192.168.5.1
Run Code Online (Sandbox Code Playgroud)

在来宾计算机上,您可以直接与主机通信,例如使用ping检查:

# ping 192.168.5.1
PING 192.168.5.1 (192.168.5.1) 56(84) bytes of data.
64 bytes from 192.168.5.1: icmp_seq=1 ttl=128 time=2.30 ms
...
Run Code Online (Sandbox Code Playgroud)

  • 两个端口都不是8000.主机端口将是8000或你想要的,但访客端口应该是80 (11认同)
  • 在这种情况下,应该可以通过访问VM并获取ITS IP地址(如下所示10.0.2.15)来从VM到主机.要从VM访问主机,IP是10.0.2.2(按照惯例). (5认同)
  • 如果为guest虚拟机使用NAT ...如果主机上运行的服务仅绑定到127.0.0.1,则guest虚拟机无法使用主机的公共ip连接到该服务(示例服务:privoxy).相反,您需要使用Mark提到的10.0.2.2,或者任何'route -n'(在guest虚拟机上运行)显示为默认网关. (5认同)
  • 对于CentOS,我们可能必须[禁用防火墙](http://serverfault.com/questions/407416/port-forwarding-doesnt-work-in-virtualbox-vagrant)或[编辑iptable中的特定规则]( http://www.integist.info/2014/08/19/centos-and-virtualbox-nat-port-forwarding/) (4认同)
  • 我发现没有必要指定主机或来宾IP地址,您可以将这些框留空.虽然如果您只想从localhost连接,那么将127.0.0.1作为主机可能是个好主意. (2认同)

Chr*_*ris 14

那是不可能的.localhost始终默认为本地操作系统上的环回设备.
当您的虚拟机运行自己的操作系统时,它有自己的环回设备,您无法从外部访问.

如果要在浏览器中访问它,请使用本地IP连接到它:

http://192.168.180.1:8000
Run Code Online (Sandbox Code Playgroud)

这只是一个示例,当然,您可以通过ifconfig在客户机操作系统中的shell上发出命令来找出实际的IP .