Как я могу подключиться к гостевой системе Ubuntu, работающей на хосте win10, с удаленного сервера Linux?

10

Укороченная версия

Если я запускаю гостевую виртуальную виртуальную машину Ubuntu VirtualBox с хоста Windows 10, какие шаги мне необходимо предпринять sshс удаленного сервера Linux в гостевую виртуальную машину Ubuntu?


_______________________
[                     ]
[ Windows 10          ]
[ ___________________ ]            ____________________
[ [                  ]]            [                   ]
[ [ Ubuntu VM (guest) <----HOW?---- SUSE remote server ]
[ [__________________]]            [___________________]
[_____________________]

Длинная версия

Я запутался, потому что, AFAIK, если бы я не использовал гостевую виртуальную машину Ubuntu и вместо этого использовал реальную машину Ubuntu, я мог просто cat /etc/hostsнайти IP-адрес локального, а затем удаленного просто:

user@remote --ssh--> user@<local IP>

Я уже настроил ключи ssh так, чтобы я мог ssh из гостевой системы Ubuntu на удаленный сервер SUSE (то есть, гостевой компьютер ~/.ssh/id_rsa.pubуже хранится в удаленном сервере ~/.ssh/authorized_keys). Т.е. уже могу:

ssh -Y user@remote

Без труда, но я не могу сделать это наоборот, просто потому, что понятия не имею, каков IP-адрес моего гостя. И я уже пробовал ssh-ing с IP-адресами в «Информация о соединении» из Ubuntu GUI.

Также должно быть ясно:

  • гостевой виртуальной машиной является Ubuntu 12.04 LTS (64-битная)

  • Настройки VirtualBox в основном: по умолчанию

  • Включить сетевой адаптер: NAT (кабель подключен, переадресация портов отсутствует)

Я не настроил ssh-сервер, но я не уверен, что это необходимо (?), Это мое понимание до сих пор.

Итак, учитывая, что я запускаю гостевую виртуальную виртуальную машину Ubuntu VirtualBox с хоста Windows 10, какие шаги мне нужно предпринять sshс удаленного сервера Linux на гостевую виртуальную машину Ubuntu?

hello_there_andy
источник

Ответы:

14

Обычно это называется «двойной NAT», когда вы находитесь за маршрутизатором. Вы должны перенаправить с пограничного маршрутизатора в систему Windows, а затем переслать в VBox на виртуальную машину. Возможно, вам также придется перенаправить порт 22 от фактического сетевого подключения к адаптеру VBox NAT, но я не совсем уверен в этом для Windows.

В конечном счете, здесь вам нужно сделать максимум три вещи. Они все в Windows, или не в Ubuntu Linux, поэтому большинство ваших ответов будут на Super User или где-либо еще.

  1. (Если вы находитесь за маршрутизатором в вашей сети, на котором включен Win10) Настройте переадресацию портов на маршрутизаторе в сети, чтобы перенаправить порт 22 в вашу систему Windows 10.

  2. Настройте брандмауэр Windows на разрешение входящих подключений через порт 22. Возможно, вам также понадобится указать, что вы хотите, чтобы порт 22 переадресовывался с вашего входящего сетевого адаптера в сеть NAT в настройках сети виртуальной машины.

  3. Установите правило пересылки NAT в сети NAT в VirtualBox, чтобы перенаправить порт 22 хоста на порт 22 виртуальной машины .

Немного более приятный подход, позволяющий обойти Шаг 2 и Шаг 3, заключается в использовании Bridged Mode в настройках сети ВМ; Затем он получит IP-адрес из той же сети, к которой подключена система Windows 10, и вы сможете затем перенаправить порт 22 перенаправления на граничном маршрутизаторе (шаг # 1) на IP-адрес, назначенный сетью самой виртуальной машине. Это немного менее болезненно, чем выполнение нескольких прыжков и настроек для работы порта 22.

ПРИМЕЧАНИЕ. Некоторые интернет-провайдеры фильтруют порт 22, поэтому трафик порта 22 не достигает системы; вместо этого вам может потребоваться установить более высокий порт, чем порт 22 (например, 2022 или другой нестандартный порт> 1024), если это так.


Что касается нахождения IP гостя, эта информация будет в выводе ifconfig -aили ip -4 addr listв гостевой системе Linux. Это самая легкая часть из всего этого, потому что это будет то же самое, Bridged или NAT.

Томас Уорд
источник
Я буду исследовать это спасибо, я действительно не знаю, как вы ответили так быстро ...
Удалите
1
@hello_there_andy Я делаю много виртуализации на своем ноутбуке, либо через контейнеры LXC / LXD на базе Linux при настройке NAT, либо через VMware, с подобными пороками на NAT (в основном, я привык к этому набору проблем, хе). Процесс аналогичен в Linux и Windows, но совершенно отличается с точки зрения шагов, хотя в моих случаях мои виртуальные машины никогда не нуждаются снаружи -> in; для этих виртуальных машин я разместил их на выделенном гипервизоре ESXi, который является машиной, предназначенной для запуска виртуальных машин, и подключил ее напрямую к существующей настройке Ethernet (нет NAT, хе-хе). Но это нетипичная установка, конечно.
Томас Уорд
1
@hello_there_andy просто убедитесь, что гость также openssh-serverустановлен на нем - так что вы можете принять SSH. Помимо этого, все остальное - сетевые / брандмауэры / настройки Windows. (Следовательно, Super User, а не Ask Ubuntu)
Томас Уорд
3

Вам нужно будет установить port forwardingвWindows 10 VM player

Вам нужно будет установить внешний порт на компьютере с Windows 10, который будет перенаправлен service portна вход virtual machineв NAT network.

Эта ссылка объясняет, как это сделать

Ярон
источник
1
Хотя это может теоретически ответить на вопрос, ответы только на ссылки обычно не одобряются. Было бы предпочтительно, чтобы вы включили соответствующую информацию из связанных сообщений, если такие сообщения исчезнут в какой-то момент в будущем.
Томас Уорд
Спасибо за комментарий и за предоставление деталей в вашем ответе.
Ярон