Update: Soweit ich es testen konnte, funktioniert das Script mit Android 1.5 (Cupcake), 1.6 (Donut) und 2.0 (Eclair).
Vorweg: Es sollte klar sein, dass normales "Notebook"-Surfen meistens um einiges Trafficintensiver ist. Immer darauf achten, nicht über seine Volumen zu kommen, falls vorhanden. Und unbedingt im Vertrag nachschauen ob Tethering erlaubt ist!
Nachdem ich jetzt ein HTC Magic habe, habe ich mich mal umgeschaut wie man sein Laptop unterwegs über sein Android Handy mit Internet versorgen kann.
Unter Windows kann man PDANet benutzen. Soll wohl funktionieren, aber ist aber nach der Trial-Phase nurnoch für HTTP zu benutzen.
Aber zum Glück habe ich Ubuntu 8.10 (Intrepid Ibex) auf meinem eeePC – Da kann man das ganze kostenlos mit nur wenigen Zeilen erledigen. Auch wenn diese Anleitung mit Ubuntu getestet wurde, sollte es auf so ziemlich jedem Linux System laufen auf dem auch openVPN läuft.
OpenVPN installieren
Ist über Aptitude schnell erledigt:
sudo aptitude install openvpn
Android SDK runterladen
Bitte besorgt euch immer die passende und aktuellste Version. Nachfolgend ist alles mit der (momentan) aktuellen Version 1.5 RC3 beschrieben (Auf die Version passend zum Handy-OS achten).
Hier gibt es die aktuelle Android SDK
Ladet euch die SDK runter und entpackt sie in einen Order eurer Wahl (bei mir ~/android-sdk) und kopiert das Programm adb in /usr/bin/:
sudo cp ~/android-sdk/tools/adb /usr/bin/adb sudo chmod a+x /usr/bin/adb
Der Rest der SDK kann gelöscht werden. Wir jetzt nicht mehr benötigt.
Android USB Debugging aktivieren
Damit wir auf das Handy zugreifen können, muss das USB Debugging aktiviert sein. Einfach über Einstellungen -> Anwendungen -> Entwicklung -> USB Debugging aktivieren.
Jetzt das Handy über USB an den PC anschließen. Mit folgendem Befehl können wir überprüfen ob das Handy richtig erkannt wird:
sudo adb devices
In der Liste sollte ein Device auftauchen. Die genaue ID ist bei jedem Handy unterschiedlich.
List of devices attached HTXXXXXXXXX device
AziLink installieren
Jetzt müssen wir AziLink auf dem Handy Installieren. Dieses Programm startet dann einen openVPN Server auf dem Handy, worüber wir dann die Internetverbindung beziehen.
Auf der offiziellen AziLink Seite gibt es immer die aktuellste Version. Ich werde hier mit Version 2.0.2 Arbeiten.
wget http://azilink.googlecode.com/files/azilink-2.0.2.apk wget http://azilink.googlecode.com/files/azilink.ovpn mv azilink.ovpn ~/azilink.ovpn sudo adb install azilink-2.0.2.apk
Damit ist AziLink auf dem Android installiert und sollte in der App-Liste stehen. Das Icon ist eine Motte.
Verbindungsscript erstellen
Jetzt brauchen wir nurnoch ein kleines Script welches automatisch die Verbindung aufbaut:
sudo nano /usr/bin/azilink
Folgendes eingeben:
Update 28.2.2010: Nachdem viele User ein Problem mit fehlenden Rechten zu haben scheinen seit Ubuntu 9.04, habe ich die Befehle unten mit sudo vorangesetzt. Es sollte jetzt deutlich weniger Probleme geben.
#! /bin/sh sudo adb forward tcp:41927 tcp:41927 sudo echo "nameserver 192.168.56.1" > /etc/resolv.conf sudo openvpn --config ~/azilink.ovpn
Jetzt noch kurz mit sudo chmod a+x /usr/bin/azilink den Code ausführbar machen und fertig.
Verbindung starten
Als erstes muss AziLink auf dem Handy den VPN starten. Dazu AziLink starten und "Service Active" auswählen.
Der Status sollte nun "Waiting for connection" sein.
Nach der Benutzung den Service auch wieder schließen, da er nur unnötigt Strom zieht.
Jetzt einfach mit dem Befehl azilink die Verbindung starten.
Mit Ctrl+C wird die Verbindung wieder geschlossen.
Schlusswort
Wie immer: Kommentare sind gerne erwünscht. Ich hoffe ich konnte mit der Anleitung helfen

Dein Script /usr/bin/azilink funktioniert so nicht, da ein normaler User normalerweise keine Rechte auf /etc/resolv.conf und für das Anlegen von TUN/TAP-Devices hat. Ich habe es ein wenig modifiziert:
#!/bin/sh
sudo adb forward tcp:41927 tcp:41927
sudo cp /etc/resolv.conf /etc/resolv.conf.pre_azilink
sudo sh -c 'echo "nameserver 192.168.56.1" >/etc/resolv.conf'
sudo openvpn –config ~/azilink.ovpn
sudo cp /etc/resolv.conf.pre_azilink /etc/resolv.conf
# EOF
Ansonsten super Anleitung, danke.
JK
Super Anleitung, vielen Dank!
Jetzt kann ich endlich unterwegs und auf Arbeit mit meinem Linux ins Netz!
Eine Sache wäre da noch anzumerken:
Es funktionieren unter Ubuntu (9.10) weder
-> sudo echo "nameserver 192.168.56.1" > /etc/resolv.conf
noch
-> sudo sh -c 'echo "nameserver 192.168.56.1" >/etc/resolv.conf'
Einfach als 'su' oder 'sudo' in die Datei per Hand eintragen und falls
wieder obsolet mit '#' auskommentieren!
Gruß
Fabian
Das Problem mit echo ist bekannt, aber so sollte es funktionieren:
echo “nameserver 192.168.56.1″ | sudo tee -a /etc/resolv.conf
Sorry, ohne die “”