Wie richte ich Reverse-Tethering über USB ein?

  1. Mein HTC G2-Telefon ist gerootet und führt Cyanogenmod 7 aus
  2. Ich habe keinen Datentarif.
  3. Manchmal möchte ich das Telefon mit dem Internet verbinden, wenn kein Wi-Fi vorhanden ist, um Market-Apps zu aktualisieren, SMS-Nachrichten in Gmail zu sichern, neue Kontakte von Gmail zu synchronisieren usw. Dinge, die ich mit dem USB-Massenspeichermodus nicht tun kann.
  4. Ich habe einen Windows 7 Professional-Computer, der mit dem Internet verbunden ist, aber ich darf kein Ad-hoc-Wi-Fi-Netzwerk einrichten. (Wenn ich das tue, werden sie es bemerken und mich jagen.)

Gibt es eine Möglichkeit für das Telefon, über die USB-Verbindung zum Computer auf das Internet zuzugreifen? Wenn ja, wie stelle ich es ein?

Dies sieht nach einer Teillösung aus: forum.xda-developers.com/showthread.php?t=1371345

Antworten (7)

Ich habe kürzlich SimpleRT entdeckt, das sehr gut mit Linux (und anscheinend auch OSX) funktioniert. Aktivieren Sie einfach das USB-Debugging auf Ihrem Gerät (kein Root erforderlich), installieren Sie das von dieser Seite verlinkte APK auf Ihrem Gerät und verbinden Sie es über USB mit Ihrem PC und führen Sie dann die Binärdatei auf Ihrem PC aus.

Es richtet die Verbindung als VPN-Tunnel ein ( tun0standardmäßig) und Ihr Gerät sollte Sie auffordern, (a) SimpleRT zu erlauben, die VPN-Verbindung zu erstellen/zu überwachen, sowie (b) ob es ausgeführt werden soll, wenn das Gerät als konfiguriert ist bestimmtes USB-Zubehör (was die Binärdatei tut).

Das Projekt enthält keine vorgefertigte Binärdatei, daher habe ich eine hochgeladen, die ich für Ubuntu erstellt habe (Datei wird heruntergeladen).


Nachfolgend finden Sie eine manuelle Methode, die unter Linux oder Windows funktionieren sollte: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2

SCHRITT 1:

Für Windows: Installieren Sie USB-Treiber vom Android SDK

Für Linux: Nichts zu tun

SCHRITT 2:

Auf Nexus One: USB-Kabel anschließen und USB-Tethering aktivieren. Sie sollten unter Linux oder Windows eine neue Netzwerkschnittstelle sehen.

SCHRITT 3:

Richten Sie auf einem Linux-Computer eine Brücke ein:

# usb0 is the new network interface
# eth0 is the main interface connected to internet (or a gateway)

sudo ifconfig eth0 0.0.0.0  
sudo ifconfig usb0 0.0.0.0  
sudo brctl addbr br0  
sudo brctl addif br0 eth0  
sudo brctl addif br0 usb0  
sudo ifconfig br0 up  
sudo dhclient br0

Siehe https://help.ubuntu.com/community/NetworkConnectionBridge zum Einrichten von Bridges

Überbrücken Sie unter Windows die beiden Netzwerkschnittstellen

SCHRITT 4:

Richten Sie die USB0-Schnittstelle Ihres Telefons ein. Sie haben zwei Möglichkeiten:

  1. Führen Sie auf Ihrem Computer Folgendes aus:

    ./adb shell netcfg usb0 dhcp
    
  2. Oder geben Sie in einem Root-Terminal auf Ihrem Telefon Folgendes ein:

    su
    netcfg usb0 dhcp
    

Sie sollten jetzt auf Ihrem Telefon über die Internetverbindung Ihres Computers eine Verbindung zum Internet herstellen können.

Versuchen Sie, www.google.com zu pingen , um sicherzugehen!

SCHRITT 5:

Um das Reverse-Tethering zu beenden, entbrücken Sie zunächst die Schnittstellen auf Ihrem Computer:

sudo ifconfig eth0 down  
sudo ifconfig usb0 down  
sudo ifconfig br0 down  
sudo brctl delbr br0  
sudo ifconfig eth0 up  
sudo dhclient eth0

Deaktivieren Sie dann auf Ihrem Telefon die Option USB-Tethering!

Sie können auch Windows verwenden, um ein WLAN-Netzwerk zu erstellen (mit Connectify ) und Ihr Gerät damit verbinden: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -internet-ihr-telefon.html

