Как подключиться к Android по SSH из другой сети? [закрыто]

Я запускаю 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 для переадресации внешнего порта на внутренний. Но, похоже, это не работает. Может кто подскажет как это сделать без рутирования устройства.?

Вам могут помочь следующие ресурсы - askubuntu.com/questions/30080/…

Ответы (4)

Быстрый ответ:

Вам не нужно «рутировать» свой телефон Android — и он, и SSH работают правильно.


Как решить проблему:

Вам нужно лучше понимать «переадресацию портов» и «общедоступные IP-адреса».

«Переадресация портов» должна происходить там, где общедоступная сеть («Интернет») встречается с частной сетью (сеть WiFi с устройством Android). Обычно это «маршрутизатор», но может быть и более крупный «брандмауэр».

Вам нужно узнать и добавить эту деталь, если вам нужна дополнительная помощь.

Хотя переадресация портов будет работать, я не предлагаю этого.

Это связано с очень жесткими ограничениями:

  • Откажитесь от DHCP и используйте статический IP-адрес в каждой сети, в которой хотите работать.
  • Настройте правила переадресации портов на каждом маршрутизаторе
  • Настройте динамический DNS для каждой сети
  • Узнайте, в какой сети находится ваш Android

Лучше подключить телефон к той же виртуальной частной сети (VPN) и получить к ней доступ через нее. Или используйте GTalkSMS для более простой настройки.

Конфликт IP-адресов можно устранить, сначала проверьте, был ли конфликт адресов проблемой.

Для этого, пожалуйста, посмотрите

Что касается вашей сети, проверьте /var/log/messages для подключения к Ethernet (или wlan в случае беспроводной связи). Если да, то попробуйте поменять кабели.

Это не простая проблема с подключением. Канал Ethernet не меняет своего состояния; сервер доступен через ping; ssh время от времени подключается безупречно, затем, по-видимому, случайным образом не подключается или существующая сессия ssh обрывается.

  • Смените адаптер с DHCP на статический.
  • Попробуйте ssh -v ip и проверьте вывод
Компьютер с ssh-клиентом находится за маршрутизатором на моем рабочем месте, а устройство Android использует 3G-интернет. Этернета здесь нет..

Вы можете настроить динамическое обновление DNS. Это позволит вам получить доступ к вашему устройству Android, используя один и тот же IP-адрес в Интернете, где бы вы ни находились. Вам понадобится учетная запись с поставщиком динамического DNS [1] и SSH-сервер Android, который включает/поддерживает инструмент обновления DNS [2].

Затем поставщик динамического DNS присвоит вам фиксированный IP-адрес, который вы сможете использовать, где бы вы ни находились. Сетевые ограничения (технические или наложенные) могут по-прежнему препятствовать доступу к вашему устройству в некоторых случаях.

[1] Например, DNS-o-matic . Есть довольно много бесплатных провайдеров.

[2] SSH Server от Ice Cold Apps явно предлагает поддержку динамического DNS. На странице SSHDroid ничего не упоминается , но вы можете запросить их.