2015-01-08 33 views
6

分配在颠沛流离了IP地址,客户盒得到分配了错误的IP地址,并引起以下错误:VirtualBox的客人没有得到通过Vagrantfile

... 
... 
SSH address: 127.0.0.1:2222 
serverbox: SSH username: vagrant 
serverbox: SSH auth method: private key 
serverbox: Warning: Connection timeout. Retrying... 
serverbox: Warning: Connection timeout. Retrying... 
serverbox: Warning: Connection timeout. Retrying... 
... 

我在家里,在办公室,所以必须做的工作总是重新配置Vagrantfile中的IP地址分配,这取决于我在哪里,因为子网是不同的。 (192.168.x.x与10.80.x.x)

直到昨天,这一直奏效。我不知道是什么原因导致这些问题,因为我没有做任何调整。

Vagrantfile:

Vagrant.configure("2") do |config|                              
    config.vm.provider "virtualbox" do |vb|                             
    vb.customize ["modifyvm", :id, "--memory", "512"]                          
    end                                      
    config.vm.network "public_network", ip: '10.80.2.144' 
    #config.vm.network "public_netowrk", ip: '192.168.1.144'                       
end 

... 

的Vagrantfile应该把我的guestbox上10.80.x.x地址,但netstat显示的是,我的盒子仍然在192.168.x.x地址往上走。这意味着我无法与guestbox一起工作,因为它将进入越界子网。

我已经完成了停止和再次以及完全重新启动我的CPU和检查,以确保虚拟化在BIOS中。

我看了here并尝试this方法无济于事。

我也尝试过vb.gui = true,但是我的机器正在无头运行。 Virtualbox的预览日志屏幕可能会提供一些有用的信息,但它非常小,我无法做出任何事情。如果有人对如何做出更大的建议可能会有很大的帮助。

UPDATE:

所以我的解决办法是不希望的解决方案,但我的工作日已经鱼雷需要前进,所以我只是毁了我的箱子和重新up'ed。

显然,我的钥匙变得不安全。不知道这是怎么发生的,但新箱子取代了我的钥匙。

+1

我猜如果你冷静下来,至少应该留下一个回应,说明为什么不明确。 – earth2jason

+0

这种情况可能是因为VirtualBox无法重定向端口,尽管称为 '** ==>默认值:转发端口... 默认:22 => 2222(适配器1)**' 你可能看看我的问题在这里的完整描述[链接](http://stackoverflow.com/questions/36529651/virtualbox-nat-failed-to -redirect-TCP-127-0-0-12222-10-0-2-1522)。 我仍然不知道如何解决重定向失败( 请在我的帖子中放下一个笔记,如果你如何成功! – WebComer

回答

6

我对你的问题的建议。

在更改IP后,在该实例上运行vagrant reloadvagrant provision

如果没有得到您的问题固定,尝试第二个:

变化public_network到private_network

config.vm.network "private_network", ip: '10.80.2.144' 
#config.vm.network "private_network", ip: '192.168.1.144' 
+0

试图通过SSH进行连接后,流浪超时。 。然后,我尝试更改为private_network,但收到以下内容:指定的主机网络与非主机网络发生冲突! 这会导致您的指定IP无法访问.... – earth2jason

+0

如果您通过配置命令出现超时错误, – BMW

+0

在另一个箱子上,我摧毁了它,并且在它上面运行了一段时间,但它的工作原理却是一样的。“远程连接断开连接。重试..”然后它继续找到钥匙是不安全的,取而代之的是盒子的创建,我能够进入并运行,我不想这样做到我的另一个盒子,但看起来像这是唯一的选择。 – earth2jason

0

NOTE
This answer is not the problem solution. It might be helpful while debugging problems when you can't ssh in into your vagrant box

我使用的问题:1.8.1

  • 流浪
  • VirtualBox 5.0.12r104815
  • Vagrantfile选项config.vm.network "private_network", ip: "10.50.50.3"

以下步骤帮我解决我的问题:

  • 启用在Vagrantfile的GUI加入vb.gui = true
  • 启动虚拟机与vagrant up
  • 使用VirtualBox终端登录(用户:vagrant,密码:vagrant)
  • 检查接口IP在devbox

    $ sudo ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' 
    10.0.2.15 
    
  • 检查本地VirtualBox的界面(与ifconfig):

    vboxnet8 Link encap:Ethernet HWaddr 0a:00:27:00:00:08 
          inet addr:10.50.50.1 Bcast:10.50.50.255 Mask:255.255.255.0 
          inet6 addr: fe80::800:27ff:fe00:8/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:258 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B) TX bytes:39147 (39.1 KB) 
    

我看到虚拟机的IP不适合主机vboxnet8接口ip范围。

我试图用vagrant reload重新加载虚拟机,但没有成功。唯一帮助我的是将虚拟机重置为vagrant destroy -f,vagrant up(请参阅下面的其他评论)。


这是怎么发生的?在第一次启动虚拟机之后,我的一个配置脚本更改了后来无效的/etc/ssh/sshd_config。然后脚本重新启动了导致连接问题的ssh。

Vagrant启动了虚拟机,但我无法ssh进入它。

然后我一定改变了private_network ip造成了这个奇怪的情况。

最后使/etc/ssh/sshd_config再次有效解决了我的问题。

1

只需添加在Vagrantfile这两条线和流浪汉重装

config.vm.network "forwarded_port", guest: 80, host: 8080, 
    auto_correct: true 

config.vm.network "private_network", ip: "192.168.100.1", 
    auto_config: false 

希望问题将得到解决。

相关问题