Мы собираемся развернуть некоторые шлюзы (Raspberrypi) в полевых условиях. Хотя мы пытаемся сделать их настолько надежными, чтобы от них не требовался удаленный доступ к ним, но поскольку это один из POC, мы принимаем меры для их удаленной отладки.
Настройка такова, что у нас есть RPI, который действует как агрегатор данных для других беспроводных устройств. Мы просто хотим получить доступ к журналу и запускать некоторые команды удаленно, если это необходимо. Теперь я использую ssh-сервер на своем RPI и слушаю 22 порт по умолчанию (мы можем изменить порт). Теперь этот RPI подключен к Wi-Fi-устройству Reliance JIO, чья секция переадресации портов выглядит следующим образом
Я использовал локальный порт и порт WAN как 22, а MAC-адрес в качестве MAC-адреса моего ноутбука Wifi. Теперь я получил свой публичный IP, используя приведенную ниже команду curl ipinfo.io/ip
. Теперь я использовал один из своих цифровых океанических серверов и пытался выполнить ssh с помощью ssh <username>@<IP> -p<PORT number which is 22>
of 22> , но все равно я не могу получить доступ к своей машине и не могу выяснить причина этого. Может ли кто-нибудь наставить меня или хотя бы указать на ошибку, которую я совершаю.
Примечание:- Также в настоящее время я использую ngrock
который разрешает только один процесс ngrok
и с помощью команды ./ngrok tcp 22
вы можете получить настроенный IP-адрес от ngrok и использовать его для доступа к системе, ничего не делая на маршрутизаторе. Это хорошо до тех пор, пока вы не тестируете на одной машине. Моя главная цель - написать небольшой скрипт на python, который продолжит публиковать текущий IP-адрес RPI на веб-сервере и обновлять IP-адрес в случае изменения. Затем я могу использовать тот же IP-адрес для ssh моей машины.
Edit-1 - я использовал онлайн-сканер портов canyouseeme.org и обнаружил, что порт 22 не открыт в моем устройстве Reliance Wifi, несмотря на то, что я перенаправил порт 22 (если это означает открытие порта 22). Также я попробовал то же самое с моим Dlink Router DIR-816. Ниже прикрепленное изображение и когда я использовал онлайн сканер портов, он говорит, что Error: I could not see your service on XX.XX.XX.XX on port (22)
Reason: No route to host
. Я использую ACT fibernet - один из широкополосных сервисов здесь, в Бангалоре. Когда я запустил traceroute
с одного из моих цифровых океанических серверов, я смог увидеть свой IP.
Edid -2 Как и предполагалось, я использовал другой порт WAN, попробовал сетевой сканер портов и connection timed out
же время ошибки соединения, истекло . Также вывод netstat -anutp | grep :22
- это $ netstat -anutp | grep :22
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 252 192.168.0.100:37043 XX.XX.XX.XX:22 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -
Есть ли вероятность того, что мой провайдер блокирует этот порт или любой входящий запрос порта. Но в то же время, когда я использовал ngrok
, все работает отлично. Проблема с ngrok в том, что его платный сервис и бесплатный тарифный план разрешают только один экземпляр, и я не хочу в конечном итоге платить 100 долларов только за ssh.