我的Mac OS已经安装了vagrant。在客机上我有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
答案 0 :(得分:26)
默认情况下(即,当不接触任何网络配置时),Vagrant在VirtualBox中配置VM以将其第一个接口(eth0)附加到“ NAT ”(不要将其与“”混淆NAT网络“这是VirtualBox中的不同选项。”
当您的VM接口连接到NAT时,guest虚拟机将获得10.0.2.15 IP。在主机端,您只能看到没有IP的vboxnet #interface。您可以将此接口视为该guest虚拟机的专用路由器。
连接到NAT的虚拟机无法从外部路由进行路由。这是设计上的,这也是vboxnet #interface没有IP的原因之一。虚拟机能够访问互联网和主机等“外部世界”,但无需端口转发就无法从外部访问。
如果默认行为不是您要寻找的,Vagrant提供网络配置的高级抽象:
通过provider specific configuration配置网络,可以实现更高级的网络配置。
每个配置都有它自己的优点和缺点,这实际上取决于你打算实现的目标。 有关其他信息,请查看VirtualBox's docs about networking。
答案 1 :(得分:-3)
我不确定为什么你在访客上看到了一个IP地址,但是你根本没有配置任何虚拟盒网络。您需要取消注释config.vm.network "private network"
行,然后配置IP地址。
virtualbox的默认设置是将主机置于10.0.0.2并将整个10.0.0.0/8范围作为本地地址公开,因此我认为10.xxx范围内的任何内容都适用于客户端虚拟机。
答案 2 :(得分:-3)
我的情况完全相同,这是一个对我有用的解决方案。
如果您的虚拟机已启动,请使用以下命令停止:
vagrant halt
然后去你的流浪盒,打开VagrantFile。 取消注释(或手动添加)其中的以下行
config.vm.network "public_network"
这将确保您下次&#34;流浪&#34;你的虚拟机,它将确保你的虚拟机从主机所在的子网获得IP(有关详细信息,请参阅@ m1keil的答案)。
然后再次启动你的虚拟机:
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,你仍然无法看到你的虚拟机的IP地址,但是,如果你从你的虚拟机输入ifconfig,它会给你一个你的IP地址可以从您的主机ping /访问。
注意:如果您要从访客ping /访问主机,请确保您的防火墙已关闭(系统&gt;偏好设置&gt;安全性)。防火墙不会影响从主机到虚拟机的ping。