Я недавно настроил SSH на моем Raspberry Pi. Все идет гладко, особенно с тех пор, как я могу управлять компьютером через iPhone с помощью приложения Server Auditor . К сожалению, это работает только через локальную сеть.
Как я могу заставить мой SSH работать, когда я вне дома? (Предпочтительно работает с приложением.)
Ответы:
Вот шаги, которые я использовал (в Debian), которые вы можете найти полезными.
1.Настройка статического IP для Pi.
Откройте файл интерфейсов с помощью команды
b.Измените файл интерфейсов следующим образом (это работает для меня, я не уверен, можно ли исключить несколько строк).
c.Check если Ip изменен с помощью IFCONFIG команды
2.Настройка динамического DNS
Скорее всего, IP-адрес, назначенный вашим интернет-провайдером, является динамическим, и поэтому нам нужен способ разрешить изменения в IP-адресе. Для этого я использую программное обеспечение dnsdynamic и ddclient. Оба они бесплатны.
Зарегистрируйте аккаунт в dnsdynamic.
Б. Добавьте новый домен и выберите имя и домен из списка. Вы можете выбрать любой из доступных доменов, выбрав субдомен. Нажмите на проверку доступности, а затем добавьте
3. Установка ddclient на Пи
Установите ddclient с помощью команды
b. Откройте файл конфигурации для ddclient с помощью следующей команды и добавьте следующие строки.
и измените файл следующим образом.
и сохраните файл.
Мы хотим, чтобы служба ddclient запускалась автоматически при перезагрузке. Выполните следующие действия.
Добавьте следующую команду перед выходом 0 (последняя строка)
Сохраните файл. Для запуска ddclient либо перезагрузите ваш pi, либо выполните приведенную выше команду в командной строке. Он будет обновлять ваше доменное имя, изменяя текущий IP-адрес при необходимости.
4. Переадресация портов
Найдите модель вашего роутера.
Перейдите на portforward.com
c.Введите марку и модель своего маршрутизатора, чтобы найти подробное руководство по порту переадресации.
После выбора марки и модели маршрутизатора нажмите «Руководство по умолчанию» на перенаправленной странице.
д. В текстовом поле « Статический Ip» введите статический IP-адрес Pi, который вы указали в шаге 1.
f.Следуйте шагам и перенаправьте порт 22. Исходный порт должен быть 22, а порт назначения может быть любым. Пожалуйста, не забудьте использовать порт назначения при sshing в pi. Чтобы избежать путаницы, я склонен использовать один и тот же источник и пункт назначения порт.
Если вы следовали учебному пособию, войдите в свой пи из любого места, заменив IP-адрес на доменное имя. Например, я использую pi@hometorrent.dnsdynamic.com: 22 для ssh в мой пи.
источник
sudo
в/etc/rc.local
, не то, что уже работает как корень?Сначала вы захотите настроить переадресацию портов. Каждый маршрутизатор немного отличается, так что вам придется искать особенности вашего маршрутизатора.
Существуют общие инструкции по переадресации портов, которые могут работать для большинства маршрутизаторов, но я бы посоветовал найти руководство для вашей реальной модели маршрутизатора.
Установите незабываемый порт для связи с вашим Raspberry Pi, например, 23456 или что-то еще. Будьте внимательны, чтобы не перезаписать общие номера портов .
Наконец, используя ssh, сделайте следующее:
Где:
-p
команда указывает , какой порт SSH попробовать туннель , чтобыисточник
Доступ к вашему RaspberryPi (или даже к ноутбукам / серверам) из-за пределов вашей домашней сети (то есть из Интернета) не является легкой задачей, потому что ваш домашний ноутбук или RaspberryPi имеет только локальный IP-адрес (в диапазоне 10.xxx или 192.168.xx ассортимент). У него нет публичного IP-адреса, который виден из Интернета.
Простым ответом на ваш вопрос является использование бесплатных онлайн-сервисов, таких как SocketXP, который обеспечивает безопасную общедоступную конечную точку туннеля для SSH в RaspberryPi за пределами домашней сети.
SocketXP предоставляет простой, безопасный и простой способ получить доступ к вашему домашнему RaspberryPi из внешней сети. SocketXP не требует от вас взломать какие-либо настройки в вашем маршрутизаторе WiFi. Работает из коробки. Чтобы узнать, как настроить RaspberryPi для SSH извне, прочтите этот блог о том, как удаленно подключить SSH к RaspberryPi с помощью SocketXP.
Как настроить SocketXP:
Шаг 1 : Установите клиент SocketXP на RaspberryPi, используя следующую команду.
Шаг 2. Подключите клиент SocketXP к облачной службе SocketXP, используя следующую команду. Вам нужно зарегистрироваться на https://portal.socketxp.com, чтобы получить свой уникальный токен авторизации.
Шаг 3 : Получите общедоступную конечную точку туннеля для доступа к вашему RaspberryPi из Интернета.
Шаг 4 : SSH в ваш RaspberryPi из Интернета, используя следующую команду.
где "raspberry-username" - это имя пользователя / пароль, которые вы используете для входа по SSH в RaspberryPi.
источник
Этот вопрос устарел, так как со временем у вас будет меньше шансов получить общедоступный IPv4-адрес. Скорее всего, вы находитесь за CGNAT, то есть вы используете один публичный IPv4 с другими клиентами интернет-провайдера. Таким образом, невозможно сделать переадресацию порта на ваш PI или что-то еще.
Если у вас есть IPv6, вы можете дать вашему PI статический адрес и разрешить доступ к нему на своем маршрутизаторе. Многие операторы мобильной связи теперь предоставляют IPv6 для телефонов. Старые "наземные" интернет-провайдеры (Fiber, DSL, коаксиальный кабель и т. Д.) Часто тянут свои ноги.
Вы также можете получить дешевый VPS (виртуальный частный сервер) с общедоступным IPv4 где-нибудь в облаке и создать SSH-туннель от PI до VPS.
источник
Вдобавок к ответу phalt, вы должны проверить одну из динамических служб DNS, например No IP . Они позволяют вам получить доступ к вашей домашней сети под статическим именем хоста, хотя ваш IP-адрес может меняться ежедневно из-за того, что ваш DSL или кабельный провайдер отключил вас. У них также есть хорошая стартовая страница, которая также знакомит вас с настройкой маршрутизатора соответственно.
Возможно, вы захотите установить
inadyn
пакет на Raspberry Pi, чтобы обновить записи DNS без IP-адреса при изменении IP-адреса. Вы можете сделать это, запустив:От Инадыни README я взял этот пример звонка:
Надеюсь это поможет.
источник
Дополнительно к ответу Стива Ирвина:
Шаг 1:
если вы подключаетесь через WLAN, используйте:
Шаг 2:
после того, как вы изменили выше, вам нужно перезапустить
networking
:источник
Кроме того, некоторые маршрутизаторы имеют встроенную поддержку некоторых служб Dynamic DNS, вы можете включить эту опцию (если она существует) на вашем маршрутизаторе, чтобы избежать установки клиента на PI (и сэкономить немного времени, пока вы на нем).
источник
Итак, у вас есть ssh-сервер (ваш Raspberry PI) за брандмауэром (ваш маршрутизатор), и вы хотите подключить его из любого места. Предположим, что ваш ssh-сервер правильно настроен, т. Е. При запуске 'ssh username @ localhost date' на Raspberry отображается текущая дата / время.
Вам нужно решить две проблемы:
Переадресация портов и DynDNS
Решения существуют (как было отмечено другими):
При правильной настройке подключение вашего rasbperry pi возможно с помощью:
Использование sshhub.de
Еще одно очень удобное решение, не упомянутое до сих пор, - это SSHHub (дисклеймер, я автор). Он использует собственную пересылку ssh для доступа к вашему Rasperry PI из любого места. Это надежный, бесплатный и довольно простой в настройке . Зарегистрируйтесь один раз:
запустить на вашем Raspberry PI:
...вот и все! Вы можете подключить Raspberry Pi из любого места:
источник
Вы можете использовать VPN, чтобы включить входящий доступ к вашему пи. OpenVPN - это одно из решений, которое требует наличия компьютера, доступного из Интернета (входящий порт). Однако, если у вас есть один доступный компьютер, другим компьютерам это не нужно, поскольку они могут быть клиентами сервера OpenVPN.
Другим вариантом будет использование службы, такой как ZeroTier, которая предоставляет централизованные серверы для создания VPN, поэтому вам не нужно запускать собственный сервер. Это также бесплатно.
источник