Beim Tethering mit meinem Telefon treten Probleme beim Weiterleiten von Verbindungen von außerhalb meines Netzwerks auf. Ich habe ein schlechtes Verständnis für Router und Netzwerke im Allgemeinen. Bitte nehmen Sie Kontakt mit mir auf.
Mein Android-Gerät ist direkt mit dem Internet verbunden. Um den Zugriff auf meinen Computer von der Außenwelt über das Android-Gerät zu ermöglichen, verwende ich derzeit die kostenlose App Port Forwarder. Mein Telefon ist gerootet, sodass ich über die erforderliche Berechtigung verfüge. Der Port, an dem ich Verbindungen auf dem Server abwickle, ist 80. Wenn ich mit auf die IP-Adresse des Servers (innerhalb des Netzwerks) <local_ip.addr.ess.here>:80
zugreifen kann, kann ich darauf zugreifen, damit dies funktioniert.
Das Problem ist, wenn ich versuche, von außerhalb des Netzwerks darauf zuzugreifen. Die App fordert mich auf, die Quelle auf 80 und das Ziel auf einen beliebigen Wert festzulegen (Beispiel 8080). Natürlich habe ich es auf 80 gesetzt, da der Server das hört. Also versuche ich von außen mit auf den Server zuzugreifen, <phone.public_ip.adr.ess>:80
aber es funktioniert nicht.
Wie Sie bemerkt haben, habe ich keine Ahnung, was ich tue, und es war selbst für Standardrouter schwierig, Anleitungen zu finden. Hat jemand diese App erfolgreich genutzt und könnte mir vielleicht helfen? Ich habe wahrscheinlich wichtige Informationen aus Unwissenheit ausgelassen. Wenn ja, lassen Sie es mich wissen und ich werde die Frage aktualisieren.
quelle
192.168.*.*
, manchmal aber auch172.*.*.*
oder10.*.*.*
siehe Wikipedia ), ist sie nur in Ihrem lokalen Netzwerk sichtbar und kann nicht direkt von der "Außenwelt" aus aufgerufen werden. Die Einstellungen für die Portweiterleitung in Ihrem Router sind hier erforderlich und werden unter ServerFault besser erläutert .adb logcat
) zu konsultieren, während Sie versuchen, von außen darauf zuzugreifen, um festzustellen, ob sie zumindest Ihr Gerät erreichen und möglicherweise einige Hinweise protokollieren.Antworten:
Ich bin nicht sicher, welche Version Sie ausführen. Hier ist mein Rat. Die Ursache, die Sie wahrscheinlich blockiert haben, liegt an der Firewall von Android und der strengen Se-Linux-Richtlinie.
Da Sie über einen vollständigen Root-Zugriff verfügen, können Sie eine Shell mit ADB abrufen und dies überprüfen. Geben Sie ein
su -
und Sie gelangen in root. Ich verwende TerminalEmulator, aber Sie können native verwenden, wenn es mit dem Betriebssystem geliefert wird.Wenn ich Sie richtig verstanden habe, verhält sich Ihr Telefon im Tethering-Modus wie ein Router. Dies ist also erforderlich, um Pakete weiterzuleiten:
echo 1 > /proc/sys/net/ipv4/ip_forward
Sehen Sie, ob das hilft. Höchstwahrscheinlich müssen Sie mit iptables spielen und Port 80.443 am Tethering-Port zulassen. Dies ist keine vollständige Antwort, aber es ist zu lang, um sie als Kommentar zu veröffentlichen.
quelle
Die Antwort ist, dass Ihr Provider Port 80 blockiert. Wenn Sie jedoch zu Port 443 wechseln, kann er diesen nicht blockieren, da für Port 443 die bidirektionale Kommunikation entsperrt sein muss, damit https Antworten senden und empfangen kann. Ein Wechsel von http zu https: // sollte daher wahrscheinlich Ihr Problem beheben.
quelle