Wie richte ich Reverse Tethering über USB ein?

125
  1. Mein HTC G2 ist gerootet und läuft mit Cyanogenmod 7
  2. Ich habe keinen Datenplan.
  3. Manchmal möchte ich das Telefon mit dem Internet verbinden, wenn kein WLAN verfügbar ist, um Market-Apps zu aktualisieren, SMS-Nachrichten in Google Mail zu sichern, neue Kontakte aus Google Mail zu synchronisieren usw. Dinge, die ich mit dem USB-Massenspeichermodus nicht tun kann.
  4. Ich habe einen mit dem Internet verbundenen Windows 7 Professional-Computer, darf jedoch kein Ad-hoc-WLAN einrichten. (Wenn ich das tue, werden sie mich bemerken und jagen.)

Kann das Telefon über die USB-Verbindung zum Computer auf das Internet zugreifen? Wenn ja, wie richte ich es ein?

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

Antworten:

46

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-Benutzer erforderlich), installieren Sie das APK, das von dieser Seite auf Ihrem Gerät verlinkt wurde, und schließen Sie es über USB an Ihren PC an. Führen Sie dann die Binärdatei auf Ihrem PC aus.

Es wird die Verbindung als VPN-Tunnel eingerichtet ( tun0standardmäßig) und Ihr Gerät sollte Sie auffordern, (a) SimpleRT das Erstellen / Überwachen der VPN-Verbindung zu ermöglichen und (b) zu entscheiden, ob sie ausgeführt werden soll, wenn das Gerät als konfiguriert ist bestimmtes USB-Zubehör (das ist, 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 .


Im Folgenden 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 von Android SDK

Für Linux: Nichts zu tun

SCHRITT 2:

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

SCHRITT 3:

Richten Sie auf einem Linux-Computer eine Bridge 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

Informationen zum Einrichten von Bridges finden Sie unter https://help.ubuntu.com/community/NetworkConnectionBridge

Überbrücken Sie unter Windows die beiden Netzwerkschnittstellen

SCHRITT 4:

Richten Sie die USB0-Schnittstelle Ihres Telefons ein. Sie müssen Optionen:

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

    ./adb shell netcfg usb0 dhcp
  2. Oder geben Sie in einem Root-Terminal Ihres Telefons Folgendes ein:

    su
    netcfg usb0 dhcp

Sie sollten nun in der Lage sein, über die Internetverbindung Ihres Computers eine Verbindung zum Internet auf Ihrem Telefon herzustellen.

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

Schritt 5:

Um das Reverse-Tethering zu beenden, entfernen Sie zunächst die Brücke zwischen den 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 WiFi-Netzwerk zu erstellen (mithilfe von Connectify ) und Ihr Gerät mit diesem zu verbinden: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -internet-your-phone.html

Matthew Read
quelle
3
In meinem Telefon sollte "netcfg usb0 dhcp" "netcfg rdnis0 dhcp" sein
diyism
3
Auf meinem Cyanogenmod 13 kann netcfg nicht gefunden werden :(
maf-soft
1
netcfg fehlt in LineageOS. Möglicherweise benötigen Sie stattdessen eine Busybox. android.stackexchange.com/questions/141900/…
Camille Goudeseune
Beim Laufen sudo ifconfig usb0 0.0.0.0 bekomme ich SIOCSIFADDR: Kein solches Gerät usb0: FEHLER beim Erhalten von Schnittstellen-Flags: Kein solches Gerät
user1917769
@ user1917769 Sie müssen herausfinden, wie Ihr Gerät die USB-Schnittstelle benennt, wenn sie unterschiedlich ist.
Matthew Read
19

Es gibt 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 handelt sich um eine eingeschränkte Testversion, die die Zeit einschränkt, in der Sie eine Verbindung herstellen können. Zumindest können Sie auf diese Weise testen, ob Ihr Gerät vollständig unterstützt wird über USD 5). Laut einem Artikel von 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 auch aufgefordert werden, eine Verbindung herzustellen, wenn eine USB-Verbindung gefunden wird.

Manuelle Methoden mit Wifi

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

mit dem System herumspielen und patchen

Verschiedene 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 für den Technikfreak.

Terminal und los

Eine andere nette Methode sollte jedoch nur 3 Leitungen im Terminal beinhalten und wird in einem Beitrag hier beschrieben , um eine Verbindung zu einem Ad-hoc-Wifi-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

Manipulieren einer Konfigurationsdatei

Eine weitere ganz einfache Methode wird auch beschrieben hier , und beinhaltet die Bearbeitung die wpa_supplicant.confDatei einmal (manuell hinzufügen Ihr Ad-hoc - Wireless - LAN - Netz).

Easy-Peasy-Methode

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

Izzy
quelle
7

Hallo! Dafür gibt es eine App

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

Ich bin ein bisschen verwirrt, wie man es benutzt. Bitte informieren Sie mich, wenn Sie es perfekt zum Laufen bringen.

LifeH2O
quelle
1
Dies erfordert anscheinend einen anderen Proxy als den Computer selbst und unterstützt nur das Surfen im Internet?
Endolith
1
Es heißt, es benutzt Port 8080, was es nicht unbedingt auf das Surfen im Internet beschränkt, oder? Ich dachte, Market könnte das gebrauchen, aber Market nutzt Post 5228.
Steve
3

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

Kein Rooten nötig!

Keine App-Installation erforderlich! * Dies ist nicht einmal möglich, 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. Entpacke es
  4. Führen Sie den Befehl aus

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

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

ffonz
quelle
Nur plattformübergreifende voll funktionsfähige nichtkommerzielle Antwort hier. Sogar Google Play verbindet (Android 9 Pie).
Cdlvcdlv
2

Ich habe ein gutes Tool für Reverse Tethering im XDA-Entwicklerforum 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.

Ebrahim Byagowi
quelle
Ich benutze diese Software, es funktioniert einwandfrei auf MT Galaxy s Duosgts7562. Ich kann alle mit dem Internet zusammenhängenden Dinge über Reverse Tethering nutzen.
Jasser
Um YouTube und andere Apps dieser Art zu verwenden, musst du auf die Schaltfläche "Hack installieren" klicken. Dann kannst du loslegen.
Jasser
2

Umgekehrte Tethering-Schritte für Android:

Hinweis: Funktioniert nur in einem gerooteten Android-Telefon.

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

  3. Auf dem Hostcomputer wird die USB-Tethering-Verbindung möglicherweise vom Netzwerkmanager erkannt.
    Sein Name wird so etwas wie "Kabelverbindung 2" (oder 3) sein.
    Sie müssen "IPV4 / Methode" in "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

Nun, wie erläutert hier am Ende der Schritt 1 müssen Sie ändern iptablesmit sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Aber ... erlauben Sie dem Netzwerkmanager, dies zu tun, wenn dies möglich ist.

  1. Auf einem Android-Gerät können Sie diese Befehle über ein dort vorhandenes Terminal suoder über ADB von Ihrem Host-Computer aus ausführen :

    $ 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 erwünscht ist (z. B. "Webkey für 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 auf dem Android-Handy funktionieren.

Um zu überprüfen, am adb shellAndroid Terminal, versuchen Sie den Befehl ping www.google.com.

Für mich geht das.

DreamCoder
quelle
1
Das 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}]
Matthew Read
1
@MatthewLesen Sie den Befehl ist falsch, es ist eigentlich ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, übrigens zu sehen, dass alle Schnittstellen netcfgallein sind. Ähnliche Anweisungen finden Sie hier
Aquarius Power
2

Für nicht gerootete 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 vorhanden ist, sollte darauf hingewiesen werden, dass es noch eine weitere Option gibt:

Ich suchte nach einer Reverse-Tethering-Lösung, die auf meinen Geräten ohne Root-Zugriff und mit einem MacBook funktioniert, konnte jedoch nichts finden. Schließlich begann ich, meine eigene Lösung zu entwickeln. Das Ergebnis ist eine App, die auf Geräten mit Android 4.0 oder höher auf der Client-Seite und allen wichtigen Desktop-Betriebssystemen auf der Host-Seite funktioniert.

Die ReverseTethering NoRoot-App

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

FD_
quelle
1
Ich konnte dies nicht auf Windows oder Ubuntu verbinden, aber es schien auf OSX zu funktionieren.
Matthew Read
@MatthewRead Schicken Sie mir eine E-Mail und ich werde mein Bestes geben, damit es unter Windows und Ubuntu funktioniert.
FD_