Jetzt registrieren » Login
« Login

Passwort vergessen?

Reverse Tethering mit Mac OS X

Inhaltsverzeichnis

[Verstecken]

Vorbemerkungen

Tethering, also die Benutzung des Gerätes als Internetzugang, ist in Froyo mit eingebaut. Wer sein Android-Gerät aber über USB ins Internet schicken will, muss sich selbst behelfen.

Läuft auf dem Rechner, an dem der Android angestöpselt ist, ein Windows oder ein Linux, reicht es aus, USB-Tethering zu aktivieren und die Standardroute für den Internetverkehr zu verbiegen und seinen Rechner als Gateway einzutragen. Vielleicht muss dann noch die Konfiguration auf dem Rechner korrigiert werden.

Mac OS X

Apple hat den erforderlichen Netzwerkschnittstellen-Treiber für Remote-NDIS vor einiger Zeit aus dem Betriebssystem rausgeschmissen. Aber gerade dieses System wird von Android benutzt, um eine Netzwerkschnittstelle zur Verfügung zu stellen. Es gibt zwar einige auch freie Treiber, aber ich habe keinen zum Laufen bekommen.

Mit Hilfe von Tunnelblick kann man das Ziel aber dennoch erreichen, wenn man keine Scheu besitzt, die Kommandozeile zu benutzen.

Zunächst müssen Tunnelblick und adb aus dem Android-SDK auf dem Mac installiert werden. Dann legt man im Grundverzeichnis der SD-Karte eine Datei namens revtether.ovpn an:

pull
dev tun
ifconfig 192.168.156.1 192.168.156.2
proto tcp-server
port 41927
cipher none

als zweites auf dem Mac ~/Library/Application Support/Tunnelblick/Configurations/Tunnelblick/Configurations/Android.ovpn:

dev tun
remote 127.0.0.1 41927 tcp-client
ifconfig 192.168.156.2 192.168.156.1
push "route 0.0.0.0 0.0.0.0"
push "dhcp-option DNS 139.20.64.1"
ping 10
cipher none

Die dritte Datei ist ein Shellskript auf dem Mac zum Beispiel in ~/bin/revtether:

#!/bin/bash
$adb=/pfad/zu/adb #anpassen!

init() {
   $adb forward tcp:41927 tcp:41927
   open -a Tunnelblick
   $adb shell openvpn /sdcard/reverse-tether.ovpn
}


up() {
	interface="$1"
	sudo sysctl -w net.inet.ip.forwarding=1
	sudo natd -interface "$interface" -dynamic 
	sudo /sbin/ipfw -f flush
	sudo /sbin/ipfw add divert natd all from any to any via "$interface"
	sudo /sbin/ipfw add pass all from any to any
}


down() {
	$adb shell killall openvpn
	sudo ipfw -f flush
}


case $1 in
   up  ) up $2 ;;  # openvpn will pass tun/tap dev as $2
   down) down $2 ;;
   *   ) init ;;
esac

Dabei muss der Pfad zu adb angepasst werden. Das Skript muss noch Ausführungsrechte bekommen. Dazu startet man ein Terminal und gibt ein: chmod a+x ~/bin/revtether Nach Bestätigung mit der Return-Taste, ist das Skript einsatzbereit.

Die Verbindung baut man nun wie folgt auf:

  1. Im Terminal gibt man „~/bin/revtether init“ ein. Nach etwas Ladezeit erscheint ein schwarzer Tunneleingang in der Menüleiste. Außerdem erscheint im Terminal etwas vielleicht unverständlicher Wortsalat. Das ist die Ausgabe des OpenVPN-Servers auf dem Androiden. Wir interessieren uns für den nur wenns nicht klappt.
  2. Mit einem Klick auf den Tunnel in der Menüleite aktivieren wir die Konfiguration „revtether“. Zu dem Text im Termial-Fenster sollten ein paar neue Zeilen hinzugekommen sein.
  3. im Terminal-Fenster drücken wir Apfel+T. Es öffnet sich ein neuer Reiter, in dem wir dann die Konfiguration mit dem Kommando „~/bin/revtether up en0“ abschließen. Die Schnittstellenbezeichnung en0 muss ggf durch ein anderes Netzwerk-Gerät ersetzt werden. Auf meinem Mac kommen en0 für das Netzwerkkabel und en1 für WLAN in Frage.

Zum Deaktivieren Gibt man im Terminal dann „~/bin/revtether down ein.

Achtung!

Diese Methode ist noch nicht perfekt! Es werden folgende Dinge nicht richtig gemacht:

  • Die Firewall auf dem Mac wird umkonfiguriert und damit evtl. nutzlos
  • natd wird nicht beendet
  • es sind mehrere Schritte notwendig um eine Verbindung aufzubauen. Eine Ein-Klick/Ein-Doppelklick-Lösung wäre besser.
  • Vielleicht kann man die Shell umgehen (AppleSkript?)

Wer Ideen zur Verbesserung dieses Textes und seiner Verständlichkeit hat, ist herzlich willkommen, sie hier einzubringen.

Weitere Links

Anzeige

Bookmark / E-Mail

Klicke auf ein Icon, um diese Wiki-Seite zu bookmarken.
» Diesen Artikel per E-Mail versenden

AndroidPIT unterstützen

Gefällt Dir AndroidPIT? Wir freuen uns, wenn Du uns unterstützt. Wie das geht? Klicke einfach auf die unten stehenden Links.

Weiterempfehlen

Gefällt Dir AndroidPIT? Dann empfiehl uns bitte weiter!

Fragen / Hilfe

Du hast Fragen zu AndroidPIT oder willst noch mehr erfahren? Diese Links helfen Dir vielleicht weiter...

  Du liest gerade: Reverse Tethering mit Mac OS X - Android Wiki - AndroidPIT. Alle Zeitangaben in UTC+02:00. Es ist jetzt 11:19 Uhr.