Я запускаю SSHDroid на моем нерутированном устройстве Android. Когда мой SSH-клиент на Ubuntu или Windows находится в той же сети Wi-Fi, что и Android, я могу подключиться к нему через SSH.
Но я хочу подключиться к устройству через SSH с клиента, такого как шпатлевка и т. Д., С компьютера, который не находится в той же сети.
например. Если я в той же сети Wi-Fi, я могу подключиться через SSH с помощью команды
$ ssh root@192.168.1.3 -p 2222
но когда я подключаюсь через ssh с использованием внешнего IP, он говорит, что соединение отклонено.
$ ssh root@112.79.41.234 -p 2222
Я также пытался использовать PortForward для переадресации внешнего порта на внутренний. Но, похоже, это не работает. Может кто подскажет как это сделать без рутирования устройства.?
Быстрый ответ:
Вам не нужно «рутировать» свой телефон Android — и он, и SSH работают правильно.
Как решить проблему:
Вам нужно лучше понимать «переадресацию портов» и «общедоступные IP-адреса».
«Переадресация портов» должна происходить там, где общедоступная сеть («Интернет») встречается с частной сетью (сеть WiFi с устройством Android). Обычно это «маршрутизатор», но может быть и более крупный «брандмауэр».
Вам нужно узнать и добавить эту деталь, если вам нужна дополнительная помощь.
Хотя переадресация портов будет работать, я не предлагаю этого.
Это связано с очень жесткими ограничениями:
Лучше подключить телефон к той же виртуальной частной сети (VPN) и получить к ней доступ через нее. Или используйте GTalkSMS для более простой настройки.
Конфликт IP-адресов можно устранить, сначала проверьте, был ли конфликт адресов проблемой.
Для этого, пожалуйста, посмотрите
Что касается вашей сети, проверьте /var/log/messages для подключения к Ethernet (или wlan в случае беспроводной связи). Если да, то попробуйте поменять кабели.
Это не простая проблема с подключением. Канал Ethernet не меняет своего состояния; сервер доступен через ping; ssh время от времени подключается безупречно, затем, по-видимому, случайным образом не подключается или существующая сессия ssh обрывается.
Вы можете настроить динамическое обновление DNS. Это позволит вам получить доступ к вашему устройству Android, используя один и тот же IP-адрес в Интернете, где бы вы ни находились. Вам понадобится учетная запись с поставщиком динамического DNS [1] и SSH-сервер Android, который включает/поддерживает инструмент обновления DNS [2].
Затем поставщик динамического DNS присвоит вам фиксированный IP-адрес, который вы сможете использовать, где бы вы ни находились. Сетевые ограничения (технические или наложенные) могут по-прежнему препятствовать доступу к вашему устройству в некоторых случаях.
[1] Например, DNS-o-matic . Есть довольно много бесплатных провайдеров.
[2] SSH Server от Ice Cold Apps явно предлагает поддержку динамического DNS. На странице SSHDroid ничего не упоминается , но вы можете запросить их.
Мд Махбубур Рахман