Я хочу использовать Raspberry Pi в своем коттедже на выходных. Raspberry Pi предназначен для регистрации температур и отправки их на удаленный сервер с фиксированным ip, который сохраняет данные и отображает их на простом веб-сайте.
Однако может возникнуть ситуация, когда я хочу что-то изменить на Raspberry Pi. Например, обновления системы или изменения в программе, которая отправляет данные на сервер или что-то еще.
С предложенной настройкой я не смог бы подключиться к Raspberry Pi за пределами его локальной сети.
ПРИМЕЧАНИЕ. Я не хочу менять сеть, и у существующего маршрутизатора нет возможности переадресации портов, dynDNS или VPN.
Я недавно перечитал UDP дырокол. Основная идея заключается в том, что клиент отправляет пакет UDP на известный адрес сервера (т. Е. С включенным общедоступным IP-адресом или dynDNS). Клиент B, который хочет подключиться к клиенту A, запрашивает у сервера общедоступный IP-адрес и номер порта клиента A.
Затем он может подключиться к клиенту A напрямую по общедоступному IP-адресу и порту, который является динамическим. Поскольку клиент A сначала подключается к серверу на используемом в настоящее время порту, NAT будет пересылать пакеты клиенту A.
Надеюсь, я правильно изложил идею, более или менее…
Все это звучит хорошо, но проблема в том, что это не гарантируется для работы с TCP-соединением, так как маршрутизатор может «понимать» рукопожатие TCP-соединения и, если оно не создано правильно, оно не будет пересылать пакеты.
Итак, как я могу открыть SSH-сессию от клиента B к клиенту A без клиента A, сидящего за маршрутизатором с dynDNS, с фиксированным общедоступным IP-адресом или возможностью переадресации портов? Использование центрального сервера с общедоступным, фиксированным IP-адресом или доменным именем было бы жестким.
источник
-w
он сказал udp через tcp (возможно, тем, что он включает в себя любую попытку переадресации udp с помощью ssh), включает такие проблемы, как высокая задержка и повторную передачу того, что вам больше не нужно. Я думаю, это все еще интересно попробовать. Я вижу этот vpn через ssh и -w, упомянутый здесь также wiki.archlinux.org/index.php/VPN_over_SSHОтветы:
pwnat
Источник: http://samy.pl/pwnat.pdf
https://github.com/samyk/pwnat
источник
Вот пара решений:
Вы можете настроить Raspberry Pi для подключения обратно к серверу OpenVPN, и у вас будет к нему доступ постоянно.
Вы можете взглянуть на PageKite. Проверьте https://pagekite.net/wiki/Howto/SshOverPageKite/
источник
Это несколько грязное, но простое решение, но как насчет использования netcat? На Raspberry Pi вы можете создать скрипт, который повторяет команду:
На вашем локальном хосте выполните:
И:
Вы сможете набрать команду в первом случае и увидеть ответ во втором.
источник