In den meisten Fällen können Sie bei Verwendung von Mobile Data aufgrund von CGNAT und Firewalls auf ISP-Ebene keine eingehende Verbindung herstellen , wie von acejavelin im Kommentar erläutert . Um das Problem im Detail zu kennen und wie es umgangen werden kann, lesen Sie Wie man über SSH über öffentliche 3G / 4G-IP eine Verbindung zu Android herstellt.
Wenn Sie Ihr Telefon jedoch über das Internet erreichen können, ist die Erweiterung dieses Zugriffs auf einen verbundenen Host (in Ihrem Fall PC) kein Problem. Die Portweiterleitung erfolgt mit Routern. Wenn Sie als Wi-Fi-Hotspot (oder mit USB-Tethering) verwendet werden, fungiert Ihr Telefon tatsächlich als Router.
WURZELLÖSUNG:
Um den Port weiterzuleiten, müssen Sie die DNAT (Destination Address Translation ) mit dem integrierten Firewall-User-Space-Tool des Linux-Kernels durchführen iptables
.
Stellen Sie zunächst sicher, dass der Kernel für die Weiterleitung des Internetverkehrs konfiguriert ist (bereits festgelegt, wenn der Hotspot aktiviert ist):
~# echo 1 >/proc/sys/net/ipv4/ip_forward
Angenommen, die vom Hotspot dem PC zugewiesene IP-Adresse lautet 192.168.43.10
und Sie möchten den SSH-Standardport ( 22
) weiterleiten :
~# iptables -t nat -I PREROUTING -p tcp --dport 22 -j DNAT --to 192.168.43.10
Dies ist die einfachste Form der Portweiterleitung.
Wenn die Standardrichtlinie der FORWARD-Kette in der FILTER-Tabelle nicht ACCEPT lautet, definieren Sie Regeln explizit, um die weitergeleiteten Pakete zu akzeptieren:
~# iptables -I FORWARD -p tcp -d 192.168.43.10 --dport 22 -j ACCEPT
Akzeptieren Sie bei Bedarf auch ausgehenden weitergeleiteten Datenverkehr.
NICHT-WURZEL-LÖSUNG:
Auf nicht gerooteten Geräten können Sie adb
einen anderen minimalen TCP / UDP-Server wie netcat
oder socat
für die Portweiterleitung verwenden. Beachten Sie, dass dies für Ports unter 1024 nicht funktioniert . So leiten Sie den Port weiter 2222
:
~$ adb reverse tcp:2222 tcp:2222
Oder am Telefon:
~$ nc -lk -p 2222 -e nc 192.168.43.10 2222
* nc
ist ein Busybox-Applet. Stellen Sie jedoch sicher, dass Sie die richtige Binärdatei erhalten. Es gibt mehrere Implementierungen von netcat
.
* Verwenden Sie die -u
Option, um den UDP-Port weiterzuleiten.
Jedoch nc
nimmt nur eine einzige Verbindung zu einem Zeitpunkt. Verwenden Sie socat
oder ncat
für erweiterte Optionen, z. B. von Termux:
~$ socat tcp-l:2222,fork,reuseaddr tcp:192.168.43.10:2222
Siehe Verwenden von Netcat für die Portweiterleitung .
Es gibt auch Apps wie Fwd (es ist Open Source, ich habe keine Zugehörigkeit), die für die Portweiterleitung gedacht sind.
QUELLE: