Start Magazin Mit PageKite die Grenzen des Mobilfunknetz überwinden

Mit PageKite die Grenzen des Mobilfunknetz überwinden

Dank neuer Techniken wie LTE wird das Internet übers Handy immer schneller. Doch die Anschlüsse sind nach wie vor gegenüber herkömmlichen DSL-Anbindungen von der Funktion eingeschränkt. PageKite schlägt eine Brücke vom Internet auf Ihr Handy.

Viele PowerUser installieren auf Ihrem Androiden Serverdienste wie SSHDroid [1], FTPDroid [2] oder gar einen Webserver, um über das WLAN-Netzwerk direkt auf das Handy mit einem Dateimanager oder FTP/SSH-Client zugreifen zu können. So braucht man kein USB-Kabel aus der Schublade kramen oder dicke Brummer wie AirDroid bemühen, um ein neues Musikalbum auf das Smartphone zu kopieren.

Der Zugriff funktioniert jedoch nur innerhalb des eigenen WLAN-Netzwerks. Unterwegs – per UMTS – ist es durchweg unmöglich das eigene Smartphone aufzurufen, da die meisten Mobilfunkanbieter eingewählten Geräten nur eine IP aus dem Bereich der privaten Netzwerke zuteilen. Auf einem Android-Gerät erkennen Sie diese private IP (Siehe Kasten Private IP-Adresse) recht einfach über Einstellungen | Über das Telefon | Status | IP-Adresse.

Private IP-Adresse

IPs im Format 10.x.y.z, 172.16.x.y oder eben 192.168.x.y gehören zu den Bereichen privater IP-Adressen, die im Internet nicht geroutet werden. Es gibt bei diesen Adressen keine zentrale Verwaltung, sie können daher von jedem Nutzer innerhalb privater Netze wie etwa dem Firmen- oder WG-Netzwerk verwendet werden. Router sorgen mit ihren NAT-Tabellen für die Adressumsetzung und somit für die Verbindung zwischen LAN und Internet.

Abbildung 1: Das Android-Handy zeigt als IP eine Adresse aus dem Bereich der privaten Netze an.
Abbildung 1: Das Android-Handy zeigt als IP eine Adresse aus dem Bereich der privaten Netze an.

Um nun dennoch ein UMTS-Handy aus dem Internet ansprechen zu können, benötigen Sie eine in beide Richtungen durchlässige Brücke zwischen dem Netz des Mobilfunkanbieters und dem Internet, eine Brücke die Sie mit PageKite [1] schlagen können. PageKite ist ein Reverse-Proxy, der eine aktive Verbindung vom Handy zu einem PageKite-Server im Internet aufbaut und hält. Sowohl Client wie auch Server (Front- und Backend) sind Open-Source, zudem gibt es auch einen kommerziellen Dienst des Projekts.

Nicht nur am Handy

Das selbe Prinzip lässt sich nicht nur für Mobiltelefone anwenden, sondern auch für Computer-User die nicht "richtig" im Netz hängen. Sitzen Sie etwa im Studentenwohnheim, ohne die Möglichkeit eine Portweiterleitung einzurichten, dann erspart PageKite die Konfiguration von Reverse-SSH-Tunnels oder die Einrichtung eines eigenen VPNs. PageKite gibt es für Windows, MacOS X und natürlich Android und Linux und lässt sich recht einfach einrichten.

PageKite ist komplett freie Software, sowohl der Client- wie auch der Server-Part stehen unter der GPL. Sie können daher PageKite auf Ihrem eigenen Root-Server und unter einer eigenen Domain betreiben, so haben Sie volle Kontrolle über den Dienst. Da der Mittelsmann trotz Verschlüsselung durchaus in die Daten lauschen könnte, ist das für viele User sicherlich interessant. PageKite bietet seinen Service auch als kostenpflichtige Dienstleistung an, wer die Einrichtung eigener Serverdienste scheut, kann sich den Aufwand gegen eine relativ geringe Monatsgebühr ersparen.

Abbildung 2: Über das Web-Frontend von pagekite.net sehen Sie den Status Ihrer Verbindung ein.
Abbildung 2: Über das Web-Frontend von pagekite.net sehen Sie den Status Ihrer Verbindung ein.

