TL;DR
найдите (недавний) ящик Debian или Ubuntu n19 с root-правом на чистом общедоступном IP-адресе и запустите:
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
См. страницы Wiki , где можно найти некоторые распространенные идеи по устранению неполадок.
... или подпишитесь на сервис Unzoner VPN, чтобы разблокировать:
netflix-proxy
— это интеллектуальный DNS-прокси для потоковой передачи Netflix
, Hulu
[n2], HBO Now
и других сервисов за пределами региона. Он развертывается с использованием контейнеров Docker и использует dnsmasq
[n18] и sniproxy
[n1] для предоставления услуг SmartDNS. Это работает для некоторых заблокированных сайтов, таких как PornHub и YouTube. Подпишитесь на список рассылки и получайте уведомления о новых функциях, обновлениях и т. д.
Следующие функции поддерживаются «из коробки», однако добавление дополнительных служб тривиально и выполняется путем обновления файла dnsmasq.conf
и запуска docker restart dnsmasq
:
Этот проект бесплатный , на него распространяется лицензия MIT. Он предоставляется без каких-либо гарантий и может использоваться для любых целей, включая частные и коммерческие. Однако, если вы планируете использовать его в коммерческих целях (т. е. зарабатывать на этом деньги), не ждите бесплатной поддержки, поскольку это было бы несправедливо. При необходимости всегда можно обсудить модель коммерческой поддержки. Пожалуйста, свяжитесь со мной, если это вас интересует.
В следующих параграфах показано, как запустить это решение с несколькими различными облачными провайдерами, которые я пробовал до сих пор. Если вы предпочитаете видеоурок, вот урок, подготовленный одним из пользователей. Обратите внимание: OpenVZ не будет работать [n15], убедитесь, что у вас есть подходящая виртуальная машина, использующая KVM или Xen.
(Netflix заблокирован [n16]). Следующее основано на стандартном образе Ubuntu Docker, предоставленном DigitalOcean
, но теоретически должно работать на любом дистрибутиве Linux с предустановленным Docker.
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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. Если вы хотите поделиться своей системой с друзьями и семьей, вы можете авторизовать их домашние IP-адреса с помощью сайта администрирования netflix-proxy
, расположенного по http://<ipaddr>:8080/
, где ipaddr
— общедоступный IP-адрес. вашего VPS. Войдите в систему, используя учетную запись admin
и пароль, который вы записали во время сборки. Если вы забыли свои учетные данные администратора, выполните сброс.
Учетная запись admin
не ограничивает ввод или удаление IP-адресов. Если вы хотите ограничить ввод IP-адресов текущим IP-адресом клиента с помощью автоматически заполняемого раскрывающегося списка, создайте стандартную учетную запись пользователя с помощью сценария account-creator.sh
, расположенного в каталоге auth
, который предложит вам ввести данные и создаст учетная запись пользователя.
Вы также можете использовать сайт администратора netflix-proxy
для обновления своего IP-адреса, если ваш интернет-провайдер назначит вам новый (например, через DHCP). Если ваш IP-адрес изменится, все запросы HTTP/HTTPS будут автоматически перенаправлены на сайт администратора через порт 8080
. Все DNS-запросы будут перенаправлены на экземпляр dnsmasq
, работающий на порту 5353
. После этого вам, скорее всего, потребуется очистить DNS-кэш вашего браузера и системы. В Windows запустите ipconfig /flushdns
. В OS X запустите:
sudo killall -HUP mDNSResponder
&& sudo dscacheutil -flushcache`
Затем перезапустите браузер (например, chrome://restart
) и/или перезагрузите соответствующие устройства. Этот механизм должен работать в браузерах, но, скорее всего, приведет к ошибкам на других устройствах, таких как Apple TV и Smart TV. Если у вас внезапно перестал работать Интернет, попробуйте загрузить браузер и зайти на netflix.com
.
ipaddr
— публичный IP-адрес вашего VPS), подставьте учетные данные администратора и запустите: 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>
ВНИМАНИЕ : не включайте это, если вы не знаете, что делаете.
Чтобы включить автоматическую авторизацию каждого IP-адреса, который попадает на ваш прокси, установите AUTO_AUTH = True
в auth/settings.py
и запустите service netflix-proxy-admin restart
. Этот параметр будет эффективно авторизовать любой IP-адрес, впервые обращающийся к вашему прокси-IP с помощью веб-браузера, включая ботов, хакеров, спамеров и т. д. После успешной авторизации браузер будет перенаправлен в Google.
Служба DNS настроена с включенной рекурсией по умолчанию, поэтому после успешной авторизации любой может использовать ваш VPS для атак с усилением DNS, что, вероятно, приведет к нарушению контракта с провайдером VPS. Вы были ПРЕДУПРЕЖДЕНЫ .
Сценарий сборки автоматически настраивает систему с включенной рекурсией DNS . Это имеет последствия для безопасности, поскольку потенциально открывает ваш DNS-сервер для атаки с усилением DNS, своего рода DDoS-атаки. Однако это не должно вызывать беспокойства, пока правила брандмауэра iptables
, автоматически настроенные сценарием сборки, остаются в силе. Однако, если вы когда-нибудь решите отключить брандмауэр, имейте это в виду.
Следующие параметры командной строки могут быть дополнительно переданы в build.sh
для дополнительного управления:
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
Чтобы обновить существующую схему базы данных, запустите предоставленный скрипт update.sh
. Альтернативно вы можете запустить обновления схемы вручную (например, если вы пропустили версию).
Сценарий сборки предназначен для работы в Ubuntu и Debian. Скорее всего, он не будет работать во всех других дистрибутивах. Некоторые предварительные условия требуют правильной настройки языкового стандарта, а некоторые образы ОС поставщика требуют дополнительной помощи. Если во время сборки вы получаете проблемы locale
, о которых сообщает Python
и/или pip
, попробуйте сначала выполнить следующее:
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 заблокирован [n16]). Следующее основано на образе Debian, предоставленном Vultr
, но теоретически должно работать на любом дистрибутиве 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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. (Netflix заблокирован [n16]). Следующее основано на стандартном образе Ubuntu, предоставленном 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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. (Netflix заблокирован[n16]). Следующее основано на образах Debian или Ubuntu, предоставленных RamNode
.
VPS Control Panel
и (пере)установите ОС, используя образ Ubuntu или 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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. (Netflix заблокирован [n16]). Следующее основано на стандартном образе Ubuntu, предоставленном Linode
, но должно работать в любом дистрибутиве Linux без установленного Docker.
Linode
в интересующем географическом месте и разверните в нем образ Ubuntu. 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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. (непроверено) Следующее основано на стандартном образе Ubuntu, предоставленном DreamHost
, но должно работать на любом дистрибутиве Linux без установленного Docker и запускаемого под пользователем без полномочий root (например, Amazon Web Services
[n13]).
DreamCompute
или Public Cloud Computing
и запустите экземпляр Ubuntu в интересующем географическом месте.Ingress - IPv4 - UDP - 53 - 0.0.0.0/0 (CIDR)
Floating IP
в свой экземпляр. 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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. Следующее основано на образе Ubuntu, предоставленном Gandi
с использованием root
-входа только с ключом SSH (без пароля). Для входа в систему с правами admin
по умолчанию измените шаг 6, чтобы при необходимости использовать sudo
.
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
и другими сервисами за пределами региона.#netflix-proxy
на freenode, чтобы получить помощь. Следующее не тестировалось и основано на стандартном образе Ubuntu, предоставленном Microsoft Azure
с использованием инструмента автоматизации cloud-harness
, который я написал некоторое время назад, и предполагает пустую подписку Microsoft Azure
. Кроме того, поскольку Azure блокирует ICMP через балансировщик нагрузки и не предлагает встроенную поддержку IPv6, IPv6 не будет работать.
git clone https://github.com/ab77/cloud-harness.git ~/cloud-harness
.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)
и HTTPS (TCP)
и защитить их на своих домашних, рабочих или любых других IP-адресах с помощью функции Azure ACL
.azureuser
используя собственный общедоступный TCP-порт (не 22
), и используйте инструкции Ubuntu для любого пользователя без полномочий root для сборки/установки netflix-proxy
. Этот проект связан с Travis CI
для автоматического развертывания и тестирования проекта. Скрипт Python testbuild.py
используется для развертывания и тестирования netflix-proxy
. Этот сценарий развертывает тестовый Droplet
, а затем запускает ряд тестов, чтобы проверить (а) запуск всех контейнеров Docker
; (б) скрипт built.sh
выводит в конце правильное сообщение; (c) все соответствующие службы выдержат перезагрузку; и (г) прокси-сервер может взаимодействовать с Netflix через SSL.
Сценарий testbuild.py
также можно использовать для программного развертывания Droplets
из командной строки:
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
Обратите внимание: вам понадобится рабочая среда Python 2.7
и модули, перечисленные в tests/requirements.txt
(запустите pip install -r tests/requirements.txt
).
Тесты воспроизведения видео в настоящее время отключены из-за блокировки провайдера.
После успешного развертывания сборки запускается testvideo.py
для проверки воспроизведения видео Netflix. Это делается путем воспроизведения 60 секунд названия, которое, как известно, доступно только в регионе США (например, 1000 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)
В конце теста сохраняется скриншот и загружается в ветку gh-pages
.
Аналогично, testvideo.py
выполняется для проверки воспроизведения видео Hulu с использованием одного из бесплатных названий (например, «Южный парк S01E01: Картман получает анальный зонд»). Сборка настроена на отсутствие сбоя в случае неудачного теста Hulu. Это потому, что Hulu почти наверняка заблокирован от Digital Ocean.
Это решение использует IPv6 в нисходящем направлении от прокси-сервера для разблокировки поставщиков с поддержкой IPv6, таких как Netflix. Для этого не требуется поддержка IPv6 на клиенте, только VPS должен иметь общедоступное подключение IPv6. Вам также может потребоваться отключить IPv6 в вашей локальной сети (и/или на соответствующих устройствах).[n6]
+----------+ +-----------+ +-----------------+
| | | | | |
| client | +--------------> | proxy | +-------------> | Netflix, etc. |
| | (ipv4) | | (ipv6) | |
+----------+ +-----------+ +-----------------+
Если у вас есть идеи, смело форкните их и отправьте мне свои изменения.
Если вы найдете это полезным, пожалуйста, сделайте небольшое пожертвование с помощью PayPal или биткойнов.
ПайПал | Биткойн |
---|---|
1GUrKgkaCkdsrCzb4pq3bJwkmjTVv9X7eG |
[email protected]
; это решение будет работать только на устройствах, поддерживающих индикацию имени сервера (SNI)[n7], и только если они используют DNS для разрешения имен.Hulu
имеет строгие географические ограничения для большинства нежилых диапазонов IP-адресов и не поддерживает IPv6.-c <ip>
для build.sh
.black.box
.black.box
.[email protected]
.© 2016-2019 аб1