这是我的设置:
- Host: Windows XP - Guest: Ubuntu 10.04 - Networking: NAT
我正在给“客户”设置一个 Apache HTTP Server,但我希望能够在 Windows 机器上做到这一点:
- go to the browser, type http://localhost:8000
还有,我试着把我的网络改成桥接,然后我得到了一个新的 IP 地址。但是,当我尝试做 http://: 8000,它说,它无法连接。
这是不可能的。在本地操作系统上,localhost总是默认为 环回设备环回设备环回设备。 当您的虚拟机运行自己的操作系统时,它有自己的环回设备,您无法从外部访问。
localhost
如果你想访问它,例如在浏览器中,使用本地 IP 连接到它:
http://192.168.180.1:8000
当然,这只是一个示例,您可以通过在客户操作系统的 shell 上发出 ifconfig命令来查找实际的 IP。
ifconfig
连接到客人并找到 IP 地址:
结果示例(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 实例窗口-> 菜单-> 网络适配器:
进入主机系统,在浏览器中尝试:
http://127.0.0.1:8000
或者您的网络 ip 地址(通过运行 ipconfig 在主机上找到)。
在这种情况下不需要端口转发,通信通过局域网回到主机。
在主机上——找到你的新 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