Die Umkehrung der Tethering-Funktion von Linux zu Android war in der Vergangenheit ein komplexer Prozess, der den Einsatz von IP-Tabellen, Brückenverbindungen und anderen anspruchsvollen Werkzeugen erforderte. Ein engagierter Entwickler hat die Reverse-Tethering-Methode jedoch deutlich vereinfacht.
Wir stellen Ihnen Gnirehtet vor! Dieses experimentelle Programm arbeitet im Hintergrund und ermöglicht die Einrichtung eines funktionierenden USB-Reverse-Tethering-Systems, mit dem Sie die Verbindung von Linux zu Android umkehren können.
Wichtig: Bevor Sie diese Anleitung befolgen, stellen Sie sicher, dass Ihr Android-Gerät über Root-Zugriff verfügt. Ohne Root-Rechte werden viele der von Gnirehtet benötigten Operationen nicht ordnungsgemäß funktionieren.
Der Root-Zugriff auf Android-Geräte ist heute einfacher als je zuvor, und für viele Geräte gibt es detaillierte Anleitungen. In den XDA-Foren finden Sie weitere Informationen dazu.
Android-Entwicklungstools installieren
Die Reverse-Tethering-Funktion mit Gnirehtet basiert auf den Android-Entwicklungstools. Bevor Sie diese Anleitung weiterverfolgen, müssen Sie diese unter Linux installieren. Die meisten Linux-Distributionen machen dies glücklicherweise zu einem einfachen Vorgang. Öffnen Sie ein Terminal und folgen Sie den Anweisungen für Ihr Betriebssystem:
Installationsbefehle für verschiedene Linux-Distributionen
Ubuntu | sudo apt install android-tools |
Debian | sudo apt-get install android-tools |
Arch-Linux | sudo pacman -S android-tools |
Fedora | sudo dnf install android-tools |
OpenSUSE | sudo zypper in android-tools |
Generische Linux-Systeme
Google unterstützt die Linux-Plattform sehr gut, wodurch das Android SDK-Toolkit leicht zugänglich ist. Sie können es auf Ihrem Betriebssystem installieren, indem Sie die offizielle Downloadseite besuchen. Entpacken Sie das heruntergeladene Archiv und befolgen Sie die Anweisungen.
Gnirehtet installieren
Gnirehtet ist auf Github verfügbar. Sie können den Quellcode herunterladen und selbst kompilieren. Einfacher ist es jedoch, die vorkompilierte Version der Software von der Release-Seite herunterzuladen. Dort stehen eine Java- und eine Rust-Version zur Verfügung. Für eine einfachere Anwendung empfehlen wir die Rust-Version, da keine Java-Laufzeitumgebung benötigt wird.
Hinweis: Wenn Sie sich für die Java-Version entscheiden, benötigen Sie die Java Runtime Environment unter Linux.
Um die aktuellste Version von Gnirehtet herunterzuladen, öffnen Sie ein Terminal und verwenden Sie das `wget`-Tool.
wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-rust-linux64-v2.2.1.zip
Alternativ können Sie die Java-Version mit dem folgenden Befehl herunterladen:
wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-java-v2.2.1.zip
Nachdem Sie Gnirehtet heruntergeladen haben, extrahieren Sie den Inhalt der ZIP-Datei mit dem `unzip`-Tool.
unzip gnirehtet-rust-linux64-v2.2.1.zip
oder
unzip gnirehtet-java-v2.2.1.zip
Öffnen Sie den Dateimanager, navigieren Sie zum Ordner „Gnirehtet“. Kopieren Sie die Datei `gnirehtet.apk` auf Ihr Android-Gerät und installieren Sie sie.
Öffnen Sie ein Terminal und wechseln Sie mit dem Befehl `cd` in den extrahierten Gnirehtet-Ordner.
cd ~/gnirehtet-*
Android für Tethering konfigurieren
Das Gnirehtet-Tool funktioniert erst nach einigen Anpassungen am Android-Betriebssystem. Öffnen Sie zunächst die „Einstellungen“. Gehen Sie zu „Über das Telefon“ und tippen Sie so lange auf die Build-Nummer, bis die Benachrichtigung „Sie sind jetzt ein Entwickler“ angezeigt wird.
Gehen Sie zu den Entwickleroptionen, suchen Sie nach „USB-Debugging“ und aktivieren Sie es.
Öffnen Sie ein Terminal und starten Sie den ADB-Server:
su -
oder
sudo -s
adb start server
Entsperren Sie Ihr Android-Gerät und aktivieren Sie das Kontrollkästchen „ADB-Verbindungen immer zulassen“. Kehren Sie dann zu dem Terminal zurück, in dem der ADB-Server ausgeführt wird, und beenden Sie ihn:
adb kill-server
Gnirehtet verwenden
Gnirehtet stellt eine Verbindung zwischen Ihrem Linux-PC und dem Android-Gerät über USB her. Um die Verbindung herzustellen, öffnen Sie ein Terminal und rufen Sie eine Root-Shell ab.
su -
oder
sudo -s
Mit einer Root-Shell kann die Gnirehtet-Anwendung problemlos mit dem Linux-System interagieren und über ADB mit dem Android-Gerät kommunizieren. Starten Sie nun die Verbindung:
./gnirehtet autorun
Wenn Sie die Verbindung mit Gnirehtet starten, erscheint auf Ihrem Android-Gerät eine neue Aufforderung zur VPN-Verbindung. Entsperren Sie es und akzeptieren Sie die Verbindung.
Nachdem die VPN-Verbindung akzeptiert wurde, leitet Gnirehtet den Internetverkehr erfolgreich über USB direkt an Ihr Android-Gerät weiter.
Wiederverbinden
Es kann vorkommen, dass USB-Kabel versehentlich getrennt werden. Wenn dies passiert, während der Gnirehtet-Dienst ausgeführt wird, wird die Verbindung beendet. Glücklicherweise kann man eine unterbrochene Verbindung mit einer Funktion des Programms sofort wiederherstellen.
Öffnen Sie ein Terminal, um die Verbindung wiederherzustellen, und greifen Sie entweder mit `su` auf eine Root-Shell zu oder führen Sie die folgenden Befehle mit `sudo` aus:
cd ~/gnirehtet-*
Führen Sie im Gnirehtet-Ordner das Programm mit dem `restart`-Flag aus. Dadurch wird das Reverse-Tethering-System neu gestartet.
sudo ./gnirehtet restart
Nachdem dieser Befehl ausgeführt wurde, entsperren Sie das Android-Gerät und akzeptieren Sie die VPN-Verbindung erneut, um den Neustartvorgang abzuschließen.
Verbindung beenden
Die Reverse-Tethering-Verbindung kann jederzeit beendet werden. Öffnen Sie dazu ein neues Terminal (lassen Sie das vorhandene, in dem die Verbindung läuft, geöffnet) und gehen Sie wie folgt vor:
cd ~/gnirehtet-*
sudo ./gnirehtet stop
In manchen Fällen beendet der Stop-Befehl die Reverse-Tethering-Verbindung nicht immer. Dann müssen Sie Gnirehtet zum Beenden zwingen.
Um Gnirehtet zu beenden, ermitteln Sie die Prozess-ID mit `pidof` und stoppen Sie das Programm dann mit dem Befehl `kill`:
pidof ./gnirehtet
sudo kill -9 Prozessnummer