Vagrant/Laravel Homestead SSH - 一段时间后无法 type/freezing

Vagrant/Laravel Homestead SSH - Can't type/freezing after a certain time

这个问题线程很好地解释了我遇到的问题,尽管它与单个 cmd 客户端无关: https://github.com/bliker/cmder/issues/347#issuecomment-111849036

这是一个 Laravel Homestead 实例,我是 运行 Homestead 2.1.6,我目前拥有最新版本的 Laravel/Homestead box、Vagrant、VirtualBox (修复 Windows 10).

的单独问题

基本上,当我使用 "homestead ssh" 通过 SSH 进入 VM 时,除非我主动输入命令提示符,否则它会在大约 30 秒不活动后超时。 window 保持打开状态,但它不再接受任何输入,除了上面 link 中提到的退出序列。

这使得作曲家更新几乎不可能(除非我键入随机字符以保持连接有效)。

我尝试了多个命令行客户端(windowscmd,gitbash,cmder),我安装了不同版本的VirtualBox和Vagrant几次,我试过了使用单独的 OpenSSH 实例进行连接,我已经尝试了 ServerAliveInterval 建议,但我仍然遇到这个问题。

在我的电脑上(还有 Windows 8.1)没问题,但在我的 Windows 8.1 笔记本电脑上,现在 运行 在 Windows 10 上,我还没有能够让它正常工作。

有什么想法吗?

编辑:正如我在下面的评论中提到的,我在 ~/.ssh/ 和 cmder 的配置目录中的一个名为 config 的文件中尝试了 ServerAliveInterval 命令。这对 Windows 正确吗?我可以检查是否正在使用此配置吗?

这可能是 SSH 配置中 ServerAliveInterval 的一个普遍问题。 我没有使用 Windows,所以我不知道 ssh_config 文件在哪里(如果有的话)。如果你会找到它,请设置类似的东西: ServerAliveInterval 10

我还启用了此设置:ForwardAgent yes

我遇到了同样的问题,尽管它只发生在特定的网络上。与他们的 ISP 的 DNS 提供商有关。

我通过 using Google's public DNS servers 8.8.8.8 修复了它。

值得一试。

原来我描述的冻结是在 Windows 上使用 "homestead ssh" 命令的问题。

已在此处描述:http://stagerightlabs.com/blog/running-homestead-2-on-windows

运行 "vagrant up" 工作正常(一旦我改用 "vagrant up" 重建机器)。这个问题一直让我发疯!

如本页所示:http://www.solarpolar.co.uk/laravel-homestead-setup-on-windows-7/这可以通过使用 vagrant 来规避。

首先键入 vagrant global-status 然后虚拟机列表将显示:

$ vagrant global-status
id       name    provider   state   directory
--------------------------------------------------------------------------------------------------------
4d0a8c6  default virtualbox saved   C:/CarlosPC/vagrant_getting_started
57a7a6a  default virtualbox running C:/Users/CarlosPC/AppData/Roaming/Composer/vendor/laravel/homestead

记下 homestead 虚拟机的 id,在本例中是 57a7a6a

其次,你是否使用 vagrant ssh 命令和提到的 id 进行 ssh,如下所示:

vagrant ssh 57a7a6a

大功告成!不再冻结。

正如 Carlos 提到的,您可以使用:

vagrant ssh {vagrant_id}

或者您可以创建别名并在不知道 vagrant_id 的情况下使用单个命令。

vi ~/.bashrc

将这些行粘贴到:

alias homestead_ssh="homesteadSsh"
function homesteadSsh(){
        vagrant ssh $(vagrant global-status | grep homestead | awk '{print }')
}

保存,然后运行应用更改

. ~/.bashrc

现在您只需在终端中使用 homestead_ssh。