TL;DR
encontre uma caixa Debian ou Ubuntu (recente) n19 com root em um IP público limpo e execute:
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 a(s) página(s) Wiki para obter algumas ideias comuns de solução de problemas.
... ou assine o serviço Unzoner VPN para desbloquear:
netflix-proxy
é um proxy DNS inteligente para transmitir Netflix
, Hulu
[n2], HBO Now
e outros fora da região. Ele é implantado usando contêineres Docker e usa dnsmasq
[n18] e sniproxy
[n1] para fornecer serviços SmartDNS. Funciona para alguns sites bloqueados, como PornHub e YouTube. Assine a lista de discussão e seja notificado sobre novos recursos, atualizações, etc.
Os itens a seguir são suportados imediatamente, no entanto, adicionar serviços adicionais é trivial e é feito atualizando o arquivo dnsmasq.conf
e executando docker restart dnsmasq
:
Este projeto é gratuito , coberto pela licença MIT. É fornecido sem qualquer garantia e pode ser utilizado para qualquer finalidade, inclusive privada e comercial. No entanto, se você planeja usá-lo para fins comerciais (ou seja, ganhar dinheiro com isso), não espere suporte gratuito, pois seria injusto. Um modelo de suporte comercial sempre pode ser negociado, se necessário. Entre em contato comigo se isso for algo do seu interesse.
Os parágrafos a seguir mostram como colocar esta solução em funcionamento com alguns provedores de nuvem diferentes que experimentei até agora. Se você preferir um vídeo tutorial, aqui está um preparado por um dos usuários. Observe que o OpenVZ não funcionará [n15], certifique-se de obter uma máquina virtual adequada usando KVM ou Xen.
(Netflix está bloqueado [n16]) O seguinte é baseado em uma imagem padrão do Ubuntu Docker fornecida pela DigitalOcean
, mas deveria, em teoria, funcionar em qualquer distribuição Linux com Docker pré-instalado.
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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. Se quiser compartilhar seu sistema com amigos e familiares, você pode autorizar seus endereços IP residenciais usando o site de administração netflix-proxy
, localizado em http://<ipaddr>:8080/
, onde ipaddr
é o endereço IP público do seu VPS. Faça login usando a conta admin
com a senha que você registrou durante a construção. Se você esqueceu suas credenciais de administrador, redefina.
A conta admin
não restringe a entrada ou remoção de IPs. Se você deseja restringir a entrada de IPs ao IP do cliente atual usando um menu suspenso preenchido automaticamente, crie uma conta de usuário padrão usando o script account-creator.sh
localizado no diretório auth
, que solicitará a entrada e criará a conta do usuário.
Você também pode usar o site de administração netflix-proxy
para atualizar seu endereço IP, caso seu ISP lhe atribua um novo (por exemplo, via DHCP). Se o seu endereço IP mudar, todas as solicitações HTTP/HTTPS serão redirecionadas automaticamente para o site de administração na porta 8080
. Todas as solicitações de DNS serão redirecionadas para a instância dnsmasq
em execução na porta 5353
. Provavelmente, você precisará limpar os caches DNS do navegador e do sistema depois disso. No Windows, execute ipconfig /flushdns
. No OS X, execute:
sudo killall -HUP mDNSResponder
&& sudo dscacheutil -flushcache`
Em seguida, reinicie o navegador (por exemplo, chrome://restart
) e/ou reinicie os dispositivos relevantes. Esse mecanismo deve funcionar em navegadores, mas provavelmente causará erros em outros dispositivos, como Apple TVs e smart TVs. Se a Internet parar de funcionar de repente, tente carregar um navegador e acessar netflix.com
.
ipaddr
é o endereço IP público do seu VPS), substitua as credenciais de administrador e execute: 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>
AVISO : não habilite isso a menos que você saiba o que está fazendo.
Para ativar a autorização automática de cada IP que atinge seu proxy, defina AUTO_AUTH = True
em auth/settings.py
e execute service netflix-proxy-admin restart
. Esta configuração autorizará efetivamente qualquer IP que atinja seu IP proxy com um navegador da web pela primeira vez, incluindo bots, hackers, spammers, etc. Após a autorização bem-sucedida, o navegador será redirecionado para o Google.
O serviço DNS é configurado com a recursão ativada por padrão, portanto, após uma autorização bem-sucedida, qualquer pessoa poderá usar seu VPS em ataques de amplificação de DNS, o que provavelmente irá colocá-lo em violação do contrato com o provedor VPS. Você foi AVISADO .
O script de construção configura automaticamente o sistema com a recursão de DNS ativada . Isto tem implicações de segurança, uma vez que potencialmente abre o seu servidor DNS para um ataque de amplificação de DNS, uma espécie de ataque DDoS. No entanto, isso não deve ser uma preocupação, desde que as regras de firewall iptables
configuradas automaticamente pelo script de construção para você permaneçam em vigor. No entanto, se você decidir desligar o firewall, esteja ciente disso.
As seguintes opções de linha de comando podem ser opcionalmente passadas para build.sh
para controle 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 atualizar seu esquema de banco de dados existente, execute o script update.sh
fornecido. Alternativamente, você pode executar as atualizações do esquema manualmente (por exemplo, se você ignorou uma versão).
O script de construção foi projetado para funcionar no Ubuntu e no Debian. Provavelmente falhará em todas as outras distribuições. Alguns pré-requisitos exigem que a localidade seja definida corretamente e algumas imagens do sistema operacional do provedor precisam de ajuda extra. Se você receber problemas locale
relatados pelo Python
e/ou pip
durante a compilação, tente executar o seguinte primeiro:
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]) O seguinte é baseado em uma imagem Debian fornecida pela Vultr
, mas deveria, em teoria, funcionar em qualquer distribuiçã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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. (Netflix está bloqueado [n16]) O seguinte é baseado em uma imagem padrão do Ubuntu fornecida 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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. (Netflix está bloqueado[n16]) O seguinte é baseado em imagens Debian ou Ubuntu fornecidas por RamNode
.
VPS Control Panel
e (re)instale o sistema operacional usando a imagem Ubuntu ou 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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. (Netflix está bloqueado [n16]) O seguinte é baseado em uma imagem padrão do Ubuntu fornecida pela Linode
, mas deve funcionar em qualquer distribuição Linux sem Docker instalado.
Linode
numa localização geográfica de interesse e implemente uma imagem Ubuntu nele. 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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. (não testado) O seguinte é baseado em uma imagem padrão do Ubuntu fornecida por DreamHost
, mas deve funcionar em qualquer distribuição Linux sem Docker instalado e rodando sob usuário não root (por exemplo, Amazon Web Services
[n13]).
DreamCompute
ou Public Cloud Computing
e inicie uma instância do Ubuntu em uma localização geográfica de interesse.Ingress - IPv4 - UDP - 53 - 0.0.0.0/0 (CIDR)
Floating IP
à sua instância. 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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. O seguinte é baseado na imagem do Ubuntu fornecida por Gandi
usando login root
apenas com chave SSH (sem senha). Para login admin
não root padrão, ajuste a etapa 6 para usar sudo
quando necessário.
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
e outros fora da região.#netflix-proxy
no freenode para obter ajuda. O seguinte não foi testado e é baseado em uma imagem padrão do Ubuntu fornecida pelo Microsoft Azure
usando a ferramenta de automação cloud-harness
que escrevi há algum tempo e pressupõe uma assinatura vazia Microsoft Azure
. Além disso, como o Azure bloqueia o ICMP por meio do balanceador de carga e não oferece suporte nativo ao IPv6, o IPv6 não funcionará.
git clone https://github.com/ab77/cloud-harness.git ~/cloud-harness
.cloud-harness
para configurá-lo. ./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)
e HTTPS (TCP)
e protegê-los em sua casa/trabalho/qualquer IP usando o recurso Azure ACL
.azureuser
usando a porta TCP pública personalizada (não 22
) e use quaisquer instruções do Ubuntu de usuário não root para criar/instalar netflix-proxy
. Este projeto está vinculado ao Travis CI
para implantar e testar o projeto automaticamente. O script Python testbuild.py
é usado para implantar e testar netflix-proxy
. Este script implanta um Droplet
de teste e, em seguida, executa uma série de testes para verificar (a) se todos os contêineres Docker
são iniciados; (b) o script built.sh
exibe a mensagem correta no final; (c) todos os serviços relevantes sobrevivem a uma reinicialização; e (d) o proxy é capaz de se comunicar com a Netflix por SSL.
O script testbuild.py
também pode ser usado para implantar Droplets
programaticamente a partir da linha 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
Observe que você precisará de um ambiente Python 2.7
funcional e dos módulos listados em tests/requirements.txt
(execute pip install -r tests/requirements.txt
).
Os testes de reprodução de vídeo estão desativados no momento devido ao bloqueio do provedor.
Após uma implantação de compilação bem-sucedida, testvideo.py
é executado para testar a reprodução de vídeo do Netflix. Isto é feito reproduzindo 60 segundos de um título que só está disponível na região dos EUA (por exemplo, 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)
Uma captura de tela é salva no final do teste e carregada no branch gh-pages
.
Da mesma forma, testvideo.py
é executado para testar a reprodução de vídeo Hulu usando um dos títulos gratuitos (por exemplo, South Park S01E01: Cartman Gets an Anal Probe). A compilação está configurada para não falhar em caso de falha no teste do Hulu. Isso ocorre porque o Hulu está quase certamente bloqueado no Digital Ocean.
Esta solução usa downstream IPv6 do proxy para desbloquear provedores habilitados para IPv6, como Netflix. Nenhum suporte IPv6 no cliente é necessário para que isso funcione, apenas o VPS deve ter conectividade IPv6 pública. Você também pode precisar desligar o IPv6 em sua rede local (e/ou dispositivos relevantes).[n6]
+----------+ +-----------+ +-----------------+
| | | | | |
| client | +--------------> | proxy | +-------------> | Netflix, etc. |
| | (ipv4) | | (ipv6) | |
+----------+ +-----------+ +-----------------+
Se você tiver alguma ideia, sinta-se à vontade para fazer um fork e enviar suas alterações de volta para mim.
Se você achar isso útil, sinta-se à vontade para fazer uma pequena doação com PayPal ou Bitcoin.
PayPal | Bitcoin |
---|---|
1GUrKgkaCkdsrCzb4pq3bJwkmjTVv9X7eG |
[email protected]
; esta solução funcionará apenas em dispositivos que suportam Indicação de Nome de Servidor (SNI)[n7] e somente se eles usarem DNS para resolver nomes.Hulu
é fortemente restrito geograficamente para a maioria dos intervalos de IP não residenciais e não oferece suporte a IPv6.-c <ip>
para build.sh
.black.box
.black.box
.[email protected]
.© 2016-2019 ab1