TL;DR
Suchen Sie eine (aktuelle) n19-Debian- oder Ubuntu-Box mit Root auf einer sauberen öffentlichen IP und führen Sie Folgendes aus:
apt-get update
&& apt-get -y install vim dnsutils curl sudo
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
Auf den Wiki- Seiten finden Sie einige allgemeine Ideen zur Fehlerbehebung.
... oder abonnieren Sie den Unzoner VPN-Dienst, um die Blockierung aufzuheben:
netflix-proxy
ist ein intelligenter DNS-Proxy zum Streamen Netflix
, Hulu
[n2], HBO Now
und anderen aus der Region. Es wird mithilfe von Docker-Containern bereitgestellt und verwendet dnsmasq
[n18] und sniproxy
[n1], um SmartDNS-Dienste bereitzustellen. Es funktioniert für einige blockierte Websites wie PornHub und YouTube. Abonnieren Sie die Mailingliste und werden Sie über neue Funktionen, Updates usw. informiert.
Folgendes wird standardmäßig unterstützt, das Hinzufügen zusätzlicher Dienste ist jedoch trivial und erfolgt durch Aktualisieren der Datei dnsmasq.conf
und Ausführen docker restart dnsmasq
:
Dieses Projekt ist kostenlos und unterliegt der MIT-Lizenz. Die Bereitstellung erfolgt ohne jegliche Gewährleistung und kann für jeden Zweck, sowohl privat als auch kommerziell, genutzt werden. Wenn Sie jedoch vorhaben, es für kommerzielle Zwecke zu nutzen (also damit Geld zu verdienen), erwarten Sie bitte keinen kostenlosen Support, da dies unfair wäre. Bei Bedarf kann jederzeit ein kommerzielles Supportmodell ausgehandelt werden. Bitte kontaktieren Sie mich, wenn Sie daran interessiert sind.
Die folgenden Abschnitte zeigen, wie ich diese Lösung bei einigen verschiedenen Cloud-Anbietern zum Laufen bringen kann, die ich bisher ausprobiert habe. Wenn Sie ein Video-Tutorial bevorzugen, finden Sie hier eines, das von einem der Benutzer erstellt wurde. Beachten Sie, dass OpenVZ nicht funktioniert [n15]. Stellen Sie sicher, dass Sie eine geeignete virtuelle Maschine mit KVM oder Xen erhalten.
(Netflix ist blockiert [n16]) Das Folgende basiert auf einem von DigitalOcean
bereitgestellten Standard-Ubuntu-Docker-Image, sollte aber theoretisch auf jeder Linux-Distribution mit vorinstalliertem Docker funktionieren.
One-click Apps
). mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
netflix-proxy
Administratorseite aufzeichnen.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. Wenn Sie Ihr System mit Freunden und Familie teilen möchten, können Sie deren private IP-Adresse(n) über die netflix-proxy
Administratorseite unter http://<ipaddr>:8080/
autorisieren, wobei ipaddr
die öffentliche IP-Adresse ist Ihres VPS. Melden Sie sich mit admin
und dem Passwort an, das Sie während des Builds notiert haben. Wenn Sie Ihre Administrator-Anmeldeinformationen vergessen haben, setzen Sie sie zurück.
Das admin
schränkt die Eingabe oder Entfernung von IPs nicht ein. Wenn Sie die Eingabe von IPs mithilfe eines automatisch ausgefüllten Dropdown-Menüs auf die aktuelle Client-IP beschränken möchten, erstellen Sie mit dem Skript account-creator.sh
im auth
-Verzeichnis ein Standardbenutzerkonto, das Sie zur Eingabe und Erstellung auffordert das Benutzerkonto.
Sie können Ihre IP-Adresse auch über die netflix-proxy
Administratorseite aktualisieren, falls Ihr ISP Ihnen eine neue zuweist (z. B. über DHCP). Wenn sich Ihre IP-Adresse ändert, werden alle HTTP/HTTPS-Anfragen automatisch an die Admin-Site auf Port 8080
umgeleitet. Alle DNS-Anfragen werden an dnsmasq
-Instanz umgeleitet, die auf Port 5353
ausgeführt wird. Danach müssen Sie höchstwahrscheinlich Ihren Browser und die System-DNS-Caches löschen. Führen Sie unter Windows ipconfig /flushdns
aus. Führen Sie unter OS X Folgendes aus:
sudo killall -HUP mDNSResponder
&& sudo dscacheutil -flushcache`
Anschließend starten Sie den Browser neu (z. B. chrome://restart
) und/oder starten die entsprechenden Geräte neu. Dieser Mechanismus sollte in Browsern funktionieren, wird aber höchstwahrscheinlich auf anderen Geräten, wie Apple TVs und Smart TVs, zu Fehlern führen. Wenn Ihr Internet plötzlich nicht mehr funktioniert, versuchen Sie, einen Browser zu laden und netflix.com
aufzurufen.
ipaddr
die öffentliche IP-Adresse Ihres VPS ist), ersetzen Sie die Administrator-Anmeldeinformationen und führen Sie Folgendes aus: curl -L http://<ipaddr>:8080/autoadd?username=<admin-username>&password=<admin-password>
curl -L http://<ipaddr>:8080/autoadd?ip=<your-public-ipaddr>&username=<admin-username>&password=<admin-password>
ACHTUNG : Aktivieren Sie dies nur, wenn Sie wissen, was Sie tun.
Um die automatische Autorisierung aller IP-Adressen zu aktivieren, die Ihren Proxy erreichen, legen Sie in auth/settings.py
AUTO_AUTH = True
fest und führen Sie service netflix-proxy-admin restart
aus. Diese Einstellung autorisiert effektiv jede IP, die zum ersten Mal mit einem Webbrowser auf Ihre Proxy-IP trifft, einschließlich Bots, Hacker, Spammer usw. Nach erfolgreicher Autorisierung wird der Browser an Google weitergeleitet.
Der DNS-Dienst ist standardmäßig mit aktivierter Rekursion konfiguriert, sodass nach einer erfolgreichen Autorisierung jeder Ihren VPS für DNS-Verstärkungsangriffe verwenden kann, was wahrscheinlich zu einem Vertragsbruch mit dem VPS-Anbieter führt. Sie wurden GEWARNT .
Das Build-Skript konfiguriert das System automatisch mit aktivierter DNS-Rekursion . Dies hat Auswirkungen auf die Sicherheit, da es Ihren DNS-Server möglicherweise einem DNS-Amplification-Angriff, einer Art DDoS-Angriff, aussetzt. Dies sollte jedoch kein Problem darstellen, solange die vom Build-Skript automatisch für Sie konfigurierten iptables
Firewallregeln bestehen bleiben. Sollten Sie sich jedoch jemals dazu entschließen, die Firewall auszuschalten, sollten Sie sich dessen bewusst sein.
Die folgenden Befehlszeilenoptionen können optional zur zusätzlichen Kontrolle an build.sh
übergeben werden:
Usage: ./build.sh [-b 0|1] [-c <ip>]
-b grab docker images from repository (0) or build locally (1) (default: 0)
-c specify client-ip instead of being taken from ssh_connection
Um Ihr bestehendes Datenbankschema zu aktualisieren, führen Sie bitte das bereitgestellte update.sh
-Skript aus. Alternativ können Sie die Schemaaktualisierungen manuell ausführen (z. B. wenn Sie eine Version übersprungen haben).
Das Build-Skript wurde für die Arbeit unter Ubuntu und Debian entwickelt. Bei allen anderen Distributionen wird es höchstwahrscheinlich fehlschlagen. Einige Voraussetzungen erfordern die korrekte Einstellung des Gebietsschemas und einige Betriebssystem-Images des Anbieters benötigen zusätzliche Hilfe. Wenn während des Builds von Python
und/oder pip
Probleme mit locale
gemeldet werden, führen Sie zunächst Folgendes aus:
export LANGUAGE=en_US.UTF-8
&& export LANG=en_US.UTF-8
&& export LC_ALL=en_US.UTF-8
&& export LC_CTYPE="en_US.UTF-8"
&& locale-gen en_US.UTF-8
&& sudo apt-get -y install language-pack-en-base
&& sudo dpkg-reconfigure locales
(Netflix ist blockiert [n16]) Das Folgende basiert auf einem von Vultr
bereitgestellten Debian-Image, sollte aber theoretisch auf jeder Debian-Distribution funktionieren.
apt-get update
&& apt-get -y install vim dnsutils curl sudo
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
netflix-proxy
-Administratorseite notieren.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. (Netflix ist blockiert [n16]) Das Folgende basiert auf einem von Kamatera
bereitgestellten Standard-Ubuntu-Image.
apt-get update
&& apt-get -y install vim dnsutils curl sudo
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
| tar x --strip-components=1
&& ./build.sh
netflix-proxy
Administratorseite aufzeichnen.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. (Netflix ist blockiert[n16]) Das Folgende basiert auf einem von RamNode
bereitgestellten Debian- oder Ubuntu-Image.
VPS Control Panel
an und installieren Sie das Betriebssystem mit dem Ubuntu- oder Debian-Image (neu). apt-get update
&& apt-get -y install vim dnsutils curl sudo
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
netflix-proxy
-Administratorseite notieren.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. (Netflix ist blockiert [n16]) Das Folgende basiert auf einem von Linode
bereitgestellten Standard-Ubuntu-Image, sollte aber auf jeder Linux-Distribution ohne installiertes Docker funktionieren.
Linode
an einem geografischen Standort von Interesse und stellen Sie dort ein Ubuntu-Image bereit. apt-get update
&& apt-get -y install vim dnsutils curl sudo
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
netflix-proxy
-Administratorseite notieren.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. (ungetestet) Das Folgende basiert auf einem von DreamHost
bereitgestellten Standard-Ubuntu-Image, sollte aber auf jeder Linux-Distribution ohne installiertes Docker funktionieren und unter einem Nicht-Root -Benutzer ausgeführt werden (z. B. Amazon Web Services
[n13]).
DreamCompute
oder Public Cloud Computing
und starten Sie eine Ubuntu-Instanz an einem geografischen Standort von Interesse.Ingress - IPv4 - UDP - 53 - 0.0.0.0/0 (CIDR)
Floating IP
hinzu. sudo apt-get update
&& sudo apt-get -y install vim dnsutils curl
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& sudo usermod -aG docker $(whoami | awk '{print $1}')
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
netflix-proxy
-Administratorseite notieren.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. Das Folgende basiert auf einem von Gandi
bereitgestellten Ubuntu-Image mit root
-Anmeldung nur mit SSH-Schlüssel (kein Passwort). Für die standardmäßige Nicht-Root admin
passen Sie Schritt 6 an, um bei Bedarf sudo
zu verwenden.
apt-get update
&& apt-get -y install vim dnsutils curl sudo
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io
&& mkdir -p ~/netflix-proxy
&& cd ~/netflix-proxy
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip - | tar x --strip-components=1
&& ./build.sh
netflix-proxy
-Administratorseite notieren.Netflix
und andere Programme außerhalb der Region.#netflix-proxy
auf Freenode aus, um Hilfe zu erhalten. Das Folgende wurde nicht getestet und basiert auf einem Standard-Ubuntu-Image, das von Microsoft Azure
mit cloud-harness
-Automatisierungstool bereitgestellt wurde, das ich vor einiger Zeit geschrieben habe, und geht von einem leeren Microsoft Azure
-Abonnement aus. Da Azure außerdem ICMP durch den Load Balancer blockiert und keine native IPv6-Unterstützung bietet, wird IPv6 nicht funktionieren.
git clone https://github.com/ab77/cloud-harness.git ~/cloud-harness
aus.cloud-harness
. ./cloud-harness.py azure --action create_virtual_machine_deployment
--service <your hosted service name>
--deployment <your hosted service name>
--name <your virtual machine name>
--label 'Netflix proxy'
--account <your storage account name>
--blob b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04-LTS-amd64-server-20140414-en-us-30GB
--os Linux
--network VNet1
--subnet Subnet-1
--ipaddr <your reserved ipaddr name>
--size Medium
--ssh_auth
--disable_pwd_auth
--verbose
DNS (UDP)
, HTTP (TCP)
und HTTPS (TCP)
Endpunkte hinzuzufügen und sie mit der Azure ACL
Funktion an Ihren privaten/Arbeits-/anderen IP-Adressen zu sichern.azureuser
über einen benutzerdefinierten öffentlichen TCP-Port (nicht 22
) eine SSH-Verbindung zu Ihrer VM her und verwenden Sie alle Ubuntu-Anweisungen für Nicht-Root-Benutzer, um netflix-proxy
zu erstellen/installieren. Dieses Projekt ist mit Travis CI
verknüpft, um das Projekt automatisch bereitzustellen und zu testen. Das Python-Skript testbuild.py
wird zum Bereitstellen und Testen netflix-proxy
verwendet. Dieses Skript stellt ein Test- Droplet
bereit und führt dann eine Reihe von Tests durch, um zu überprüfen, (a) ob alle Docker
-Container starten; (b) das Skript built.sh
gibt am Ende die richtige Nachricht aus; (c) alle relevanten Dienste überleben einen Neustart; und (d) der Proxy kann über SSL mit Netflix kommunizieren.
Das testbuild.py
-Skript kann auch verwendet werden, um Droplets
programmgesteuert über die Befehlszeile bereitzustellen:
usage: testbuild.py digitalocean [-h] --api_token API_TOKEN
[--client_ip CLIENT_IP]
[--fingerprint FINGERPRINT [FINGERPRINT ...]]
[--region REGION] [--branch BRANCH]
[--create] [--destroy] [--list_regions]
[--name NAME]
optional arguments:
-h, --help show this help message and exit
--api_token API_TOKEN
DigitalOcean API v2 secret token
--client_ip CLIENT_IP
client IP to secure Droplet
--fingerprint FINGERPRINT [FINGERPRINT ...]
SSH key fingerprint
--region REGION region to deploy into; use --list_regions for a list
--branch BRANCH netflix-proxy branch to deploy (default: master)
--create Create droplet
--destroy Destroy droplet
--list_regions list all available regions
--name NAME Droplet name
Beachten Sie, dass Sie eine funktionierende Python 2.7
Umgebung und die in tests/requirements.txt
aufgeführten Module benötigen (führen Sie pip install -r tests/requirements.txt
aus).
Videowiedergabetests sind derzeit aufgrund einer Anbieterblockierung deaktiviert .
Nach einer erfolgreichen Build-Bereitstellung wird testvideo.py
ausgeführt, um die Netflix-Videowiedergabe zu testen. Dies geschieht durch die Wiedergabe von 60 Sekunden eines Titels, der bekanntermaßen nur in der US-Region erhältlich ist (z. B. 1.000 Times Good Night).
usage: testvideo.py netflix [-h] --email EMAIL --password PASSWORD
[--seconds SECONDS] [--titleid TITLEID]
[--tries TRIES]
optional arguments:
-h, --help show this help message and exit
--email EMAIL Netflix username
--password PASSWORD Netflix password
--seconds SECONDS playback time per title in seconds (default: 60)
--titleid TITLEID Netflix title_id to play (default: 80001898)
--tries TRIES Playback restart attempts (default: 4)
Am Ende des Tests wird ein Screenshot gespeichert und in den gh-pages
-Zweig hochgeladen.
In ähnlicher Weise wird testvideo.py
ausgeführt, um die Hulu-Videowiedergabe mit einem der kostenlosen Titel zu testen (z. B. South Park S01E01: Cartman Gets an Anal Probe). Der Build ist so konfiguriert, dass er nicht fehlschlägt, falls der Hulu-Test fehlschlägt. Dies liegt daran, dass Hulu fast sicher von Digital Ocean ausgeschlossen ist.
Diese Lösung nutzt IPv6 stromabwärts vom Proxy, um IPv6-fähige Anbieter wie Netflix freizugeben. Damit dies funktioniert, ist keine IPv6-Unterstützung auf dem Client erforderlich. Lediglich der VPS muss über eine öffentliche IPv6-Konnektivität verfügen. Möglicherweise müssen Sie IPv6 auch in Ihrem lokalen Netzwerk (und/oder relevanten Geräten) deaktivieren.[n6]
+----------+ +-----------+ +-----------------+
| | | | | |
| client | +--------------> | proxy | +-------------> | Netflix, etc. |
| | (ipv4) | | (ipv6) | |
+----------+ +-----------+ +-----------------+
Wenn Sie eine Idee haben, teilen Sie sie gerne mit und senden Sie mir Ihre Änderungen zurück.
Wenn Sie dies nützlich finden, können Sie gerne eine kleine Spende mit PayPal oder Bitcoin tätigen.
Paypal | Bitcoin |
---|---|
1GUrKgkaCkdsrCzb4pq3bJwkmjTVv9X7eG |
[email protected]
; Diese Lösung funktioniert nur auf Geräten, die Server Name Indication (SNI)[n7] unterstützen, und nur, wenn sie DNS zur Namensauflösung verwenden.Hulu
ist für die meisten Nicht-Wohn-IP-Bereiche stark geografisch eingeschränkt und unterstützt kein IPv6.-c <ip>
für build.sh
.black.box
unzoner ausprobieren.black.box
unzoner.[email protected]
.© 2016-2019 ab1