Ich besitze ein HTC Desire S mit der Option, eine Verbindung über USB herzustellen und die Internetverbindung des Computers zu nutzen. Dies funktioniert gut unter Windows, aber ich habe Mühe, es in Ubuntu einzurichten. Wenn ich Internet-Passthrough aus dem USB-Menü auswähle, wird das USB1-Gerät erstellt und ich kann seine IP-Adresse anpingen. Ich habe verschiedene iptables-Konfigurationen ausprobiert und nat eingerichtet, bin mir aber nicht sicher, ob ich es richtig mache oder ob es eine zusätzliche Konfiguration geben muss ...
Vielen Dank für jede Hilfe.
linux
internet
reverse-tether
Blau grau
quelle
quelle
Antworten:
Das Folgende funktioniert für eine Weile, aber nur für den Browser.
Wenn Sie Ihr Telefon über USB anschließen und Internet-Passthrough wählen, sollten Sie ein neues RNDIS-Gerät (USB0 oder USB1) erwerben. Bearbeiten Sie für Ubuntu / etc / network / interfaces und fügen Sie die folgenden Zeilen hinzu:
Dies wird automatisch eine IP zuweisen, wenn das Gerät hinzugefügt wird. Wenn eine Netzwerkadresse nicht automatisch zu usb0 oder usb1 zugewiesen wird, müssen Sie dies manuell tun.
Dann müssen Sie NAT auf Ihrem Linux-Computer einrichten. So etwas wie:
Sie benötigen auch einen DNS-Server:
Dies funktioniert einige Minuten lang, aber nach einer Weile gibt das Telefon die Suche nach HTC Sync auf und trennt die Verbindung.
Für gerootete Telefone
Sie können eine permanente Verbindung herstellen, wenn Sie ein Root-Telefon haben (fre3vo hat für mich funktioniert). Führen Sie folgendes mit adb aus.
Aktivieren Sie den USB-Modus für Netzwerk und ADB:
Weisen Sie dem USB0-Gerät auf dem Telefon eine IP zu:
Fügen Sie eine Standardroute hinzu. Die IP sollte die IP sein, die usb0 unter Linux zugewiesen wurde:
Stellen Sie den DNS-Server ein. Dies ist Googles offener DNS-Server, aber es kann die IP Ihres Linux-Computers sein, wenn Sie einen DNS-Server haben:
quelle
phoneip=$(arp -n | grep usb | awk '{print $1}') echo -n -e "\x00\x02\x00\x00" | nc $phoneip 6000 > /dev/null
Der Hex-Wert von00 02 00 00
ist alles, wonach es sucht.netsh interface ip show config
Sie alle Schnittstellennamen anzeigen und dannnetsh interface ip show config name="Local Area Connection #2"
genau die SchnittstelleLocal Area Connection #2
abrufen, auf der sich der neue Adapter befindet. Sie können dies der Einfachheit halber umbenennen.A hat diese kleine Bash gemacht, um alles zu automatisieren. Schließen Sie einfach Ihr Telefon im Lademodus an Ihren Computer an und führen Sie diese Bash aus.
quelle
Da ich selbst keinen Zugriff auf den Linux-Computer habe, kann ich diese Lösung nicht testen, aber Sie können die hier beschriebenen Schritte ausprobieren (Google-Übersetzung aus dem Russischen) .
Kommentare zur Übersetzung:
Viel Glück!
quelle
Ok, hier ist genau das, was ich getan habe, kein Rooten von HTC gewünscht:
Setup bind9 und NAT etc ...
Hinweis: 1: Wenn Sie nur sudo echo 1> / proc / sys / net / ipv4 / ip_forward ausführen, erhalten Sie einen Berechtigungsfehler. Hier ist ein Skript für den Prozess 2: Sie können iptables genauer definieren, wie es die Dinge durchführt Hinzufügen von Parametern für bestimmte Geräte.
Schließen Sie jetzt Ihr Telefon an und wählen Sie "Internet-Durchgang".
Warten Sie, bis das Gerät in: angezeigt wird.
ifconfig
Überprüfen Sie, ob es sich auch in: befindet.arp
Ich musste das Gerät ausstecken und wieder einstecken, damit es in arp angezeigt wird. Wenn arp das Gerät nicht anzeigt, funktionieren die Dinge nicht richtig.
Das Gerät wartet darauf, dass HTC Sync ihm eine Nachricht sendet, damit Sie die HTC Syncs-Nachricht verspotten können:
Ich kann eine Version davon mit D-Bus schreiben, so dass der letztere Teil automatisch ausgeführt wird, wenn das Gerät eingesteckt wird usw.
Ok, hier ist meine Arbeit im Gange. Ich konnte auf d-bus nichts 'generisches' finden, also habe ich mich für eine Hack-Lösung mit udev entschieden. Das ist nicht perfekt, zum Beispiel wird der Befehl zweimal ausgeführt, also habe ich mich entschieden Ich muss sehen, ob ich die passenden Parameter ein bisschen besser filtern kann, außerdem eine Zeitüberschreitung für das letzte Skript hinzufügen, einfach einschleichen und sehen, ob ich arp durch etwas Besseres ersetzen kann, z. B. in / proc suchen
Hier ist meine .rules-Datei aus /etc/udev/rules.d, die ich erstellt habe
Sie können es so nennen, wie Sie möchten, aber NICHT MIT EINER ZAHL BEGINNEN, damit es als letztes ausgeführt wird.
Fügen Sie der Datei Folgendes als sudo hinzu, indem Sie einen Editor Ihrer Wahl usw. verwenden.
Grundsätzlich, wenn Sie diese 3 'rs nicht sehen,
Dann brauchen Sie zwei weitere Dateien, eine zum Verketten der anderen, da RUN von udev alles andere blockiert (obwohl es zuletzt ausgeführt wird !!) ... hmm ... jedenfalls:
Ich habe die Dateien zunächst in meinem Ausgangsverzeichnis "/ home / olli /" erstellt. Vergessen Sie also nicht, das Bit "/ home / olli /" zu ersetzen, wenn Sie die Dateien erstellen:
also für mich cd in mein heimatverzeichnis.
Erstellen Sie eine Datei mit dem Namen
mit folgenden Bestandteilen:
mach es ausführbar
Erstellen Sie eine andere Datei mit dem Namen
wie folgt
Mach es ausführbar:
Hoffentlich sollte ich bald eine schön aufgeräumte Version als pos haben. (wahrscheinlich morgen).
quelle
Für Usb Reverse Tethering mit Android und Linux ohne Rooting siehe meine Antwort hier
quelle