Auf pagekite.net oder auch aus der App heraus legen Sie sich einen Account an. Der erste Monat ist kostenlos und beinhaltet einen Traffic von etwa 2,5 GByte. Danach gibt es verschiedene Tarife, wobei Sie in Ein-Dollar-Schritten an der Preisschraube drehen können. Je mehr Geld Sie investieren, desto länger läuft die Buchung, desto mehr Daten lassen sich übertragen und desto mehr Features sind im Preis enthalten. Entwickler freier Software, die etwas mit dem Internet zu tun hat, bekommen von PageKite einen kostenlosen Deal angeboten.

PageKite für Android

Am interessantesten ist PageKite sicherlich für das Android-Handy oder -Tablet. So können Sie zum Beispiel via SSH auf das Handy zugreifen (bei einem gerooteten Gerät auch auf das komplette Dateisystem), egal ob es gerade im WLAN- oder UMTS-Netz hängt. Oder Sie holen einen ausgedienten Androiden aus der Bastelschublade und setzen ihn als mobile IP-Webcam ein. Es lassen sich mit Sicherheit noch zahlreiche andere Usecases finden.

Abbildung 3: Alternativ zum kostenpflichtigen Dienst pagekite.net richten Sie selber einen Server ein.
Abbildung 3: Alternativ zum kostenpflichtigen Dienst pagekite.net richten Sie selber einen Server ein.

Die Android-App zu PageKite bekommen Sie wie gewohnt aus dem Google Play Store. Die App bietet Ihnen an einen Account bei PageKite.net zu erzeugen. Den Schritt müssen Sie nicht ausführen, allerdings braucht es dann einen von Ihnen betriebenen PageKite-Server im Internet, dazu finden Sie am Ende dieses Artikels weitere Informationen. In einem ersten Schritt sollten Sie jedoch den Weg über einen Testaccount bei PageKite.net gehen.

Nach der Aktivierung Ihres PageKite-Accounts müssen Sie die App auf dem Handy noch ein wenig einrichten. Damit Anfragen auf das Handy nicht ins Leere gehen, braucht es zudem noch einen SSH oder einen HTTP-Webserver. SSHDroid [2] oder der kWS Android Web Server [3] haben sich in der Vergangenheit bewährt. Beachten Sie bitte, dass SSHDroid von Haus aus so konfiguriert ist, dass der Dienst nur im WLAN funktioniert. In den Einstellungen finden Sie eine Option, die den Dienst auch ohne WLAN durchlaufen lässt. Das ist später wichtig, da SSH aus den Mobilfunknetz heraus aufgerufen werden soll.

Abbildung 4: SSHDroid ist ein kompletter und leistungsfähiger SSH-Server für Android-Geräte.
Abbildung 4: SSHDroid ist ein kompletter und leistungsfähiger SSH-Server für Android-Geräte.

Abbildung 5: In der Standardkonfiguration deaktiviert sich SSHDroid sobald man das WLAN verlässt.
Abbildung 5: In der Standardkonfiguration deaktiviert sich SSHDroid sobald man das WLAN verlässt.

In den Server Settings haben Sie die Möglichkeit die von Ihren Serverdiensten benutzen Ports einzutragen. Für SSH-Droid wären dies in der Standardeinstellung Port 22, für einen Webserver wie den erwähnten kWS Android Web Server die Ports Nummern 80 oder 443 für verschlüsseltes HTTPS. Eine Null setzt den jeweiligen Dienst zurück, so dass er wieder inaktiv wird und keine Weiterleitung via PageKite mehr stattfindet. Je nach App sieht das allerdings auch immer wieder anders aus, die IP-Webcam-App mit integriertem Webserver [4] schnappt sich zum Beispiel in ihrer Standardeinstellung die Port-Nummer 8080 für HTTP, so läuft das Programm dann auch ohne Root-Rechte. Mehr als die drei Dienste und Websockets lassen sich aktuell in PageKite allerdings nicht einrichten.

Abbildung 6: Damit die Weiterleitung auch klappt sollten im Hintergrund ein SSH- oder Webserver laufen.
Abbildung 6: Damit die Weiterleitung auch klappt sollten im Hintergrund ein SSH- oder Webserver laufen.

