Это может быть простой вопрос, но, поскольку я прочитал противоречивую информацию из нескольких ресурсов (что? Противоречия в Интернете?), Я хотел знать, сделал ли я все, что должен.
Поэтому я хочу настроить SSH-соединение с моим RasPi, чтобы иметь доступ к нему через Интернет.
- Я начал с активации SSH на Pi, запустив Raspbian, используя этот
raspi-config
инструмент. - Затем я установил клиент no-ip.com на свой Pi, чтобы имя хоста указывало на мой динамический IP-адрес.
- Я посмотрел мой LAN IP на моей малины с помощью
ifconfig
- Наконец, в утилите конфигурирования моего маршрутизатора в разделе переадресация портов я включил переадресацию порта 22 в TCP и UDP на локальный ip моего pi.
После этого я не могу показывать SSH своему пи через интернет. Это работает, когда я пытаюсь подключиться к своей локальной сети, используя свой локальный IP-адрес, но не используя имя хоста или IP-адрес в Интернете. Я также попытался подключиться из другого места, и ничего не работает.
Мой вопрос: я пропускаю какие-либо шаги? Есть ли файлы конфигурации, которые я должен редактировать на своем пи, чтобы все работало?
iptables -L
вашего Pi.Ответы:
Если вы планируете подключаться к Raspberry Pi только через SSH через Интернет, вероятно, ngrok.com может удовлетворить вашу проблему наиболее удобным способом.
Он перенаправляет ваш порт (ы) с помощью какого-то обратного туннеля и может даже помочь обойти брандмауэры или ограничения вашего провайдера. Вы должны зарегистрироваться (бесплатно) на сайте для пересылки TCP-трафика.
Я никак не связан с этим проектом; Я просто использовал его для реализации той же идеи (в моем случае пересылка OpenVPN-сервера) и до сих пор не столкнулся с какими-либо проблемами.
источник
Частично ваша проблема может заключаться в том, что, поскольку Pi использует динамический IP-адрес от DHCP на вашем маршрутизаторе, настроенная вами переадресация портов не работает, так как локальный IP-адрес Pi изменился.
Самый простой способ исправить это (по крайней мере, что я видел) - установить статический IP-адрес. Это относительно просто, до тех пор, пока вы не возражаете разбираться в файле конфигурации. Вы можете прочитать немного подробнее здесь и здесь . Я также объясню простой способ ниже:
Подключитесь к вашему Pi либо через SSH в вашей домашней сети, либо через экран, либо работает.
Возьмите ручку и немного бумаги, вы будете записывать некоторую информацию.
Запустите команду
ifconfig
. Я знаю, что вы уже запустили его, но нам нужно собрать немного больше информации о вашем локальном IP на этот раз. Это показывает информацию о вашем маршрутизаторе, бит, который вы хотите, находится после eth0 (соединение Ethernet). , , ,Запишите следующую информацию ...
Очевидно, что ваша информация будет отличаться от этого урока, поэтому убедитесь , что вы используете вашу информацию от
ifconfig
команды запуска на Pi.Теперь беги
netstat -nr
илиroute -n
. Нам нужно:Адрес шлюза - 192.168.1.254 Адрес
получателя - 192.168.1.0
Теперь, когда у нас есть эта информация, мы можем отредактировать файл интерфейсов, чтобы настроить динамический IP. Беги
sudo nano /etc/network/interfaces
. Это должно выглядеть примерно так:Измените строку:
в
Затем прямо под этой строкой введите следующее ( пожалуйста, обратите внимание. Вам понадобятся ваши собственные адреса, которые мы собрали выше ). , , ,
По сути, адресная часть - это то, что вы хотите, чтобы ваш IP был. Чем выше, тем лучше, так как меньше шансов конфликта IP. маска сети - адрес «Маски», который мы записали ранее.
сеть - IP-адрес маршрутизатора, это адрес получателя, найденный ранее. Вы также можете взять это с вашего роутера, это должно быть где-то на стороне.
широковещательная рассылка - адрес «Bcast», который мы записали ранее.
gateway - это адрес шлюза, который мы нашли ранее.
Нажмите Ctrl+ Oи либо Enterили Yа затем Enter. Как только вы это сделали, нажмите Ctrl+ X.
Запустите
sudo reboot
и ваш IP должен быть на месте! Войдите в систему иifconfig
снова введите команду, и теперь она должна выглядеть так:Затем настройте переадресацию портов на новый статический IP-адрес, и все должно работать! Удачи!
источник
Кажется, единственное, что вы неправильно настроили, - это то, что SSH - это протокол только для TCP, поэтому вам не нужно пересылать трафик UDP через порт 22.
Теперь, почему это не работает, вероятно, потому что ваш маршрутизатор не поддерживает обратную петлю NAT . Это означает, что правила NAT (такие как правило переадресации) не применяются, если источник соединения находится в вашей внутренней локальной сети. Не на всех маршрутизаторах эта функция включена. Таким образом, если ваш маршрутизатор не поддерживает обратную петлю NAT, вы не сможете подключиться к вашему RPi с помощью SSH при использовании доменного имени no-ip.com и при выполнении его из локальной сети .
Чтобы проверить, работает ли ваша конфигурация, если у вас есть смартфон с каким-либо подключением для передачи данных (3G, LTE и т. Д.) И на нем есть ssh-клиент, попробуйте подключиться к RPi, используя тарифный план, а не подключение WiFi. Если у вас нет ssh-клиента и вам разрешено использовать модем, тогда используйте свой смартфон вместе с одним из своих компьютеров, отключив его для локальной сети и используя вместо него ссылку модема.
источник
Попробуйте использовать бесплатное доменное имя, например co.cc или аналогичное, и freeDNS (они также предоставляют широкий спектр поддоменов) для указания на ваш маршрутизатор. Я думаю, вы также можете получить скрипт обновления, если у вашего роутера динамический IP.
Если это не сработает, возможно, настройки переадресации вашего порта неверны? Какой у вас роутер?
источник
Try using a free domain name...
Он так и сделал, вот что такое no-ip клиент. Это гораздо проще, чем возиться с ручным DNSing и маршрутизаторами.У меня есть такая ситуация здесь, в Финляндии: rpi подключен к мобильному маршрутизатору Wi-Fi, huawei e5776, и я хочу подключиться к rpi через SSH через Интернет, но пока безуспешно, и, наконец, я знаю, что мой интернет-провайдер блокирует двусторонние соединения для клиенты мобильной широкополосной связи. Двусторонний трафик для них - это дополнительная услуга (за которую вы должны платить), которую мой провайдер называет открытыми воротами. Так что зайдите на свой сайт интернет-провайдера, чтобы узнать, так ли это.
источник
Slubbix указал на возможную проблему, заключающуюся в том, что локальный IP-адрес Raspberry Pi не является фиксированным. Это сделает переадресацию порта в вашем маршрутизаторе ненадежной. По умолчанию Raspberry Pi настроен на использование DHCP. Это означает, что IP-адрес предоставляется маршрутизатором. Этот IP по умолчанию также не зафиксирован.
Slubbix уже указал на одно решение этой проблемы : сделать IP-адрес Raspberry Pi фиксированным.
На мой взгляд, у этого есть два недостатка: в вашей сети нет глобального списка IP-адресов, который легко обслуживать, и вы не можете использовать Raspberry Pi в другой сети (IP-адрес уже используется или другая подмаска).
Поэтому я предлагаю сделать следующее: настроить маршрутизатор для назначения фиксированного IP-адреса MAC-адресу вашего Raspberry Pi. MAC-адрес можно найти с помощью команды
ifconfig
источник
Локальный IP-адрес вашего Raspberry Pi не является фиксированным, если вы не используете для подключения беспроводной адаптер, который сохранит свой IP-адрес. Если вы хотите использовать SSH для RPI, вы можете использовать эти шаги:
Я нашел эти шаги отсюда, и они работали на меня
Вот еще один способ использования SSH:
Я нашел эти инструкции здесь
источник
Одна вещь, которую я заметил для своего интернета, это то, что когда я переадресовываю свой веб-сервер и пытаюсь подключиться к нему с помощью моего публичного IP-адреса, он говорит, что он недоступен, но когда я подключаюсь к нему на своем телефоне или в сети моих школ Я могу подключиться к нему, также вы можете попробовать зайти в Google и ввести «IP» в строку поиска, скопировать IP-адрес, который он вам дает, а затем перейти на Google Translate и вставить в свой IP, и затем нажмите на синий IP-адрес в правом окне, и это должно показать вам, если вы успешно перенаправили ваш веб-сервер.
источник
Чтобы разрешить входящий трафик через порт SSH по умолчанию (22), вы можете указать iptables разрешить вход всего трафика TCP на этот порт.
Возвращаясь к списку выше, вы можете увидеть, что это говорит iptables:
-A INPUT
), чтобы мы смотрели на входящий трафик-p tcp
).--dport ssh
).-j ACCEPT
).Надеюсь , что это работает для вас и вы можете добавить FTP - порты , которые 20-21, просто изменить
ssh
к20
и21
.источник
Я не уверен, что на этот вопрос нужны дополнительные ответы, но это довольно просто.
Установите OpenSSH или включите его из
raspi-config
Перейдите на домашнюю страницу вашего маршрутизатора / брандмауэров в моем случае 192.168.1.1
Найдите переадресацию портов или виртуальные серверы и добавьте что-то вроде следующего:
Начало внешнего порта: 1234 Окончание внешнего порта: 1234
Начало и конец внутреннего порта 22.
IP-адрес сервера - это статический IP-адрес вашего RPi в моем случае 192.168.1.50
Как только все настроено на стороне маршрутизатора, запишите ваш WAN IP, выполнив поиск вашего IP в Google.
Теперь вы должны быть в состоянии SSH к пи через Интернет. В моем случае я использую Chromebook и надёжную оболочку. Я ввожу имя пользователя в моем случае
pi@mywanip
и порт 1234.В основном правило брандмауэра на шаге 3 перенаправляет весь трафик через порт 1234 IP WAN на порт 22 IP внутренней сети.
источник
Я много боролся с настройкой SSH через интернет, пока не нашел этот простой метод:
http://raspctl.com
Просто зарегистрируйтесь и скопируйте и вставьте команды. Возможно, вам придется отредактировать файл конфигурации, но это все. Я проверял это сегодня, и он работает как шарм. Я тоже пробовал это делать с разными приложениями SSH для Android.
источник