Vorab, Alles was hier erklärt wird, kann man auch auf Github im offiziellen Repo nachlesen, aber bis alles lief und DynDns funktionierte, war es ein langer weg für mich. Darum habe ich es aufgeschrieben.

Für User mit einer dynamischen IP wird ein Account bei einem DynDns Anbieter wie duckdns.org, sowie am Besten, ein Router der DynDns unterstützt, benötigt. Die DynDns Lösung hakt bei mir noch ziemlich, betrachtet es als Work in Progress.

Des weiteren, braucht es einen Server im Land dessen Netflix Content man schauen möchte. Wenn es ein VPS werden soll, dann unbedingt darauf achten, dass dieser mit KVM oder XEN virtualisiert is, mit OpenVZ oder Linux VServer funktioniert diese Anleitung nicht. Achtet darauf, dass der Server mindestens 128MB RAM zur Verfügung hat, ich habe es mit 64MB versucht und das reicht hinten und vorne nicht. Ich fahre derzeit ganz gut mit Inceptionhosting (Affiliate Link) und Ramnode (Affiliate Link )und empfehle diese hiermit ausdrücklich. Wenn Ihr die Wahl habt, achtet bei einem Server in Amerika darauf, dass dieser sich an der Ostküste befindet.

Da bei dieser Methode der gesamte Netflix Traffic über den Server geleitet wird, solltet ihr darauf achten mindestens 500GB Traffic im Monat zu haben. Mehr ist immer besser.

Lasst den Ssh Port beim Server unbedingt auf Port 22, oder Ihr werdet euch aussperren, nachdem Ihr mit dem Guide durch seid. Am Ende könnt ihr den Port durchaus ändern, denkt nur daran hinterher auch den entsprechenden Port in den iptables Regeln zu editieren.

Wenn der Server soweit eingerichtet ist (am besten noch völlig blank), loggt euch als root User ein und führt folgendes aus:

apt-get update && apt-get -y install vim dnsutils curl sudo git && curl -sSL https://get.docker.com/ | sh && git clone https://github.com/ab77/netflix-proxy /opt/netflix-proxy && cd /opt/netflix-proxy && ./build.sh -c "Client IP"

Damit werden Docker und Abhängigkeiten installiert. Mit ./build.sh werden zwei Docker Container angelegt und ausgeführt. Die Switches werden hier näher erklärt. Bei “Client IP”, tragt ihr eure derzeitige WAN IP ein, diese lässt sich einfach auf http://wieistmeineip.de herausfinden.

Nun muss mit einem Editor nach Wahl die Datei /opt/netflix-proxy/data/zones.override editiert werden. Ich verwende der Einfachheit halber nano. Fügt einfach oben oder unten diesen Block ein und speichert die Datei:

zone "nflxvideo.net." {
    type master;
    file "/data/db.override";
};

Für diejenigen mit einer statischen IP oder einen hohen Lease Time sollte an dieser Stelle nach einem Reboot des Servers schluss sein. Wer wie ich mit einer dynamischen IP gesgenet ist die sich jeden Tag ändert, geht es mit dem DynDns Setup weiter.

Legt die Datei /opt/scripts/update-firewall.pl an und kopiert folgendes Script hinein:

#!/usr/bin/perl -w
# restart the firewall if the IP address changed
# /etc/sysconfig/iptables
use strict;

pAllow("deinhost.duckdns.org");
pAllow("deinkumpel.no-ip.org");
pAllow("andererkumpel.no-ip.org");

sub pAllow {
  my ($aName) = @_;
  #print "aName: $aName\n";
  my $vAddress = readpipe("host $aName | cut -d \" \" -f4");
  chomp $vAddress;
  #print "vAdress: $vAddress\n";
  my $vName = readpipe("host $vAddress | cut -d \" \" -f5");
  chomp $vName;
  if ($vName =~ "SERVFAIL") {
    $vName = $vAddress;
  }
  #print "vName: $vName \n";
  if ($vName ne "") {
    if (system("/sbin/iptables -L -v | grep -i $vName > /dev/null ") != 0) {
      system "/sbin/iptables-restore < /etc/iptables/rules.v4" ;
      system "/usr/bin/docker restart bind sniproxy" ;
    }
  }
}

Wenn nur ein DynDns Host genutzt werden soll, könnt ihr die zweite und dritte pAllow Zeilen löschen oder mit # auskommentieren.

Die Datei wird nun mit chmod 700 /opt/scripts/update-firewall.pl für den root User ausführbar gemacht.

Im nächsten Schritt wird /etc/iptables/rules.v4 geöffnet und die Zeile:

-A FRIENDS -s 2.241.171.110/32 -j ACCEPT

durch Folgendes ersetzt:

-A FRIENDS -s deinhost.duckdns.org -j ACCEPT
-A FRIENDS -s deinkumpel.no-ip.org -j ACCEPT
-A FRIENDS -s andererkumpel.no-ip.org -j ACCEPT

Auch hier gilt wieder, soll nur ein DynDNS Host genutzt werden, können Zeile zwei und Drei weggelassen werden.

Im letzten Schritt wird mit crontab -e diese Zeile in die cron Konfiguartion eingetragen:

*/15 * * * * /opt/scripts/update-firewall.pl

Um das Script alle Viertelstunde aufzurufen und eure IP in die rules.v4 Datei zu speichern.

Jetzt wird der Server noch mit shutdown -r now neu gestartet.

Nun muss noch die IP des Servers als DNS Server in den Fernseher, die Play Station/Wii/Windows, die resolv.conf auf Linux Rechnern, oder euren Router eingetragen werden.

Damit sollte das Netflix Wunschland wieder laufen.

Zum Abschluss möchte ich noch sagen, dass ich keinerlei Ahnung von iptables oder Docker habe und mir diese Konfiguration mühsam selbst von hier und hier und Unterstützung in #netflix-proxy auf irc.freenode.net zusammengestümpert habe. Für eventuelle Katastrophen übernehme ich keinerlei Haftung. Ihr seid also auf euch allein gestellt.

Für eventuelle Anregungen wie man das Ganze besser machen kann, bin ich immer dankbar. Also lasst einen Kommentar da, wenn diese Lösung bei euch funktioniert, oder Ihr es besser wisst.