Abbildung 7: Bestimmen Sie über die Server Settings welche Ports weitergeleitet werden sollen.
Abbildung 7: Bestimmen Sie über die Server Settings welche Ports weitergeleitet werden sollen.

Danach sollten Sie PageKite mit Enable PageKite aus der Startseite der App heraus scharf schalten können. Sobald Sie die Meldung Kites are flying and all is well als Status auf dem Schirm haben, müsste Ihr Android-Smartphone oder -Tablet über die Adresse username.pagekite.me über SSH oder eben auch HTTP/HTTPS erreichbar sein. Voraussetzung ist natürlich, dass die entsprechenden Dienste auch auf dem Handy eingerichtet und gestartet wurden, sonst antwortet am anderen Ende niemand. Achten Sie aber bitte drauf die Dienste entsprechend zu sichern, SSHDroid hat nicht gerade gesunde Standardeinstellungen. Setzen Sie auf jeden Fall ein ordentliches Passwort für den root-User oder gehen am besten gleich den Weg über sichere Public-Keys.

Portweiterleitung zum PC

PageKite funktioniert nicht nur am Handy, sondern auch am PC. Die Software steht für Windows, MacOS X und Linux zur Verfügung, so dass sich PageKite auch selber als Client/Server betreiben lässt. Betreiber eines Root-Servers oder eines günstigen V-Servers können sich überlegen eine eigene PageKite-Instanz aufzusetzen. So sind Sie nicht von Dritten abhängig und sparen zudem auch Geld, kostenlos bietet PageKite.net seine Dienstleistung ja nicht an.

Unter Windows und MacOS müssen Sie zum Start der Anwendung Python [5] auf dem System installieren, auf Linux-Distributionen sollte alles nötige vorinstalliert sein. Das Programm an sich besteht nur aus einem Python-Skript, egal ob sie die Anwendung als Server oder Client einsetzen. Für Linux bietet PageKite fertige Binarys und RPM- wie auch DEB-Pakete an. Unter Debian/Ubuntu gibt es zudem auch eine Paketquelle, aus der sich die Anwendung wie gewohnt installieren lässt.

Abbildung 8: Unter Windows oder Linux starten Sie PageKite aus einem Terminalfenster heraus.
Abbildung 8: Unter Windows oder Linux starten Sie PageKite aus einem Terminalfenster heraus.

Den Befehl zum Starten des Dienstes auf einem Computer als Server sehen in Listing 1. In Listing 2 steht dazu passend der Aufruf des Clients, wobei dies nur ein Quick&Dirty-Test ist. Ausführliche Informationen zum Einrichten der Anwendung unter GNU/Linux finden Sie im Wiki PageKites [6]. Für den permanenten Betrieb einer eigenen PageKite-Instanz sollten Sie die Konfiguration sichern und auch am besten dafür sorgen, dass die Verbindung verschlüsselt wird.

Listing 1

PageKite als Server

$ pagekite --clean --isfrontend --ports=12345 --protos=http --domain=http,https:yourdomain.net:geheim
>>> Hello! This is pagekite v0.5.3a.
    This is a PageKite front-end server.
     - Listening on *:12345
    Connecting to front-end x.x.x.x:x ...
~<> Flying: http://yourdomain.net/
 << pagekite.py [flying]   Kites are flying and all is well.

Listing 2

PageKite als Client

$ pagekite --clean --frontend=yourdomain.net:12345 --service_on=http:yourdomain.net:localhost:80:geheim
>>> Hello! This is pagekite v0.5.3a.
    Connecting to front-end 11.222.33.444:12345 ...
     - Protocols: http
     - Ports: 12345
~<> Flying localhost:80 as http:/yourdomain.net/
 << pagekite.py [flying]   Kites are flying and all is well.

Ähnliches wie mit PageKite lässt sich auch mit einem Reverse-SSH-Tunnel oder einem VPN erreichen, allerdings braucht es dann für die Client-Seite immer spezielle Software und Konfigurationen. Der Vorteil von PageKite liegt darin, dass User direkt mit dem Browser oder einem SSH-Client auf das im UMTS-Netz hängende Handy (oder einen Rechner) zugreifen können, ohne dass vorher ein Tunnel initialisiert werden muss.

Kommentiere den Artikel

Please enter your comment!
Please enter your name here