ssh через маршрутизатор без переадресации портов

У меня есть сервер linux, и я хочу поместить его в домашнюю сеть за маршрутизатором. Мне нужно ssh на этот сервер когда-нибудь извне, но я не хочу настраивать переадресацию портов, потому что у меня нет доступа к маршрутизатору, и я тоже не знаю ip-адрес маршрутизатора.

Что я могу сделать, так это поставить какую-то программу на сервер linux, поэтому, когда он подключен к Интернету, он будет постоянно отправлять данные на мой другой сервер в интернете, чтобы я знал его ip-адрес. Но есть способ SSH на сервер за маршрутизатором извне? что-то вроде NAT или сокета, который поддерживает сетевое подключение?

Спасибо большое

4
задан MattPark
06.02.2023 7:51 Количество просмотров материала 3310
Распечатать страницу

4 ответа

то, что вы хотели бы сделать, это ssh с вашего "сервера linux" на что-то снаружи, например, "my_other_server" или что-то еще, к чему могут добраться оба сервера.

вы будете использовать переадресацию удаленных портов ssh.

[user@linux_server]$ ssh -R8022:localhost:22 my_other_server.com

Пояснение: подключитесь к my_other_server и откройте порт 8022, который переадресует мне на порт 22.

от my_other_server.com вы сможете ssh на localhost через порт 8022, и ваш трафик будет перенаправлен в linux_server двусторонняя linux_server -> туннель my_other_server [user@linux_server]$ ssh -p8022 localhost

Пояснение: подключаюсь к себе по порту 8022 который перенаправляется на linux_server

Если у вас есть проблемы с начальным linux_server - > my_other_server туннель выпадающий, вы могли бы сделать сценарий, чтобы держать его открытым, настроить параметры поддержки активности, или использовать autossh.

18
отвечен MattPark 2023-02-07 15:39

вы можете использовать VPN рода, чтобы получить эту работу, но это потребует от вас иметь сервер, который недоступен сервер может получить доступ. Затем вы можете настроить OpenVPN на сервере, вашем ПК и сервере Firewall, enable client-to-client, и все готово. http://openvpn.net/howto.html

3
отвечен Nathan C 2023-02-07 17:56

долгое время, чтобы ответить.Надеясь, что это может помочь кому-то, кто ищет то же самое сейчас.

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

оба вышеуказанных инструмента предполагают, что у вас есть доступ к машине linux для установки своего клиента Некоторые из их преимуществ are:

  • оба дает вам доступ к терминалу с помощью веб-интерфейса
  • вам не нужен промежуточный обратный ssh хост самостоятельно.
  • очень легко установить
  • оба с открытым исходным кодом

Я лично предпочитаю tmate больше, как вы можете провести сервер tmate на вашем собственном промежуточном сервере (для обратного ssh), в то время как teleconsole может подключаться только к своим собственным серверам для обратного ssh.

0
отвечен Ankit Kulkarni 2023-02-07 20:13

этот ответ основан на принятом, но добавляя подробности, которые позволили мне сделать это. Я извиняюсь за пешеходное объяснение, так как это не совсем мой опыт.

Предположим, у вас есть два компьютера, A и B. Вы хотите ssh С A to B, и вы не можете делать переадресацию портов в маршрутизаторах, подключенных к ним.

как говорится в принятом ответе, вам нужен сервер S сделать это: в компьютере B, вы позволите ssh подключения S; и от компьютера A, вы получите доступ к тоннелю в S до B.

но как получить этот сервер S? Я нашел serveo (ссылка:https://serveo.net/). Он имеет очень простое использование. Вам не нужно ничего устанавливать или регистрироваться, и это бесплатно. Согласно веб-сайту, следующие шаги:

  1. придумайте псевдоним для компьютера B. Для пример,computer_B_alias.

  2. в компьютер B выполнить ssh -R computer_B_alias:22:localhost:22 serveo.net.

  3. теперь, вы можете получить доступ к компьютеру B компьютер A выполнив в computer A:ssh -J serveo.net user@computer_B_alias, где вы должны заменить user по имени пользователя в computer B.

П. С.: Конечно, вы сделать пункт 2 автоматическое задач при запуске компьютера B.

П. С. С.: Прежде Чем попробуйте это, убедитесь, что ssh устанавливается на оба компьютера. Для Ubuntu, sudo apt-get install ssh сделал бы работу.

0
отвечен Godoy 2023-02-07 22:30

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх