У меня есть экземпляр Ubuntu VM, работающий на моем ноутбуке. И хост, и виртуальная машина работают на одной и той же ОС - Ubuntu 12.04. Я пробовал ssh с хоста, например
ssh username@<VM-IP>
Он пытается некоторое время, а затем говорит:
ssh: connect to host <ip-address> port 22: Connection timed out
Затем я попытался пинговать
Я получаю 100% packet loss
. Что, как я полагаю, связано с тем, что нет установленного маршрута. Как мне это исправить?
решение1
Простой способ: перейдите в «сетевые настройки», «переадресация портов» и добавьте правило для сопоставления порта VM 22, например, порту 9022 на хосте. Затем запустите ssh localhost -p 9022
.
Лучший путь: установите пакет Ubuntu lxc
, затем на VirtualBox перейдите в VM Network settings
, установите Attached to
в Bridged Adapter
, установите Name
в lxcbr0
, перезагрузите виртуальную машину, и она получит новый IP, доступный с хоста. Хотя, если вы это сделаете, никогда не запускайте контейнер LXC и виртуальную машину VirtualBox, подключенные к одному и тому же мосту, одновременно, иначе хост может сойти с ума (довольно некрасивый баг где-то)
решение2
Зайдите в настройки сети в Virutalbox и измените сетевой адаптер на bridged или host only. Убедитесь, что IP-адрес виртуальной машины находится в той же подсети, что и у хоста.
решение3
Проверьте, установили ли вы openssh-server
сервер.
sudo apt-get install openssh-server
затем проверьте, включен ли правильный порт
/etc/ssh/sshd_config
если вы входите в него с другим номером порта извне или ваш маршрутизатор имеет правило переадресации его на другой порт
Вам также может потребоваться раскомментировать этот раздел, если вы хотите авторизоваться по паролю.
#PasswordAuthentication yes
Включите тот же порт (по умолчанию 22) для переадресации в сетевой конфигурации вашей виртуальной машины.