170

这是我的设置:

- Host: Windows XP
- Guest: Ubuntu 10.04
- Networking: NAT

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

- go to the browser, type http://localhost:8000

另外,我尝试将我的网络更改为桥接,并获得了一个新 IP。但是当我尝试做 http://:8000 时,它说它无法连接。

4

2 回答 2

232

网络通信 Host -> Guest

连接到Guest并找出IP地址:

ifconfig 

结果示例(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

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

  • 适配器应该是 NAT
  • 点击“端口转发”
  • 插入新记录(+ 图标)
    • 对于主机 ip,输入 127.0.0.1,对于您从上一个获得的访客 ip 地址。步骤(在我的情况下是 10.0.2.15)
    • 在您的情况下,端口是 8000 - 将其放在两者上,但如果您愿意,可以更改主机端口

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

http://127.0.0.1:8000

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

网络通信Guest -> Host

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

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

ipconfig

结果示例:

IP Address. . . . . . . . . . . . : 192.168.5.1

在客户机上,您可以直接与主机通信,例如使用 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
...

防火墙问题?

@Stranger 建议在某些情况下,有必要像这样在防火墙中打开使用的端口(8000 或任何使用的端口)(例如 ufw 防火墙,我没有测试过):

sudo ufw allow 8000 
于 2012-04-09T17:17:23.323 回答
14

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

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

http://192.168.180.1:8000

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

于 2012-03-02T17:37:33.743 回答