Подключение к SSH устройства в сети, которая не имеет никакого входящего трафика, включило и никакой статический IP-адрес

Дамп статистики начинается со строки +++ Дамп статистики +++ (973798949), где число в скобках - это стандартная временная метка в стиле Unix, измеренная в секундах с 1 января 1970 года.

3
21.11.2018, 14:27
6 ответов

Это возможно. Используйте "обратное перенаправление портов" . Вам, вероятно, понадобится настроить cronjob, чтобы проверить, подключен ли он. Если нет, запустите что-то вроде этого:

ssh -f -N -T -R 2210:localhost:22 me@example.com

«Example.com» — это какой-то сервер за пределами FW, к которому у вас есть доступ. Вы перенаправляете порт 22 на RPi на порт 2210 на example.com. Затем вы можете подключиться по SSH к example.com и выполнить:

ssh RaspberryUser@localhost -p 2210

И вы будете подключены к ящику RPi.

5
27.01.2020, 21:07

То, что вы пытаетесь сделать именно так, как вы просите , невозможно:

No Inbound connections allowed on that network

Однако вы можете легко:

4
27.01.2020, 21:07

Если брандмауэр Pi не разрешает входящие соединения, установить соединение невозможно. Единственный способ — пробить брешь в брандмауэре, используя установленные соединения.

1
27.01.2020, 21:07

По сути, вы можете достичь своей цели только при обслуживании подключений от устройства к серверу, который вы обслуживаете.

Из чего именно состоят эти соединения, может быть разным:

  • подключиться, получить задачи для выполнения и продолжить их выполнение.
  • подключитесь к VPN и станьте ее частью, позволяя подключаться к
  • подключиться через SSH и установить туннельное соединение

Используемые протоколы

  • VPN (использует несколько портов)
  • SSH
  • HTTPS
  • даже UUCP, хотя и немного устаревший

В зависимости от того, что клиент разрешает внутри своей сети, вы даже можете реализовать несколько из этих методов на выбор.

Каждый метод имеет свои плюсы и минусы.

  • СШ:

    • + :нужен только один порт
    • -:возможно, не каждая сеть разрешает исходящие соединения SSH
  • VPN:

    • + :самая простая интеграция в сеть сервера
    • -:необходимо несколько портов
    • -:возможно, не каждая сеть разрешает исходящие соединения SSH
  • HTTPS:

    • + :вероятно поддерживается
    • -:нет настоящей командной строки, можно отправлять только «рабочие пакеты»
    • -:для настройки потребовались большие усилия
  • УУКП:

    • + :позволяет отправлять пакеты
    • -:устаревший протокол
3
27.01.2020, 21:07

Я предполагаю, что имена пользователей remoteна VPS и piна малине.

  1. Вы выбираете свободный порт на VPS. Должно работать случайное пятизначное -значение ниже 65000.
  2. На Малине бежишь

    ssh -R PORT:localhost:22 remote@vps
    
  3. На VPS вы подключаетесь к Raspberry с помощью

    ssh -p PORT pi@localhost
    

Замените ПОРТ портом, который вы выбрали на первом шаге.

На шаге 2 вы создаете обратный туннель от ПОРТА на VPS к порту 22 на Raspberry, который прослушивает SSH-сервер Raspberry. На шаге 3 вы подключаетесь к ПОРТу на VPS и получаете перевод на порт 22 на Raspberry.

Затем вы можете настроить соединение внутри VPS ~/.ssh/config, например:

Host raspberryTunnel
  Hostname localhost
  User pi
  Port PORT

Если это работает надежно, вы можете заменить одиночное SSH-соединение на Raspberry на autossh, который автоматически воссоздаст соединение, когда оно выйдет из строя.

autossh -R PORT:localhost:22 remote@vps
6
27.01.2020, 21:07

Я бы проверил ZeroTier :, он позволяет настроить виртуальную сеть с нужными вам правилами, например, что любой узел может напрямую подключаться к любому другому узлу. Они решают все виды проблем с подключением, включая ретрансляцию трафика через свои серверы, если это необходимо.

0
27.01.2020, 21:07

Теги

Похожие вопросы