提问者:小点点

流浪者:无法从主机ping客户机


我有安装了流浪者的MacOS。在客户机上,我有Ubuntu 12。所以,我想做的是从主机ping客户机。

连接到NAT的来宾计算机(根据VirtualBox设置)

我在来宾机器上只找到一个接口(除了lo):

eth0      Link encap:Ethernet  HWaddr 08:00:27:88:0c:a6  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe88:ca6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:581 errors:0 dropped:0 overruns:0 frame:0
          TX packets:410 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:61376 (61.3 KB)  TX bytes:51599 (51.5 KB)

问题是10.0.2中没有ip地址。*主机上的网络。主机有几个vboxnet接口,但都没有任何IP地址:

vboxnet0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          ether 0a:00:27:00:00:00 
vboxnet1: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          ether 0a:00:27:00:00:01 
vboxnet2: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          ether 0a:00:27:00:00:02 
vboxnet3: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          ether 0a:00:27:00:00:03 

你知道为什么VirtualBox没有将IP地址分配给主机吗?我能做些什么来ping阵风机器?

这是我的游民文件(我删除了一些我不使用的注释行):

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.

# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "hashicorp/precise64"

# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
# config.vm.box_url = "http://domain.com/path/to/above.box"

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 8086
config.vm.network "forwarded_port", guest: 27017, host: 27017

config.vm.synced_folder "/Users/KoulSlou/Documents/Cloudware12.10", "/vagrant", owner:     "www-data", group: "www-data"
config.vm.synced_folder "/Users/KoulSlou/Documents/Cloudware/public","/cloudware", owner: "www-data", group: "www-data"

# Create a private network, which allows host-only access to the machine
# using a specific IP.
#config.vm.network "private_network", ip: "192.168.1.2"

# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"

# If true, then any SSH connections made will enable agent forwarding.
# Default value: false
# config.ssh.forward_agent = true
...

end

共3个答案

匿名用户

默认情况下(即不接触任何网络配置时),Vagant在VirtualBox中配置VM以将其第一个接口(eth0)附加到“NAT”(不要将其与VirtualBox中的不同选项“NAT网络”混淆)。

当您的VM接口连接到NAT时,来宾将获得10.0.2.15IP。在主机端,您只会看到没有IP的vboxnet#接口。您可以将此接口视为该来宾的专用路由器。

连接到NAT的虚拟机不能从外部世界路由。这是设计好的,也是vboxnet#接口没有IP的原因之一。虚拟机能够访问“外部世界”,如互联网和主机,但如果没有端口转发,就不能从外部世界访问。

如果默认行为不是您想要的,Vagrat提供了网络配置的高级抽象:

  1. 专用网络-这将创建不应与主机的子网(或主机可能有路由到的任何其他子网)冲突的新子网。在VirtualBox中,这将通过将附加接口附加到“仅主机”来配置。
  2. 公共网络-您的虚拟机将从与主机相同的子网获得IP。基本上,这就像在与主机相同的网络上创建新机器。在VirtualBox中,这将通过将附加接口附加到“桥接适配器”来配置。

通过提供商特定的配置配置网络,可以进行更高级的网络配置。

每个配置都有自己的优点和缺点,这实际上取决于您计划实现的目标。有关更多信息,请查看VirtualBox关于网络的文档。

匿名用户

我完全处于同样的情况下,这里有一个对我有效的解决方案。

如果您的vm已启动,请使用以下方式停止:

vagrant halt

然后转到您的流浪者框,并打开VagrantFile。取消注释(或手动添加)其中的以下行

 config.vm.network "public_network"

这将确保下次你“流浪”你的虚拟机时,它将确保你的虚拟机将从与你的主机相同的子网IP(有关更多详细信息,请参阅@m1keil的答案)。

然后重新制作您的vm:

vagrant up

在我的例子中,它问我应该使用哪个接口进行网桥,这里是我所拥有的摘录:

==> default: Available bridged network interfaces:
1) en0: Ethernet
2) en1: Wi-Fi (AirPort)
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
    default: Which interface should the network bridge to? 1
==> default: Preparing network interfaces based on configuration...

请注意,它告诉您可用的接口是什么。键入与您想要的接口对应的数字,在我的例子中,我键入了1(对于en0:以太网)。

最后,连接到你的流浪箱。在我的情况下:

vagrant ssh

然后从主机,如果您键入ifconfig,您仍然无法看到VM的IP地址,但是,如果您从VM键入ifconfig,它会为您提供一个可以从主机ping/访问的IP地址。

注意:如果您想从客人那里ping/访问您的主机,请确保您的防火墙已关闭(系统

匿名用户

我不知道为什么你在来宾上看到一个IP地址,但是你根本没有配置任何虚拟盒网络。您需要取消注释config.vm.network“私有网络”行,然后配置IP地址。

Virtualbox的默认设置是将主机放在10.0.0.2并将整个10.0.0.0/8范围公开为本地地址,因此我认为10. x.x.x范围内的任何内容都适用于客户端VM。

相关问题