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

22

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

  1. Как я могу получить к нему удаленный доступ с другого компьютера за пределами домашней сети, используя Интернет?
  2. Какой IP-адрес я использую для подключения к нему?
  3. Какую переадресацию портов мне нужно сделать?
Хьюго Лобо
источник
Какую сеть использует виртуальная машина? Для обычного домашнего использования рекомендуется мостовое соединение, тогда для сетевых целей виртуальная машина будет эквивалентна физической машине, поэтому вы просто выполняете переадресацию портов на маршрутизаторе как обычно.
Фракием
В разделе «Параметры сети» на моей виртуальной машине указано, что сетевой адаптер подключен к NAT. Вот скриншот: ссылка Нужно ли изменить это?
Уго Лобо
Поместив его в мост, все будет проще, да. (По сути, с NAT вам нужно дважды выполнить переадресацию портов на вашем маршрутизаторе и в VBox.)
fkraiem
на самом деле вам не нужна переадресация портов, когда машина, с которой вы хотите подключиться, видна вашему локальному серверу - просто используйте -Lфлаг в команде ssh - но убедитесь, что соединение сохраняется, запустите htop или что-то подобное, чтобы сохранить передача данных.
Вместительный

Ответы:

22

Есть несколько вещей, которые вам нужно сделать:

1) Подобно тому, как fkraiem упоминается в его комментарии, убедитесь, что ваша виртуальная машина доступна в локальной сети. Для этого необходимо использовать сетевое соединение «мост» в настройках виртуальной машины. Затем, используя один из ваших других компьютеров (даже хост), проверьте, можете ли вы войти на SSH-сервер. Если вы можете, поздравляю, давайте перейдем к следующему шагу.

2) Далее вам нужно знать, как перенести порт на ваш роутер. Поскольку вы не упомянули, какой у вас роутер, вам придется это выяснить самостоятельно. Порт 22 используется SSH. Конечно, вы можете прослушивать более высокий порт на маршрутизаторе, чтобы избежать заполнения ваших журналов кучей сценаристов, пытающихся взломать ваш сервер, а затем перенаправить порт на 22 на вашем сервере. Например, представим, что ваш локальный IP-адрес для вашего сервера - 192.168.0.10. Ваш WAN (Интернет) IP составляет 99.99.99.99.

99.99.99.99:60022 -> Маршрутизатор -> 192.168.0.10:22

То, что вы хотите сделать, это указать маршрутизатору прослушивать порт 60022 и перенаправить его на IP 192.168.0.10 и порт 22.

Чтобы выяснить, какой у вас IP WAN, просто введите в Google «какой у меня IP адрес». Есть и другие способы, но это самый простой.

Теперь, после настройки маршрутизатора, попробуйте подключиться к внешнему компьютеру через IP-адрес WAN с более высоким портом. Вы можете привязать свой мобильный телефон к ноутбуку, чтобы сделать это.

Если бы вы могли соединиться с этим, поздравляю снова.

3) Теперь вы должны убедиться, что ваши IP-адреса остаются неизменными в вашей локальной сети, и вам необходимо получить динамическую запись DNS для вашего IP-адреса в глобальной сети. Таким образом, вы бы использовали доменное имя вместо вашего WAN IP. Google 'динамический DNS', чтобы найти бесплатный сервис.

Надеюсь, что это помогло.

Г Траво
источник
Является ли эта команда 99.99.99.99:60022 -> Router -> 192.168.0.10:22 действительной командой? что значит "Маршрутизатор"? Я имею в виду, что здесь происходит?
m4l490n
@ m4l490n Нет, это не команда. Это просто способ показать «поток» соединения. 99.99.99.99 - это просто IP-адрес, который я выбрал. Я мог бы также показать XXX.XXX.XXX.XXX, но я считаю, что цифры легче понять. 60022 - это «внешний» порт, на котором маршрутизатор прослушивает. Затем он выполняет переадресацию порта на внутренний адрес 192.168.0.10 и перемещает его на порт 22. Причина, по которой я не стал вдаваться в подробности, заключается в том, что OP не указал, какой маршрутизатор (и прошивку) он использовал.
G Trawo
4

Мои персональные настройки следующие:

  1. На маршрутизаторе перенаправьте порт 22 с удаленного компьютера на 2222 локального компьютера, скажем, например, 192.168.0.33. Таким образом, вы по-прежнему можете иметь доступ по ssh к основной ОС на машине, а 2222 - для виртуальной ОС.

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

    1. В виртуальном ящике перенаправьте порт 2222 ОС 192.168.0.33 на порт гостевой ОС 22. IP-адрес гостя можно найти с помощью ifconfigкоманды на самом госте.

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

Теперь, если вы знаете IP-адрес вашего маршрутизатора, вы можете использовать ssh для IP-адреса вашего маршрутизатора, и он будет автоматически перенаправлен на порт 2222 вашей физической машины. Физическая машина установит соединение с портом 22 виртуальной машины (при условии, что виртуальная машина работает).

Если вы хотите ssh из локальной сети, используйте ssh -p 222 192.168.0.33

Сергей Колодяжный
источник