Назад | Перейти на главную страницу

SSH часто дает сбой при обращении к виртуальной машине с удаленного компьютера

У меня есть хост Windows 8.1, на котором я установил сервер ubuntu 15.05 на виртуальной машине. Я устанавливаю SSH-сервер в гостевой системе (ubuntu), а затем создаю правило переадресации с хост-порта 2222 на гостевой порт 22.

Если я попытаюсь использовать ssh с хоста, используя ssh -p 2222 username@localhost Я без проблем могу подключиться к vm.

Если я попытаюсь подключиться с удаленного компьютера (OS X) в той же локальной сети с ssh -p 2222 username@192.168.X.X в большинстве случаев я получаю ошибку тайм-аута. Когда мне действительно удается установить соединение, через некоторое время оно зависает, пока я не получаю сообщение об ошибке Ошибка записи: сломана труба.

Я отключил брандмауэр своего антивируса (Bitdefender) и создал правила в брандмауэре Windows, чтобы разрешить трафик с портов 22 и 2222. Проблема сохраняется даже после отключения обоих брандмауэров (на самом деле Bitdefender всегда отключен).

Я также установил UseDNS no в гостевой sshd_config файл. В гостевой системе (ubuntu) не установлен брандмауэр.

Я вижу, что проблема возникает как с vmware workstation 11, так и с VirtuaBox.

Проблема, похоже, в том, что сеть виртуальных машин недоступна извне машины с Windows 8.1. Вы можете видеть, что это работает, когда вы ssh на localhost: 2222, и это может быть вызвано конфигурацией сети (вероятно, настроено как NAT, по умолчанию)

При использовании VirtualBox вы должны настроить сеть виртуальной машины для подключения к мосту, и это должно помочь. Вы можете получить дополнительную информацию из https://superuser.com/questions/810097/vmware-player-bridged-networking-no-longer-works-host-win8-1-guest-mint-17-l

У меня была аналогичная проблема на хосте Windows 7 с WMware Workstation 12.5.9. Единственное решение, которое мне действительно помогло: https://communities.vmware.com/thread/590825

Установка альтернативных флагов QoS, похоже, помогает обойти проблему, например ssh -o IPQoS=throughput ...