TL;DR
busque una caja Debian o Ubuntu n19 (reciente) con root en una IP pública limpia y ejecute:
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
Consulte las páginas Wiki para obtener algunas ideas comunes para la solución de problemas.
... o suscríbete al servicio VPN Unzoner para desbloquear:
netflix-proxy
es un proxy DNS inteligente para transmitir Netflix
, Hulu
[n2], HBO Now
y otros fuera de la región. Se implementa mediante contenedores Docker y utiliza dnsmasq
[n18] y sniproxy
[n1] para proporcionar servicios SmartDNS. Funciona para algunos sitios bloqueados, como PornHub y YouTube. Suscríbase a la lista de correo y reciba notificaciones sobre nuevas funciones, actualizaciones, etc.
Lo siguiente se admite de fábrica; sin embargo, agregar servicios adicionales es trivial y se realiza actualizando el archivo dnsmasq.conf
y ejecutando docker restart dnsmasq
:
Este proyecto es gratuito y está amparado por la Licencia MIT. Se proporciona sin garantía alguna y puede utilizarse para cualquier fin, incluidos los privados y comerciales. Sin embargo, si planea utilizarlo con fines comerciales (es decir, ganar dinero con él), no espere soporte gratuito, ya que sería injusto. Siempre se puede negociar un modelo de soporte comercial, si es necesario. Por favor contáctame si esto es algo que te interesa.
Los siguientes párrafos muestran cómo poner en funcionamiento esta solución con algunos proveedores de nube diferentes que he probado hasta ahora. Si prefieres un vídeo tutorial, aquí tienes uno preparado por uno de los usuarios. Tenga en cuenta que OpenVZ no funcionará [n15]; asegúrese de obtener una máquina virtual adecuada que utilice KVM o Xen.
(Netflix está bloqueado [n16]) Lo siguiente se basa en una imagen estándar de Ubuntu Docker proporcionada por DigitalOcean
, pero en teoría debería funcionar en cualquier distribución de Linux con Docker preinstalado.
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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. Si desea compartir su sistema con amigos y familiares, puede autorizar sus direcciones IP residenciales utilizando el sitio de administración netflix-proxy
, ubicado en http://<ipaddr>:8080/
, donde ipaddr
es la dirección IP pública. de su VPS. Inicie sesión con la cuenta admin
con la contraseña que registró durante la compilación. Si olvidó sus credenciales de administrador, restablezca.
La cuenta admin
no restringe la entrada o eliminación de IP. Si desea restringir la entrada de IP a la IP del cliente actual mediante un menú desplegable que se completa automáticamente, cree una cuenta de usuario estándar utilizando el script account-creator.sh
ubicado en el directorio auth
, que le solicitará la entrada y creará la cuenta de usuario.
También puede utilizar el sitio de administración netflix-proxy
para actualizar su dirección IP, en caso de que su ISP le asigne una nueva (por ejemplo, a través de DHCP). Si su dirección IP cambia, todas las solicitudes HTTP/HTTPS se redirigirán automáticamente al sitio de administración en el puerto 8080
. Todas las solicitudes de DNS serán redirigidas a la instancia dnsmasq
que se ejecuta en el puerto 5353
. Lo más probable es que necesites borrar las cachés DNS de tu navegador y del sistema después de esto. En Windows, ejecute ipconfig /flushdns
. En OS X, ejecute:
sudo killall -HUP mDNSResponder
&& sudo dscacheutil -flushcache`
Luego reinicie el navegador (por ejemplo, chrome://restart
) y/o reinicie los dispositivos relevantes. Este mecanismo debería funcionar en los navegadores, pero lo más probable es que cause errores en otros dispositivos, como Apple TV y televisores inteligentes. Si Internet deja de funcionar de repente, intenta cargar un navegador y acceder a netflix.com
.
ipaddr
es la dirección IP pública de su VPS), sustituya las credenciales de administrador y ejecute: 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>
ADVERTENCIA : no habilite esto a menos que sepa lo que está haciendo.
Para habilitar la autorización automática de cada IP que llega a su proxy, establezca AUTO_AUTH = True
en auth/settings.py
y ejecute service netflix-proxy-admin restart
. Esta configuración autorizará efectivamente cualquier IP que acceda a su IP proxy con un navegador web por primera vez, incluidos bots, piratas informáticos, spammers, etc. Tras la autorización exitosa, el navegador será redirigido a Google.
El servicio DNS está configurado con la recursividad activada de forma predeterminada, por lo que después de una autorización exitosa, cualquiera puede usar su VPS en ataques de amplificación de DNS, lo que probablemente lo pondrá en incumplimiento de contrato con el proveedor de VPS. Has sido ADVERTIDO .
El script de compilación configura automáticamente el sistema con la recursividad DNS activada . Esto tiene implicaciones de seguridad, ya que potencialmente abre su servidor DNS a un ataque de amplificación de DNS, una especie de ataque DDoS. Sin embargo, esto no debería ser una preocupación, siempre y cuando las reglas de firewall iptables
configuradas automáticamente por el script de compilación permanezcan vigentes. Sin embargo, si alguna vez decide desactivar el firewall, tenga esto en cuenta.
Las siguientes opciones de línea de comando se pueden pasar opcionalmente a build.sh
para obtener control adicional:
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
Para actualizar el esquema de su base de datos existente, ejecute el script update.sh
proporcionado. Alternativamente, puede ejecutar las actualizaciones del esquema manualmente (por ejemplo, si se saltó una versión).
El script de compilación ha sido diseñado para funcionar en Ubuntu y Debian. Lo más probable es que falle en todas las demás distribuciones. Algunos requisitos previos requieren que la configuración regional esté configurada correctamente y algunas imágenes del sistema operativo del proveedor necesitan ayuda adicional. Si Python
y/o pip
informan problemas locale
durante la compilación, intente ejecutar lo siguiente primero:
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 está bloqueado [n16]) Lo siguiente se basa en una imagen de Debian proporcionada por Vultr
, pero en teoría debería funcionar en cualquier distribución de Debian.
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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. (Netflix está bloqueado [n16]) Lo siguiente se basa en una imagen estándar de Ubuntu proporcionada por Kamatera
.
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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. (Netflix está bloqueado[n16]) Lo siguiente se basa en imágenes de Debian o Ubuntu proporcionadas por RamNode
.
VPS Control Panel
y (re)instale el sistema operativo usando la imagen de Ubuntu o Debian. 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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. (Netflix está bloqueado [n16]) Lo siguiente se basa en una imagen estándar de Ubuntu proporcionada por Linode
, pero debería funcionar en cualquier distribución de Linux sin Docker instalado.
Linode
en una ubicación geográfica de interés e implemente una imagen de Ubuntu en él. 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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. (no probado) Lo siguiente se basa en una imagen estándar de Ubuntu proporcionada por DreamHost
, pero debería funcionar en cualquier distribución de Linux sin Docker instalado y ejecutándose con un usuario no root (por ejemplo, Amazon Web Services
[n13]).
DreamCompute
o Public Cloud Computing
e inicie una instancia de Ubuntu en una ubicación geográfica de interés.Ingress - IPv4 - UDP - 53 - 0.0.0.0/0 (CIDR)
Floating IP
a su instancia. 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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. Lo siguiente se basa en la imagen de Ubuntu proporcionada por Gandi
usando el inicio de sesión root
solo con clave SSH (sin contraseña). Para el inicio de sesión predeterminado admin
no root, ajuste el paso 6 para usar sudo
cuando sea necesario.
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
.Netflix
y otros fuera de la región.#netflix-proxy
en freenode para obtener ayuda. Lo siguiente no ha sido probado y se basa en una imagen estándar de Ubuntu proporcionada por Microsoft Azure
usando la herramienta de automatización cloud-harness
que escribí hace un tiempo y supone una suscripción vacía Microsoft Azure
. Además, debido a que Azure bloquea ICMP a través del equilibrador de carga y no ofrece soporte nativo para IPv6, IPv6 no funcionará.
git clone https://github.com/ab77/cloud-harness.git ~/cloud-harness
.cloud-harness
para configurarlo. ./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)
y HTTPS (TCP)
y protegerlos en su casa/trabajo/cualquier IP mediante la función ACL
de Azure.azureuser
usando un puerto TCP público personalizado (no 22
) y use cualquier instrucción de Ubuntu que no sea usuario root para compilar/instalar netflix-proxy
. Este proyecto está vinculado con Travis CI
para implementar y probar el proyecto automáticamente. El script de Python testbuild.py
se utiliza para implementar y probar netflix-proxy
. Este script implementa un Droplet
de prueba y luego ejecuta una serie de pruebas para verificar (a) que todos los contenedores Docker
se inicien; (b) el script built.sh
genera el mensaje correcto al final; (c) todos los servicios relevantes sobreviven a un reinicio; y (d) el proxy puede comunicarse con Netflix a través de SSL.
El script testbuild.py
también se puede utilizar para implementar Droplets
mediante programación desde la línea de comando:
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
Tenga en cuenta que necesitará un entorno Python 2.7
que funcione y los módulos enumerados en tests/requirements.txt
(ejecute pip install -r tests/requirements.txt
).
Las pruebas de reproducción de video están actualmente deshabilitadas debido al bloqueo del proveedor.
Después de una implementación de compilación exitosa, se ejecuta testvideo.py
para probar la reproducción de video de Netflix. Esto se hace reproduciendo 60 segundos de un título que se sabe que sólo está disponible en la región de EE. UU. (por ejemplo, 1000 veces Buenas noches).
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)
Se guarda una captura de pantalla al final de la prueba y se carga en la rama gh-pages
.
De manera similar, testvideo.py
se ejecuta para probar la reproducción de video de Hulu usando uno de los títulos gratuitos (por ejemplo, South Park S01E01: Cartman Gets an Anal Probe). La compilación está configurada para no fallar en caso de que falle la prueba de Hulu. Esto se debe a que Hulu está casi seguramente bloqueado en Digital Ocean.
Esta solución utiliza IPv6 en sentido descendente desde el proxy para desbloquear proveedores habilitados para IPv6, como Netflix. No se requiere compatibilidad con IPv6 en el cliente para que esto funcione, solo el VPS debe tener conectividad IPv6 pública. Es posible que también necesites desactivar IPv6 en tu red local (y/o dispositivos relevantes).[n6]
+----------+ +-----------+ +-----------------+
| | | | | |
| client | +--------------> | proxy | +-------------> | Netflix, etc. |
| | (ipv4) | | (ipv6) | |
+----------+ +-----------+ +-----------------+
Si tiene alguna idea, no dude en bifurcarla y enviarme sus cambios.
Si esto le resulta útil, no dude en hacer una pequeña donación con PayPal o Bitcoin.
PayPal | bitcóin |
---|---|
1GUrKgkaCkdsrCzb4pq3bJwkmjTVv9X7eG |
[email protected]
; Esta solución solo funcionará en dispositivos que admitan la indicación de nombre de servidor (SNI)[n7] y solo si usan DNS para resolver nombres.Hulu
tiene fuertes restricciones geográficas en la mayoría de los rangos de IP no residenciales y no es compatible con IPv6.-c <ip>
para build.sh
.black.box
unzoner.black.box
unzoner.[email protected]
.© 2016-2019 ab1