我尝试过以下帖子,也浏览过VirtualBox 手册:
我有一个全新的 Ubuntu 14.04.2 LTS 安装。我安装了软件中心提供的 VirtualBox 4.3 版本。我创建了两个映像,一个是 Windows 7 映像,它是从现代网站,以及我从从 Ubuntu 网站下载 ISO 磁盘映像。
在主机上,我在端口 8080 上运行 Tomcat 服务器。
我遇到的问题是,在我的客户机系统主机文件中使用 10.0.2.2(如其他线程中所示)不起作用。我尝试了桥接和默认 NAT 网络配置。我还禁用了 Windows 客户机中的防火墙以防万一。
我的 Ubuntu 访客主机文件:
127.0.0.1 localhost
127.0.1.1 myguestimage
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.2.2 myhostimage.site.org
我的 Windows 来宾主机文件:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
(SNIP!)
10.0.2.2 myhostimage.site.org
我的每个虚拟主机盒上的网络选项卡如下所示:
当我浏览到http://myhostimage.site.org:8080从任一主机映像上的浏览器,连接超时。我希望看到 Tomcat 服务器。
接下来我尝试切换到桥接网络,但没有成功。然后我尝试将客户主机文件中的 10.0.2.2 更改为我的主机的 IP 地址 (192.168.1.41),这是我通过运行 ifconfig 获得的。这也没有用。
在 bridged/192.168.1.41 配置中,我在客户机上针对主机 tomcat 服务器的地址运行了 nmap,并得到以下结果。
me@myguestimage:~$ nmap myhostimage.site.org -p 8080
Starting Nmap 6.40 ( http://nmap.org ) at 2015-07-29 16:23 CDT
Nmap scan report for myhostimage.site.org (192.168.1.41)
Host is up (0.00012s latency).
PORT STATE SERVICE
8080/tcp closed http-proxy
下一步我应该尝试什么?
答案1
nmap 结果最大程度地暗示了问题不在于 VirtualBox 的网络配置。问题在于 Tomcat。
我打开了 Tomcat 主目录中的 conf/server.xml 文件。然后我修改了以下行
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="myhostimage.site.org" URIEncoding="UTF-8"/>
到
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="0.0.0.0" URIEncoding="UTF-8"/>
突然,我可以从客户 VirtualBox 访问主机 Tomcat。我甚至将 VirtualBox 设置改回 NAT/10.0.2.2,它仍然可以工作。
我更喜欢 NAT/10.0.2.2 解决方案,因为我使用笔记本电脑从一个网络移动到另一个网络,它从 DHCP 获取新的 IP 地址。如果我必须将 IP 地址放入所有主机文件中,那就太麻烦了。