Unblock and watch any Netflix title from anywhere..

Always visit the official netflix-proxy page on GitHub for the most up-to-date version of this article.

TL;DR find a Debian or Ubuntu box with root on a clean public IP and run:

apt-get update\
  && apt-get -y install vim dnsutils curl sudo\
  && curl -sSL https://get.docker.com/ | sh\
  && mkdir -p ~/netflix-proxy\
  && cd ~/netflix-proxy\
  && curl -L https://github.com/ab77/netflix-proxy/archive/latest.tar.gz\
  | tar xz --strip-components=1\
  && ./build.sh

See the Wiki page(s) for some common troubleshooting ideas.

... or subscribe to Unzoner VPN service to un-block:





about

netflix-proxy is a smart DNS proxy to stream Netflix, Hulu[n2], HBO Now and others out of region. It is deployed using Docker containers and uses dnsmasq and sniproxy[n1] to provide SmartDNS services. It can also be used to bypass[n17] The Great Firewall and works for some blocked sites, such as PornHub. And if you happen to live in Germany and want to watch YouTube like the rest of the world does, just add googlevideo.com to dnsmasq.conf file and run docker restart dnsmasq. Subscribe to the mailing list and be notified of new features, updates, etc.

supported services

The following are supported out of the box, however adding additional services is trivial and is done by updating dnsmasq.conf file and running docker restart dnsmasq:

  • Netflix
  • Hulu[n2]
  • HBO Now
  • Amazon Instant Video
  • Crackle
  • Pandora
  • Vudu
  • blinkbox
  • BBC iPlayer[n5]
  • NBC Sports and potentially many more

license

This project is free, covered by the MIT License. It is provided without any warranty and can be used for any purpose, including private and commercial. However, if you are planning to use it for commercial purposes (i.e make money off it), please do not expect free support, as it would be unfair. A commercial support model can always be negotiated, if required. Please contact me if this is something that interests you.

instructions

The following paragraphs show how to get this solution up and running with a few different Cloud providers I've tried so far. If you prefer a video tutorial, here is one prapared by one of the users. Note, OpenVZ won't work[n15], make sure to get a proper virtual machine using KVM or Xen.

(Netflix is blocked[n16]) The following is based on a standard Ubuntu Docker image provided by DigitalOcean, but should in theory work on any Linux distribution with Docker pre-installed.

  1. Head over to Digital Ocean to get $10 USD credit

  2. Create a Droplet in a geographic location of interest using the latest Docker image (find in under One-click Apps tab).

  3. SSH to your server and run:

     mkdir -p ~/netflix-proxy\
       && cd ~/netflix-proxy\
       && curl -L https://github.com/ab77/netflix-proxy/archive/latest.tar.gz\
       | tar xz --strip-components=1\
       && ./build.sh
    
  4. Make sure to record the URL and credentials for the netflix-proxy admin site.

  5. Set your DNS server to the IP given at the end of the script, then go to this site to make sure the same IP is displayed.

  6. Finally, enjoy Netflix and others out of region.

  7. Enjoy or raise a new issue if something doesn't work quite right (also #netflix-proxy on freenode).

Other Cloud Providers

Always visit the official netflix-proxy page on GitHub for additional examples.

(Netflix is blocked[n16]) The following is based on a Debian image provided by Vultr, but should in theory work on any Debian distribution.

  1. For a limited time, head over to Vultr to create and account and get $20 USD credit.
  2. Create a compute instance in a geographic location of interest using Debian or Ubuntu image.
  3. SSH to your server and run:
apt-get update\
  && apt-get -y install vim dnsutils curl sudo\
  && curl -sSL https://get.docker.com/ | sh\
  && mkdir -p ~/netflix-proxy\
  && cd ~/netflix-proxy\
  && curl -L https://github.com/ab77/netflix-proxy/archive/latest.tar.gz\
  | tar xz --strip-components=1\
  && ./build.sh
  1. Make sure to record the credentials for the netflix-proxy admin site.
  2. Set your DNS server to the IP given at the end of the script, then go to this site to make sure the same IP is displayed.
  3. Finally, enjoy Netflix and others out of region.
  4. Enjoy or raise a new issue if something doesn't work quite right (also #netflix-proxy on freenode).

Contributing

If you have any idea, feel free to fork it and submit your changes back to me.

If you find this useful, please feel free to make a small donation with PayPal or Bitcoin.

PayPal
Bitcoin
91c446adbd54ef84eef1c6c1c723586aa0ba85d7

Footnotes

[n1] https://github.com/dlundquist/sniproxy by Dustin Lundquist dustin@null-ptr.net

[n2] Hulu is heavily geo-restricted from most non-residential IP ranges and doesn't support IPv6.

[n3] You can now specify your home/office/etc. IP manually using -c <ip> option to build.sh.

[n4] See, serverfault post.

[n5] See, this issue.

[n6] If you have a working IPv6 stack, then your device may be preferring it over IPv4, see this issue.

[n7] See, https://en.wikipedia.org/wiki/Server_Name_Indication.

[n8] See, https://www.reddit.com/r/VPN/comments/48v03v/netflix_begins_geo_checks_on_cdn/.

[n9] See, Using NDP proxying. Both the caching resolver and Docker dual-stack support are disabled by default due to differences in IPv6 configurations provided by various hosting providers (i.e. RamNode).

[n10] See, http://www.webhostingtalk.com/showthread.php?t=1262537&p=9157381#post9157381.

[n11] See, https://www.facebook.com/GetflixAU/posts/650132888457824, Netflix Geoblocking - Part 2 and read How Netflix is blocking VPNs and Wiki.