Vagrant公共网络可以ping通,但无法从Apache服务器获取响应

7
我使用以下Vagrantfile设置配置了virtualbox的vagrant。我可以从主机机器(HM)连接到在虚拟机上运行的Web服务器。
我还可以从网络机器ping服务器,但是当我尝试从网络访问Web服务器时,虚拟机(VM)收到请求并响应(apache),但网络机器(NM)没有收到响应。
我该如何配置vagrant或virtualbox以从NM访问?我试图在VM接口文件上将eth1更改为eth0,但它没有起作用,vagrant无法启动该机器。
提前致谢。
Vagrantfile:
config.vm.define "web" do |web|
  web.vm.box = "raring"
  web.vm.network "public_network", ip: "192.168.0.53", bridge: 'eth0'
  web.vm.provider "virtualbox" do |v|
      v.customize ["modifyvm", :id, "--memory", 1024]
  end
end

主机接口

eth0      Link encap:Ethernet  HWaddr 54:04:a6:68:7d:85  
      inet addr:192.168.0.102  Bcast:255.255.255.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:576  Metric:1
      RX packets:142100 errors:0 dropped:0 overruns:0 frame:0
      TX packets:110704 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:61653460 (61.6 MB)  TX bytes:14976111 (14.9 MB)
      Interrupt:55 Base address:0xa000 

虚拟机接口

eth0      Link encap:Ethernet  HWaddr 08:00:27:49:4c:f1  
      inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fe49:4cf1/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:386 errors:0 dropped:0 overruns:0 frame:0
      TX packets:276 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:41117 (41.1 KB)  TX bytes:36296 (36.2 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:c3:16:90  
      inet addr:192.168.0.53  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fec3:1690/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:946 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1017 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:116117 (116.1 KB)  TX bytes:90515 (90.5 KB)

虚拟机 /etc/network/interfaces 文件:

# The primary network interface
auto eth0
iface eth0 inet dhcp
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not     modify.
auto eth1
iface eth1 inet static
  address 192.168.0.53
  netmask 255.255.255.0
#VAGRANT-END

虚拟机上的Apache响应:

192.168.0.100 - - [16/Nov/2013:10:39:10 +0000] "GET / HTTP/1.1" "curl/7.32.0" 200 7466 6005

1
你能发布curl的详细输出吗? (curl -v ...) - Thomas Orozco
2
你成功让它工作了吗?我也遇到了同样的问题。 - localhost
在以Ubuntu 14.04为基础的虚拟机上,Windows也存在同样的问题。 - Carl
1个回答

0
这个问题不是由于vagrant或vagrant设置引起的,而是由于虚拟机(VM)中错误的apache配置引起的。
修改虚拟机中的apache站点配置:
vim /etc/apache2/sites-enabled/yours_site_config.conf
将服务器名称更改为:ServerName 192.168.0.53
重新启动apache后,在浏览器中检查结果。

E.g.:

<VirtualHost *:80> ServerAdmin servers@localhost ServerName 192.168.0.53 DocumentRoot /var/www </VirtualHost>

192.168.0.53 - 这是您的虚拟机的 inet 地址。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接