Raspberry Pi: WM 2018 selbst aufs Handy streamen

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):

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
PPTPD-VPN Einrichtung unter Android 4.4.2
PPTPD-VPN Einrichtung unter Android 4.4.2

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

TVHguide für Android: tvheadend-Client
TVHguide für Android: tvheadend-Client

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.