У меня есть хост 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 ...