正如标题所述,我在使用 Vagrant 启动 win8.1 VM 时遇到了一些问题,它SSH
从未连接过。控制台显示以下错误:
默认:警告:连接超时。正在重试...
完整日志:
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: cyg_server
default: SSH auth method: password
default: Warning: Connection timeout. Retrying...
default: Warning: Connection timeout. Retrying...
default: Warning: Connection timeout. Retrying...
default: Warning: Connection timeout. Retrying...
default: Warning: Connection timeout. Retrying...
default: Warning: Connection timeout. Retrying...
我安装了 cygwin64 和 openssh,将用户名配置为 ,cyg_server
密码配置为vagrant
。成功检查了它是否在 VM 中工作,并按照某些教程中所述ssh localhost
显示目录树。ls -lh /cygdrive/c
我的Vagrantfile
配置如上:
config.ssh.username = "cyg_server"
config.ssh.password = "vagrant"
但尚未成功。
当然,我在 Google 上搜索过它,但没有找到任何有用的信息,也没有与我做同样事情的教程。
有人知道如何解决这个问题吗?
我正在 上运行Mac Yosemite
,使用vagrant1.7.2
和。VirtualBox4.3.28
Windows8.1 VM box
提前致谢。
答案1
我自己解决了。Vagrant 的文件说 Windows 机器可以使用 WinRM 通过vagrant rdp
命令与 Vagrant 通信,所以我所要做的就是将Vagrantfile
配置更改为这样:
config.vm.guest = :windows
config.vm.communicator = "winrm"
config.vm.network :forwarded_port, guest: 3389, host: 13389
config.vm.network :forwarded_port, guest: 5985, host: 15985, id: "winrm", auto_correct: true
然后在操作系统上启用并配置 WinRM,在控制台上插入以下命令(以管理员身份执行):
winrm quickconfig -q
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="512"}
winrm set winrm/config @{MaxTimeoutms="1800000"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
winrm set winrm/config/service/auth @{Basic="true"}
sc config WinRM start= auto
上述 WinRM 命令均在文档页面上描述:http://docs.vagrantup.com/v2/boxes/base.html
此后我vagrant up
再次执行此操作,一切正常。
供参考:有些人在此之后遇到了麻烦(在一些论坛上看到过),因此在这种情况下也要记得检查 Windows 防火墙。