VirtualBox Host SSH для гостей

53

У меня есть хост Mac и гость VirtualBox Linux, в настоящее время использующий мостовой режим.

Я должен быть в состоянии легко SSH в гостевой с хоста. Было бы неплохо использовать имя хоста, но также не подойдет и неизменный IP-адрес (в настоящее время IP-адрес меняется с каждой новой сетью, к которой я присоединяюсь, и имя хоста никогда не работало).

Мне также нужен доступ в Интернет от гостя.

Другие машины в сети не нуждаются в доступе к гостю.

Каков наилучший способ настроить мою сеть VirtualBox?

Томас Хантер
источник
1
В связи с этим рассмотрите возможность запуска гостя VB без графического интерфейса пользователя: superuser.com/questions/135498/…
Fabricio PH

Ответы:

36

Сначала вам нужно будет создать vboxnet0интерфейс.

VirtualBox> Файл> Настройки> Сеть> Хост-сети> Добавить (вы получите vboxnet0)

Затем запустите это на хост-машине. Вы увидите новый интерфейс vboxnet0, появился.

ifconfig

Завершите работу своей виртуальной машины и выполните:

VM's Settings > System > check "Enable I/O APIC."
VM's Settings > Network > Adapter 2 > host-only vboxnet0

Запустите ВМ, на гостевой запуск

ifconfig

и проверь ip

Проверьте эти ссылки:

  1. https://forums.virtualbox.org/viewtopic.php?f=8&t=40076
  2. http://www.wiredrevolution.com/virtualbox/setup-ssh-access-between-virtualbox-host-and-guest-vms

Существует также решение для NAT, но я не проверял его.

Настройка переадресации портов с NAT на вашем хост-компьютере

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

подключитесь к Linux через порт 2222 хоста

ssh -l -p 2222 localhost

Для сети только с хостом со статическим ip проверьте это:

https://stackoverflow.com/questions/5906441/how-to-ssh-to-a-virtualbox-guest-externally-through-a-host/27152153#27152153

Он предназначен для Solaris 10 и Ubuntu 16.04, но его легко адаптировать.

rofrol
источник
2
Спасибо, я включил переадресацию портов VirtualBox и смог подключиться через ssh localhost -p 7022.
Томас Хантер
Хорошо, переадресация портов работает как шарм. Хотя я сделал конфигурацию в графическом интерфейсе Virtualbox, а не с VBoxManage. Там вам также нужно установить IP-адрес вашего хоста и гостя, который должен быть 127.0.0.1 и 10.0.2.15 соответственно.
Себастьян Гансландт
Незначительное редактирование в первом предложении. Он должен выглядеть следующим образом: VirtualBox> Настройки> Сеть> «Сети только для хоста»> Добавить (вы получите vboxnet0)
Стив Суинсбург
Я сделал все это для установки только для хоста, и когда я пытаюсь подключиться по ssh с моего хоста, он просто зависает (до истечения времени ожидания). Что-нибудь еще?
Крис Вестин
37

Между двумя компьютерами Linux (32-битным хостом Ubuntu и 64-битной виртуальной машиной Ubuntu) мне удалось заставить ssh работать с использованием этой переадресации портов:

введите описание изображения здесь

Затем с вашей хост-системы запустите

ssh -p 5679 127.0.0.1

Замените 5679на «Порт хоста», введенный в Правила переадресации портов.

719016
источник
8
Я сделал точно так же, просто не вводя никаких «Host IP» и «Guest IP».
Дэмиен Кассу
В моем случае образ Ubuntu не пришел с установленным ssh (я бы ожидал). Поэтому я запустил «apt-get install openssh-server» и смог соединиться с «ssh -p 5679 localhost». Судя по другим комментариям, я не ставил ни хост, ни гостевой IP.
Пьер-Антуан
2

Если вы не хотите возиться с переадресацией портов, вы можете настроить адаптер только для хоста, который отображается как интерфейс хоста, а затем добавить IP-адрес в этой подсети в гостевой системе.

шаги:

  • Создайте сеть только для хоста в Virtualbox (GUI -> настройки -> сеть). Введите ifconfigв хозяине и увидеть что - то подобное vboxnet0сinet 192.168.50.1
  • в гостевой добавить IP-адрес: ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up
  • в хосте выполнить ssh root@192.168.50.101

Дальнейшее чтение:

Бен Криси
источник
1

Возможно, вам лучше настроить виртуальную сетевую карту в режиме NAT, если вы немного двигаетесь. Используя NAT, хост (ваш ПК) становится DHCP-сервером и маршрутизатором для частной сети, созданной для ваших гостевых ОС. Я уверен, что вы можете установить статический адрес с помощью NAT также ...

Тем не менее, я думаю, что лучшее решение - выяснить, почему разрешение имен не работает для вашей гостевой виртуальной машины :)

https://www.virtualbox.org/manual/ch06.html#network_nat

Джон
источник
2
Я настраиваю режим NAT, и моему гостю назначен ip 10.0.2.15. Однако с хоста (IP-адрес которого 192.168.1.120) я не могу связаться с гостем. Руководство смогло объяснить различные способы для меня, но, похоже, у меня не было решения моей проблемы.
Томас Хантер
0

Очень полезно, направьте меня в правильном направлении. Благодарю.

Я должен был пойти в> VirtualBox> Файл> Менеджер сети хоста> vboxnet0> Настроить адаптер вручную> IPv4-адрес и установить его в ifconfig гостя. По какой-то причине хозяин и гость давали мне разные IP-адреса.

Это упомянуто, но, чтобы быть ясным, я должен был установить порт переадресации порта для 127.0.0.1 на 5679, а не порт ssh по умолчанию 22, поскольку он уже используется собственной коммуникацией ssh ​​хоста.

remkohdev
источник