经过大量阅读和论坛后,我仍然遇到问题,需要一些建议。我在 Ubuntu 上使用 Virtualbox,并作为客户机安装了 Centos 服务器。我的问题是,我无法从主机操作系统访问客户操作系统上的 Web 服务器。
详细信息如下:主机操作系统是 Ubuntu 12.04 LTS(内核 3.2.0-24-generic)64 位。
我使用 Virtualbox 4.1.12。
我从无线路由器获取 IP 地址:
eth0 Link encap:Ethernet HWaddr 18:03:73:42:3d:ac
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:47 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3784 errors:0 dropped:0 overruns:0 frame:0
TX packets:3784 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:378673 (378.6 KB) TX bytes:378673 (378.6 KB)
wlan0 Link encap:Ethernet HWaddr 64:27:37:69:c5:d2
inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::6627:37ff:fe69:c5d2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:124013 errors:0 dropped:0 overruns:0 frame:0
TX packets:82469 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:164307087 (164.3 MB) TX bytes:9744555 (9.7 MB)
因此,我将 CentOS 安装为客户操作系统,并希望访问其 http 服务器。在 Virtualbox 的网络设置中,我有以下内容:连接到桥接适配器
名称:wlan0
我允许虚拟机采用混杂模式。
并且“电缆已连接”已勾选。
在 CentOS 机器上,eth0 接口获取了 192.168.1.20 IP 地址和 255.255.255.0 掩码。到目前为止一切正常,两个系统可以互相 ping 通。我启动了 Web 服务器,它正在监听端口 80 - 使用 netstat 检查。(但是没有更改 Web 服务器的默认配置文件。)
当我想连接到 CentOS 机器上的 Web 服务器时,我无法连接。Firefox 说“无法连接”,Chrome 也不高兴:Chrome 无法连接到 192.168.1.20。(我这里没有使用任何代理。)
我尝试通过 telnet 连接到客户系统上的 80 端口——但没有成功:
:~$ telnet 192.168.1.20 80
Trying 192.168.1.20...
telnet: Unable to connect to remote host: No route to host
不确定它是否重要,但客户操作系统上的路由表在这里:
[root@centos ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
(很有趣,刚刚发现我可以从 Ubuntu ssh 到 CentOS。)
我在 Virtualbox 中尝试了不同的设置,但上面的设置与不同论坛上人们的建议最接近。尝试了带端口转发的 NAT、仅主机适配器,但未能修复。
有人能帮我解释一下吗?谢谢
答案1
解决方案是在客户操作系统的防火墙上打开端口,如下所述: http://wiki.centos.org/HowTos/Network/IPTables
Virtualbox 中的网络设置正常 - 桥接网络是正确的设置。
答案2
按照以下方法禁用客户操作系统内部防火墙应该可以让你访问。输入
service iptables stop
chkconfig iptables off
在客户操作系统中的命令行中。