Wie kann ich von einem anderen Netzwerk aus eine SSH-Verbindung zu Android herstellen? [abgeschlossen]

Ich verwende SSHDroid auf meinem nicht gerooteten Android-Gerät. Wenn sich mein SSH-Client auf Ubuntu oder Windows im selben WLAN-Netzwerk wie das Android befindet, kann ich über SSH eine Verbindung herstellen.

Ich möchte jedoch von einem Client wie Putty usw. von einem Computer, der sich nicht im selben Netzwerk befindet, eine Verbindung zum Gerät über SSH herstellen.

z.B. Wenn ich mich im selben WLAN-Netzwerk befinde, kann ich mit dem Befehl eine Verbindung über SSH herstellen

$ ssh root@192.168.1.3 -p 2222

aber wenn ich über ssh mit externer IP eine Verbindung herstelle, heißt es, dass die Verbindung abgelehnt wurde.

$ ssh root@112.79.41.234 -p 2222

Ich habe auch versucht, PortForward zu verwenden, um den externen Port an den internen weiterzuleiten. Aber es scheint nicht zu funktionieren. Kann mir jemand sagen, wie das geht, ohne das Gerät zu rooten?

Die folgenden Ressourcen können Ihnen helfen - askubuntu.com/questions/30080/…

Antworten (4)

Schnelle Antwort:

Sie müssen Ihr Android-Telefon nicht „rooten“ – sowohl es als auch SSH funktionieren ordnungsgemäß.


So lösen Sie das Problem:

Sie müssen „Portweiterleitung“ und „öffentliche IP-Adressen“ besser verstehen.

Die „Portweiterleitung“ muss dort stattfinden, wo das öffentliche Netzwerk („Internet“) auf das private Netzwerk trifft (WLAN-Netzwerk mit Android-Gerät). Dies ist normalerweise ein „Router“, könnte aber auch eine größere „Firewall“ sein.

Sie müssen dieses Detail herausfinden und hinzufügen, wenn Sie weitere Hilfe benötigen.

Obwohl die Portweiterleitung funktionieren wird, schlage ich es nicht vor.

Es ist an sehr feste Einschränkungen gebunden:

  • Verzichten Sie auf DHCP und verwenden Sie in jedem Netzwerk, in dem Sie arbeiten möchten, eine statische IP
  • Richten Sie Portweiterleitungsregeln auf jedem Router ein
  • Richten Sie dynamisches DNS für jedes Netzwerk ein
  • Wissen, in welchem ​​Netzwerk sich Ihr Android befindet

Lassen Sie Ihr Telefon besser mit demselben virtuellen privaten Netzwerk (VPN) verbinden und greifen Sie darüber zu. Oder verwenden Sie GTalkSMS für eine einfachere Einrichtung.

IP-Adresskonflikt kann festgestellt werden, überprüfen Sie zunächst, ob der Adresskonflikt das Problem war oder nicht.

Sehen Sie sich dazu bitte um

Überprüfen Sie in Bezug auf Ihr Netzwerk /var/log/messages auf Ethernet-Link-Up/Down (oder WLAN im Falle von Wireless). Versuchen Sie in diesem Fall, die Kabel auszutauschen.

Es ist kein einfaches Verbindungsproblem. Der Ethernet-Link ändert seinen Zustand nicht; Server ist per Ping erreichbar; ssh stellt gelegentlich eine einwandfreie Verbindung her, stellt dann scheinbar zufällig keine Verbindung her oder bestehende ssh-Sitzungen werden abgebrochen.

  • Ändern Sie den Adapter von DHCP auf statisch.
  • Versuchen Sie es mit ssh -v ip und überprüfen Sie die Ausgabe
Der Computer mit dem SSH-Client befindet sich hinter dem Router an meinem Arbeitsplatz und das Android-Gerät verwendet 3G-Internet. Kein Ethernet hier..

Sie könnten einen dynamischen DNS-Updater einrichten. Dadurch können Sie mit derselben Internet-IP-Adresse auf Ihr Android-Gerät zugreifen, egal wo Sie sich befinden. Sie benötigen ein Konto bei einem dynamischen DNS-Anbieter [1] und einen Android-SSH-Server, der ein DNS-Update-Tool enthält/unterstützt [2].

Anschließend wird Ihnen vom Dynamic-DNS-Anbieter eine feste IP-Adresse zugewiesen, die Sie überall dort verwenden können, wo Sie roamen. Netzwerkbeschränkungen (technische oder auferlegte) können Sie unter bestimmten Umständen immer noch daran hindern, auf Ihr Gerät zuzugreifen.

[1] Zum Beispiel DNS-o-matic . Es gibt einige kostenlose Anbieter.

[2] Der SSH-Server von Ice Cold Apps bietet explizit Unterstützung für dynamisches DNS. Auf der SSHDroid- Seite wird nichts erwähnt , aber Sie könnten sie abfragen.