In meinem Telefon sollte "netcfg usb0 dhcp" "netcfg rdnis0 dhcp" sein.
Auf meinem Cyanogenmod 13 kann netcfg nicht gefunden werden :(
netcfg fehlt weiterhin in LineageOS. Möglicherweise benötigen Sie stattdessen busybox. android.stackexchange.com/questions/141900/…
Beim Ausführen sudo ifconfig usb0 0.0.0.0erhalte ich SIOCSIFADDR: No such device usb0: FEHLER beim Abrufen von Schnittstellenflags: No such device
@ user1917769 Sie müssen herausfinden, wie Ihr Gerät die USB-Schnittstelle benennt, wenn sie anders ist.
SimpleRT funktioniert bei mir nicht, der Fehler lautet „Gerät ist kein unterstütztes Zubehör! Grund: Ressource ausgelastet“. Könnte an der unterschiedlichen Art und Weise liegen, wie Linux heutzutage auf USB-Geräte zugreift. Die Lösung könnte hier sein , aber ich habe es nicht versucht.

Es gibt noch einige weitere Möglichkeiten – aber alle, die ich kenne, erfordern ein gerootetes Gerät.

Verwenden der Reverse Tether- App

Erstens gibt es eine App namens Reverse Tether , die kostenlos im Play Store erhältlich ist (es ist eine begrenzte Testversion, die die Zeit beschränkt, in der Sie verbunden sein können – aber zumindest können Sie auf diese Weise testen, ob Ihr Gerät vollständig unterstützt wird; die Vollversion ist ungefähr USD 5). Laut einem Artikel bei AndroidAuthority sollte die Einrichtung so einfach wie 1-2-3 sein: Stecken Sie das USB-Kabel ein, starten Sie die App, lassen Sie sie automatisch konfigurieren (manuelle Konfiguration ist ebenfalls verfügbar) – und los geht's. Sie können sich auch fragen lassen, ob Sie eine Verbindung herstellen möchten, wenn eine USB-Verbindung gefunden wird.

Manuelle Methoden mit WLAN

Ich weiß, das ist kein USB - aber der Vollständigkeit halber (und um Alternativen zu geben) dachte ich, ich könnte diese auch hinzufügen:

am System herumfummeln und herumflicken

Mehrere manuelle Methoden sind ebenfalls verfügbar (und zB bei XDA beschrieben ) – aber sie sind meist technisch komplex und erwarten, dass Sie Systemdateien patchen; nicht für den Alltagsnutzer, sondern eher für den Technikfreak.

Terminal und los

Eine andere nette Methode sollte jedoch nur 3 Leitungen im Terminal umfassen und wird in einem Beitrag hier beschrieben , um eine Verbindung zu einem Ad-hoc-WLAN-Netzwerk herzustellen. Grundsätzlich sollte es so gehen:

su
ifconfig wlan0 up
iwconfig mode auto;
iwconfig wlan0 essid "your SSID" channel 11 mode auto
ifconfig wlan0 10.0.0.x netmask 255.255.255.0

Manipulation einer Konfigurationsdatei

Eine weitere recht einfache Methode wird hier ebenfalls beschrieben und beinhaltet das wpa_supplicant.confeinmalige Bearbeiten der Datei (manuelles Hinzufügen Ihres Ad-hoc-WLAN-Netzwerks).

Easy-Peasy-Methode

Muss ich das wirklich sagen? Verwenden Sie einen WLAN-Router. Es gibt sogar einige kleine "Reiserouter" für weniger als 50 USD. Und dann verbinden Sie Ihr Telefon so, wie Sie es mit anderen WLAN-Netzwerken verbinden ...

Ich weiß, dass dies eine noch spätere Antwort ist, aber es ist erwähnenswert.

Kein Rooten erforderlich!

Keine App-Installation erforderlich!* Was nicht einmal möglich ist, wenn Sie keine andere Internetverbindung haben.

Es gibt ein Projekt namens gnirehtet .

  1. Installieren Sie adb auf dem Host-PC (Windows/Linux/Mac)
  2. Laden Sie die gnirehtet-Zip-Datei auf den Host herunter
  3. Entpacken Sie es
  4. Führen Sie den Befehl aus

Das ist es! Weitere Informationen finden Sie in der Readme-Datei von gnirehtet auf ihrer Website.

*=Hinter den Kulissen wird über die USB-Verbindung eine apk-Datei auf Ihrem Gerät installiert.

Nur plattformübergreifende, voll funktionsfähige, nichtkommerzielle Antwort hier. Sogar Google Play verbindet sich (Android 9 Pie).
@cdlvcdlv: Es gibt keinen Grund, warum es nicht sein sollte :) FWIW, dies verwendet die Android VPN API, also sollte alles über TCP/IPv4 oder UDP/IPv4 funktionieren. (IPv6 scheint nicht unterstützt zu werden)

