Gerade wer Sportereignisse wie die Fußball Weltmeisterschaft 2018 auch auf dem Handy verfolgen will, kann das bequem mit Hilfe eines Raspberry Pi mit tvheadend und VPN via PPTPD tun.
Alles was man für dieses Setup braucht ist bereits vorhanden, wenn man tvheadend auf einem Raspberry Pi mit DVB-C einsetzt. Ist dies nicht der Fall, sollte erst der genannten Anleitung gefolgt werden, damit der Fernsehempfang selbst schon einmal funktioniert. Ist dies geschafft, geht es weiter mit der Einrichtung des PPTPD-Servers.
tl;dr
Für die Ungeduldigen: am Ende dieses Beitrags steht ein Raspberry Pi, der sowohl als tvheadend als auch als PPTPD-VPN-Server dient und so das Fernseh-Streaming jedes Programms aufs Smartphone erlaubt. Praktisch gerade für Sportereignisse wie Formel-1 oder Fußball-Weltmeisterschaft – natürlich auch Highlights wie das Finale zwischen Deutschland und Argentinien. Und so wird das ganze dann bedient:
Vorbereitung
Folgende Teile werden benötigt, um diese Anleitung umsetzen zu können (bzw. allgemein für Live-Fernsehen mit dem Raspberry Pi und tvheadend):
- RaspberryPi rev.B (35,- Euro bei Amazon)
- Gehäuse für RaspberryPi (5,50 Euro bei Amazon)
- 12 Watt USB-Netzteil von Apple, da diese gut funktionieren (11,99 Euro bei Amazon)
- Sundtek Media Pro III USB-TV-Stick (DVB-C, DVB-T, Analog, 89,90 Euro)
Ist der Raspberry Pi eingerichtet und streamt das Fernsehprogramm ins Heimnetzwerk kann man sich an den nächsten Schritt machen, der Einrichtung des PPTPD-VPN-Servers.
PPTPD-Server einrichten
Man mag jetzt einwenden, dass es sicherer wäre, OpenVPN zu verwenden. Dies ist jedoch deutlich komplizierter einzurichten und erfordert zusätzliche Apps. Prinzipiell kann man diese Anleitung jedoch auch mit OpenVPN umsetzen, ich stelle hier jedoch die Variante mit PPTPD vor. Benutzer einer Fritz!Box können die hier folgenden Schritte ebenfalls überspringen, sie können direkt die VPN-Funktionalität der Fritzbox verwenden. Alle anderen können weiterlesen:
Ich verwende Archlinux auf meinem Raspberry Pi, die Konfiguration lässt sich jedoch auch auf Raspbian übertragen (der Inhalt der .conf-Dateien bleibt gleich).
1. Pakete installieren
~# pacman -Syu ~# pacman -S pptpd
2. /etc/pptpd.conf editieren
In dieser Datei wird sowohl die weitergehende pptpd-options-Datei konfiguriert als auch der IP-Adressbereich des PPTPD-Servers und der PPTPD-Clients. In diesem Fall wird der VPN-Client eine IP zwischen 192.168.0.100 und .150 bekommen. Da diese im gleichen IP-Adressbereich wie der tvheadend-Server liegt, ist der Zugriff daraus problemlos möglich.
option /etc/ppp/pptpd-options localip 192.168.0.73 # IP des Raspberry Pi remoteip 192.168.0.100-150 # IP-Bereich der Clients
3. /etc/ppp/pptpd-options editieren
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp lock nobsdcomp novj novjccomp nologfd ms-dns 8.8.8.8 ms-dns 8.8.4.4
4. User in /etc/ppp/chap-secrets anlegen
In der chap-secrets-Datei können mehrere User angelegt werden, jeweils mit Login und Passwort. Dabei wird ein User pro Zeile eingetragen, diese Daten werden später für den Login benutzt.
<username1> pptpd <password1> * <username2> pptpd <password2> *
5. In /etc/sysctl.d/99-sysctl.conf IP-Forwarding aktivieren
Folgende Zeile muss in der sysctl.conf-Datei ergänzt werden, damit der Netzwerkzugriff und der Internetzugriff auch bei VPN-Verbindung funktioniert.
net.ipv4.ip_forward=1
Danach mit ~# sysctl --system
die Systemdateien neu laden, damit alle Änderungen übernommen werden. Zu guter letzt muss noch die iptables-Firewall angepasst werden, damit der Zugriff für PPTPD-Clients funktioniert:
iptables -A INPUT -i ppp+ -j ACCEPT iptables -A OUTPUT -o ppp+ -j ACCEPT iptables -A INPUT -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p 47 -j ACCEPT iptables -A OUTPUT -p 47 -j ACCEPT iptables -F FORWARD iptables -A FORWARD -j ACCEPT iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE iptables -A POSTROUTING -t nat -o ppp+ -j MASQUERADE
PPTPD-Server starten und Login testen
Ist alles eingerichtet, muss der PPTPD-Server gestartet werden und in den Systemstart-Scripten verankert werden, damit der VPN-Server auf dem Raspberry Pi bei jedem Systemstart automatisch geladen wird.
~# systemctl start pptpd.service ~# systemctl enable pptpd.service
Auf dem Smartphone muss nun eine VPN-Verbindung einrichtet werden, was bei Android 4.4 und iOS kein Problem ist und ohne zusätzliche Apps erledigt werden kann (deshalb verwenden wir auch PPTPD und nicht OpenVPN).
Hat die Einrichtung geklappt (für externen Zugriff sollte ein DynDNS-Service verwendet werden und der TCP-Port 1723 muss am Router auf die IP des Raspberry Pi weitergeleitet werden) kann man sich per VPN verbinden und hat dann Zugriff auf das lokale Netzwerk, als wäre man vor Ort. Dies ermöglicht verschiedene Anwendungsszenarien, zur Fußball-WM soll es um Streaming gehen. Alles, was es jetzt noch braucht, ist die passende Apps auf dem Smartphone oder Tablet.
tvheadend-Streaming auf Android
Um tvheadend mit Android zusammenzubringen, gibt es die kostenlose App TVHguide. Auf meinem Sony Xperia Z1 Compact benötigt es noch einen externen Media-Players (ich verwende BSPlayer in der kostenlosen Version).
Bei verbundenem VPN kann man die App genauso benutzen wie im heimischen Netzwerk – so lässt sich das DVB-C-Signal auch in den nächstgelegenen Biergarten oder ins Büro streamen: kein Spiel mehr verpassen! Selbst auf 7,2 Mbit/s limitiertes LTE von Congstar reicht aus, um das Fernsehbild zu übertragen. Begrenzt wird das Vergnügen nur durch das zur Verfügung stehende Datenvolumen, sodass man wenn möglich ein WLAN nutzen sollte.