鉴于以下Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos_64"
config.vm.host_name = 'web'
config.vm.network "private_network", ip: "192.168.50.4"
end
为什么我不能从主持人那里抨击客人?
$ ssh vagrant@web -p 22
ssh: connect to host web port 22: Connection timed out
但使用vagrant ssh
有效:
$ vagrant ssh
Last login: Tue Mar 4 21:29:24 2014 from 10.0.2.2
[vagrant@web ~]$
正如预期的那样,我可以ping来宾的IP地址。但我不能从主机ping。
我很困惑为什么会发生这种情况,因为我的设置与configuration没有什么不同。
答案 0 :(得分:3)
首先,vagrant ssh
使用转发的端口而不是专用网络地址。您可以使用vagrant ssh-config
进行配置。
名称“web”是否真正解析为指定的IP?你能使用IP而不是名称ping /连接吗?如果没有,请确认您没有其他具有相同地址的VM或外部网络。还有一些VPN产品搞砸了路由。
答案 1 :(得分:1)
我设法用
更改了ssh地址config.ssh.host = '192.168.0.13'
config.ssh.port = '22'`
如https://superuser.com/questions/920536/how-to-change-the-ssh-host-in-vagrantfile/921728#921728
中所述答案 2 :(得分:0)
仅仅因为来宾主机具有已定义的主机名并不意味着主机将解析其IP。
你应该能够通过以下方式进入机器:
ssh vagrant@192.168.50.4 <==== vagrant is the default password,
但你可以通过这样做来避免输入:
ssh-copy-id vagrant@192.168.50.4
答案 3 :(得分:0)
这是我的配置,对我有用
config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "192.168.88.88"
config.ssh.host = "192.168.88.88"