如標題所述,我在使用 Vagrant 啟動 win8.1 虛擬機器時遇到一些問題,永遠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
。已成功檢查它是否在虛擬機器中運作並使用某些教程中所述的方式ssh localhost
顯示目錄樹。ls -lh /cygdrive/c
我的Vagrantfile
配置如上:
config.ssh.username = "cyg_server"
config.ssh.password = "vagrant"
但還沒有成功。
當然,我在谷歌上搜尋了它,沒有任何好的信息,也沒有教程做與我所做的相同的事情。
有人知道如何解決這個問題嗎?
我正在Mac Yosemite
使用vagrant1.7.2
、、運行。VirtualBox4.3.28
Windows8.1 VM box
提前致謝。
答案1
我自己解決了。流浪者的文件說 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 防火牆。