SSH в Ubuntu VM удаленно

10

У меня нет большого опыта работы в сети или Linux, но я пытаюсь подключиться к виртуальной машине Ubuntu из-за пределов моей домашней сети. Виртуальная машина Ubuntu (VirtualBox) работает на рабочем столе Debian. Я провел некоторое исследование и обнаружил, что мне нужно перенаправить порт 22 с маршрутизатора на виртуальную машину.

  • Я изменил настройки сети на виртуальной машине для моста.
  • Я пересылаю порт на ВМ.
  • Я проверил ( http://www.yougetsignal.com/ ), чтобы показать порт как открытый.

Но когда я пытаюсь подключиться, он все равно не работает. ssh username @ - соединение отказано

Что мне нужно делать внутри виртуальной машины, чтобы разрешить входящие соединения? Или вперед любой порт?

Есть ли что-то, что я делаю неправильно, любая помощь будет принята с благодарностью!

user1354275
источник
Как виртуальная машина связана с хостом. Если это за NAT (по умолчанию на виртуальной коробке). Это не будет работать, но мостовое соединение должно работать, если вы правильно перенаправили порты.
Мэтт Моотц
Вы используете ssh username @ router-ip-address, верно?
cprofitt
1
да username @ public-ip-address это правильно?
user1354275
Ubuntu «из коробки» включает в себя клиент OpenSSH , который позволяет вам подключаться к другому компьютеру с SSH-сервером. Чтобы подключиться к Ubuntu, вам нужно загрузить сервер OpenSSH ( sudo apt-get install openssh-server ) на целевой машине.
Давид6

Ответы:

15

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

VirtualBox заставляет виртуальную машину думать, что она подключена к сети, но в действительности VirtualBox предоставляет сетевые сервисы, включая мини-сервер DHCP. Затем VirtualBox осуществляет сетевой доступ «от имени» виртуальной машины, делая его похожим на еще одно приложение, работающее на вашем ПК.

Однако это означает, что внешний мир на самом деле не знает о виртуальной машине и не может получить к ней доступ напрямую.

Я думаю, что вы перенаправили порт с домашнего маршрутизатора на ПК, а не на виртуальную машину. Возможно, вам не хватает какой-либо конфигурации на стороне VirtualBox. Извините, если вы уже сделали это, но ваш вопрос не был ясен по этому поводу.

В основном вы должны изменить сетевую конфигурацию виртуальной машины и установить для нее «Bridged». Это создает виртуальный интерфейс на вашем ПК и позволяет виртуальной машине использовать его для доступа к внешнему миру; все, что входит или выходит на этот интерфейс, передается по виртуальной машине. Таким образом, виртуальная машина будет отображаться как просто другая машина в любой сети, к которой подключен ваш компьютер (у нее даже есть собственный MAC-адрес!).

Затем, в зависимости от конфигурации вашей сети, виртуальная машина может получить адрес DHCP, как и любой другой ПК, подключенный к вашему маршрутизатору, или вам может потребоваться настроить для него статический IP-адрес. Это зависит от того, как настроена ваша сеть.

Когда у виртуальной машины есть «реальный» адрес, вы можете на своем маршрутизаторе следовать найденным инструкциям, чтобы направить порт 22 на IP-адрес виртуальной машины. Это должно работать так, как вы ожидаете.

Если это не так:

  • Посмотрите на конфигурацию брандмауэра вашей виртуальной машины (iptables -L -n). Это что-то блокирует?
  • Настройте другой компьютер в локальной сети и попробуйте подключиться по SSH к IP-адресу виртуальной машины. Если вы можете, то вам нужно еще раз проверить конфигурацию пересылки в вашем маршрутизаторе. Если вы не можете, вам необходимо перепроверить настройки SSH и брандмауэра виртуальной машины.
roadmr
источник
Привет roadmr, я изменил настройку сети на мост, и я перенаправил порт на виртуальную машину, так как он имеет свой собственный ip, и маршрутизатор смог его найти. У меня статический ip у провайдера. Но все еще не работает
user1354275
1

Исходя из того, что я могу собрать, ваша проблема заключается в вашей серверной компьютерной сети, потому что, как только вы настроите виртуальную сеть на режим моста, вам будет удобно (проверьте ssh <your.vm.ip.number>в командной строке вашего сервера, а не в vm).

ваш сервер находится за маршрутизатором, как виртуальная машина, использующая NAT на вашей машине.

Вам необходимо связаться с сетевым администратором вашего сервера, чтобы он / она мог выдвинуть локальный IP-адрес вашей виртуальной машины на порт / диапазон портов (убедитесь, что у вашей виртуальной машины есть статический IP-адрес).

Вы можете сделать это самостоятельно, если у вас есть права доступа к шлюзу вашего сервера.

немного визуализации:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5
apisKod
источник