Hey! dafür gibt es eine app

Android-USB-Portweiterleitung
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Ich bin etwas verwirrt, wie man es benutzt, bitte informieren Sie mich, wenn es perfekt funktioniert.

Dies erfordert anscheinend einen anderen Proxy als den Computer selbst und unterstützt nur das Surfen im Internet?
Es sagt, dass es Port 8080 verwendet, was es nicht unbedingt auf das Surfen im Internet beschränkt, oder? Ich dachte, Market könnte dies verwenden, Market verwendet jedoch Post 5228.

Ich habe im xda-developers-Forum ein gutes Tool für Reverse-Tethering gefunden. Es heißt Android Reverse Tethering . Es funktioniert mit Windows und erfordert ein gerootetes Telefon.
Es funktioniert gut auf meinem HTC Desire HD mit MIUI v4.

Ich verwende diese Software, sie funktioniert einwandfrei auf mt galaxy s duosgts7562. Ich kann alle internetbezogenen Dinge über Reverse Tethering nutzen.
Um YouTube und andere solche Apps zu verwenden, müssen Sie auf die Schaltfläche "Hack installieren" klicken, dann können Sie loslegen.

Android-Reverse-Tethering-Schritte:

Hinweis: Funktioniert nur in einem gerooteten Android-Telefon.

  1. Schließen Sie das Android-Gerät über USB an.
  2. USB-Tethering aktivieren. Gehen Sie dazu zu Einstellungen → Mehr... → Tethering & mobiler Hotspot → USB-Tethering .

  3. Auf dem Host-Computer kann die USB-Tethering-Verbindung vom Netzwerkmanager erkannt werden.
    Sein Name wird so etwas wie "Kabelverbindung 2" (oder 3) sein.
    Sie müssen „IPV4/Methode“ auf „Für andere Computer freigegeben“ ändern.

3.1. Ohne den Netzwerkmanager müssen Sie dies manuell tun:

    $ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 
    $ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Jetzt müssen Sie, wie hier am Ende von Step1iptables erklärt, mit modifizieren sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Aber ... ziehen Sie es vor, es dem Netzwerkmanager zu überlassen, wenn dies möglich ist.

  1. Auf einem Android-Gerät können Sie diese Befehle mit einem Terminal sudort oder von Ihrem Host-Computer mit ADB ausgeben:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Wenn die IP-Adresse nicht abgerufen wird oder wenn Sie eine Anwendung verwenden, für die eine statische IP-Adresse wünschenswert ist, z. B. die App „Webkey for Android“, weisen Sie sie manuell zu:

    $ adb shell su -c "ifconfig rndis0 10.42.0.2 netmask 255.255.255.0"
    $ adb shell su -c "route add default gw 10.42.0.1 dev rndis0"
    

Jetzt würde das Internet im Android-Telefon funktionieren.

Versuchen Sie zur Überprüfung am adb shelloder Android-Terminal den Befehl ping www.google.com.

Für mich geht das.

Die netcfg meines Geräts scheint eingeschränkter zu sein und die manuelle Version von Schritt 4 schlägt fehl:no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
@MatthewRead der Befehl ist falsch, es ist eigentlich ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, übrigens, alle Schnittstellen zu sehen, ist netcfgallein. ähnliche Anweisungen finden Sie hier

Für ungerootete Geräte

Ich weiß, dass dies eine späte Antwort ist, aber da alle vorhandenen Antworten darauf hindeuten, dass USB-Reverse-Tethering nur möglich ist, wenn entweder Ihr Gerät gerootet ist oder Systemunterstützung für Reverse-Tethering bietet, wäre es sinnvoll, darauf hinzuweisen, dass es eine weitere Option gibt:

Ich suchte nach einer Reverse-Tethering-Lösung, die auf meinen nicht gerooteten Geräten und mit einem MacBook funktionieren würde, aber ich konnte einfach nichts finden. Irgendwann fing ich an, meine eigene Lösung zu entwickeln. Das Ergebnis ist eine App, die auf Geräten mit Android 4.0 oder höher auf der Clientseite und allen wichtigen Desktop-Betriebssystemen auf der Hostseite funktioniert.

Die ReverseTethering NoRoot-App

Die App ist bei Google Play verfügbar: ReverseTethering NoRoot

Ich konnte dies nicht unter Windows oder Ubuntu verbinden, aber es schien unter OSX zu funktionieren.