1

Я использую VirtualBox на Windows 10. Уже некоторое время я использую PuTTY для подключения к своей виртуальной машине Ubuntu 16.04. Я наконец решил, что хочу использовать Ubuntu 18.xx. Поэтому я развернул новую виртуальную машину и настроил ее так же, как свою 16.04 виртуальную машину.

Я добавил ключ SSH и выполнил весь import -> puttygen -> ppk .

Я делал это несколько раз за последние 6 месяцев. И мне не удалось подключиться ко второй виртуальной машине каждый раз.

Я заметил, что обе виртуальные машины имеют одинаковый IP-адрес за NAT, они обе 10.0.2.15. Я получил это от ifconfig . Это важно или не имеет значения?

Я попытался добавить правило перенаправления портов, мостовой адаптер и миллион других вещей, которые просто не работали.

Вопрос

Какую настройку мне нужно, чтобы иметь возможность подключаться по SSH к обеим виртуальным машинам?

В чем моя проблема?

  • Я пропускаю очевидную строку подключения?
  • Я забываю о некоторых основных сетевых принципах?
  • Разве мне не разрешено это делать?

Желаемое поведение

я бы хотел

  1. Запустите две виртуальные машины одновременно.
  2. Запустите два экземпляра или PuTTY на моем хосте.
    • Одна замазка будет ssh в машину A
    • Одна замазка будет ssh в машину B
  3. Запустите PuTTY на моем ноутбуке (та же офисная сеть, что и на рабочем столе)
    • Направьте это на любую ВМ.

Клянусь, я не ленивый. Я провел бесчисленные часы за последние несколько месяцев, пытаясь заставить это работать. Это один из тех проектов, который приятно иметь, к которому я возвращаюсь каждый месяц, если позволяет время.

Текущее поведение

Я могу использовать PuTTY с моей хост-машины, чтобы подключиться к моей 16.04 ВМ. Я могу использовать PuTTY со своего ноутбука, чтобы подключиться к моей 16.04 виртуальной машине.

Я не могу ssh в 18.10 VM с хост-компьютера или с ноутбука.

1 ответ1

1

Для подключения виртуальных машин с хоста виртуальным машинам необходим сетевой интерфейс Host-Only. Основной целью здесь является создание двух сетевых интерфейсов в ВМ. Первый сетевой адаптер будет иметь сеть NAT (DHCP включен по умолчанию). Это соединяет ВМ с внешним Интернетом. Второй адаптер будет подключен к интерфейсу Host-Only. Это соединяет ВМ с хост-ОС для SSH, RDP, Docker или других соединений.

Вот конфигурации для моей настройки. Они могут различаться в вашей системе. Измените эти IP-адреса IPv4 по своему желанию, но будьте осторожны, чтобы IP-адреса не конфликтовали с другими частными сетями. Сеть Host-Only должна находиться в одной подсети как в хосте, так и в гостевой ОС.

  • Хост ОС: Windows 10

    • Имя хост-адаптера: VirtualBox Host-Only Ethernet-адаптер
    • IP-адрес адаптера Host-Only: шлюз 192.168.99.1/24 - дополнительно
  • Гостевая ОС: Ubuntu 18.10

    • Имя виртуальной машины: Ubuntu
    • Адаптер NAT (eth0): шлюз IPv4 - 10.0.2.15/24 (DHCP) - 10.0.2.2
    • Host-Only адаптер (eth1): 192.168.99.100 (статический) шлюз - опционально

Предположим, что Ubuntu VM была установлена в VirtualBox. Теперь следуйте этим командам для настройки сети на стороне хоста. Те же шаги можно сделать в окне VirtualBox Manager.

  • Создать интерфейс только для хоста (необязательно, предварительно установлен): VBoxManage hostonlyif create

  • Добавьте статический IPv4-адрес (или используйте ncpa.cpl): VBoxManage hostonlyif ipconfig "VirtualBox Host-Only Ethernet Adapter" --ip 192.168.99.1 --netmask 255.255.255.0

  • Подключите адаптер 1 к NAT: VBoxManage modifyvm Ubuntu --nic1 nat

  • Подключите адаптер 2 к интерфейсу только для хоста: VBoxManage modifyvm Ubuntu --nic2 hostonly

Запустите ВМ. Откройте терминал, отключите интерфейсы с помощью команды sudo ifdown -a . Добавьте статический IP-адрес IPv4 в сетевой интерфейс Host-Only (eth1), добавив следующие строки в файл /etc/network/interfaces :

auto eth1
iface eth1 inet static
address 192.168.99.100
netmask 255.255.255.0

Сохраните этот файл. Включите все интерфейсы с помощью команды sudo ifup -a . Проверьте, работают ли оба сетевых интерфейса с ping 10.0.2.2 и ping 192.168.99.1 . Если оба работают, то:

  • Установить SSH: sudo apt-get install ssh
  • Создать пары ключей ssh: sudo ssh-keygen -A
  • Запустите службу SSH: sudo service ssh restart

Запустите putty или любой ssh-клиент с user@192.168.99.100 со стороны хоста. Если брандмауэр Windows заблокирует соединения, разрешите сеть 192.168.99.0/24 в правилах исходящей / входящей почты.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .