필요하신 분이 있을지 모르겠지만.. 넷플릭스와 같은 미국 전용 동영상 스트리밍을 위해 VPN 방식이 아닌 unlocator 같은 DNS 방식을 서버에 설정해 사용하는 방법을 간단히 정리 해 봤습니다.
참고 URL: http://blog.belodedenko.me/2014/02/diy-clone-of-netflix-tunlr-vps.html
VPN보다는 서버 트래픽을 거의 사용하지 않으니 동영상 스트리밍 속도가 훨씬 빠르다는 건 장점, 단점은 DNS 변경으로 기존 인터넷 페이지 전환 속도가 좀 느려진다는 점과 서버 해킹시 DNS 를 이용한 피싱 같은거 당할 수 있을 것 같은데, 이건 뭐 어차피 PC 해킹당해도 동일한 문제라…
준비물은 미국에 위치한 맘대로 할 수 있는 서버가 있으면 됩니다. digitialocean, vultr, atlantic.net, ramnode 같은 VPS 서비스의 한달 $5 미만 최소 사양이면 충분할 것 같습니다. 아래 설명은 서버 IP 가 66.22.33.222 인 경우로 셋팅하는 서버의 실제 IP 주소로 변경하면 됩니다. 서버 OS는 우분투 14.04 기준입니다.(CentOS는 위의 링크를 참고)
DNS 설정
sudo apt install bind9 dnsutils
sudo vi /etc/bind/named.conf.options # 아래 내용과 같이 수정
|
options { directory "/var/cache/bind"; listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; dump-file "/var/cache/bind/cache_dump.db"; statistics-file "/var/cache/bind/named_stats.txt"; memstatistics-file "/var/cache/bind/named_mem_stats.txt"; allow-query { trusted; }; recursion yes; allow-recursion { trusted; }; allow-query-cache { trusted; }; auth-nxdomain no; # conform to RFC1035 dnssec-enable no; dnssec-validation no; dnssec-lookaside auto; forwarders { 209.xx.xx.65; # DNS1 IP (ex: 8.8.8.8) 209.xx.xx.18; # DNS2 IP (ex: 8.8.4.4) }; }; acl "trusted" { any; }; |
sudo vi /etc/bind/named.conf.default-zones # 파일 뒷부분에 아래 내용 추가
|
zone "hulu.com." { type master; file "/etc/bind/db.override"; }; zone "huluim.com." { type master; file "/etc/bind/db.override"; }; zone "netflix.com." { type master; file "/etc/bind/db.override"; }; |
sudo vi /etc/bind/db.override # 아래 내용으로 파일 생성
|
$TTL 86400 @ IN SOA ns1 root ( YYYYMMDD01 ; serial # YYYYMMDD 부분은 일자로 변경 604800 ; refresh 1w 86400 ; retry 1d 2419200 ; expiry 4w 86400 ; minimum TTL 1d ) IN NS ns1 ns1 IN A 66.22.33.222 @ IN A 66.22.33.222 * IN A 66.22.33.222 |
sudo /etc/init.d/bind9 restart
nslookup www.netflix.com 66.22.33.222 # 결과가 서버 IP 와 동일한지 확인
SNIProxy 설치
sudo apt install git
sudo apt install libev-dev libpcre3-dev libudns-dev cdbs
sudo apt install dpkg-dev gettext dh-autoreconf debhelper pkg-config
git clone https://github.com/dlundquist/sniproxy.git
cd sniproxy
dpkg-buildpackage
cd ..
sudo dpkg -i sniproxy_0.x.x_xxxx.deb
sudo vi /etc/sniproxy.conf
|
user daemon pidfile /var/run/sniproxy.pid listener 66.22.33.222 80 { proto http } listener 66.22.33.222 443 { proto tls } table { netflix\.com * (hulu|huluim)\.com * } |
sudo vi /etc/default/sniproxy
|
ENABLED=1 |
sudo /etc/init.d/sniproxy start
PC 및 스마트폰의 DNS 변경
PC의 네트워크 연결 -> TCP/IPv4 속성에서 DNS 서버의 주소를 설정한 서버(ex: 66.22.33.222)로 변경한다.
스마트폰인 경우 WIFI 연결의 고급옵션에서 IP설정을 고정으로 변경하고 DNS 1번을 설정한 서버(ex: 66.22.33.222)로 변경한다.
방화벽설정(Option)
서버에 설치된 DNS와 프록시를 특별히 방화벽 설정없이 두면 누구나 사용할 수 있는 상태임으로 우분투의 방화벽 기능을 이용해 접근을 차단한다.(방화벽 활성화시 telnet 이나 ssh 접속포트가 막히면 서버 접속이 안될 수 있으므로 주의가 필요)
sudo apt install ufw
sudo ufw allow ssh # ssh 접속 포트를 허용한다.
sudo ufw allow from 211.22.33.0/24 to any port 53 # DNS 접속 허용
sudo ufw allow from 211.22.33.0/24 to any port 80 # 프록시 HTTP 접속 허용
sudo ufw allow from 211.22.33.0/24 to any port 443 # 프록시 HTTPS 접속 허용
sudo ufw enable # 방화벽 활성화
안 그래도 대체재(?)를 찾고 있었는데, 감사합니다.
혹시 위에 언급하신 vps 업체 중 그나마 좀 나은 곳, 추천 부탁드립니다. *
넵 감사합니다.
가장 좋은 건 현지 지인에게 신세 지는 것 같은데..
써주신 팁대로 하면 apt를 쳐야하는데 설정이 안되어 있는지 apt-get 만 먹는군요.
그렇게해서 두가지 패키지 "bind9 dnsutils"을 설치하려고 하는데 기존에 설치된 것과 상관없이 해당 패키지를 끌어오는 페이지에서 404에러가 난다고 하는군요.
어쨌든 이전에 설치한게 있어서 설정 3가지를 하고, 마지막 override 파일에 제 주소를 넣고 리스타트를 하면 실패가 떠요... 후우..
밀고 다시해봐야하려나요...
우분투의 경우 LTS가 아니면 호환가능 패키지를 보관하는 기간에 제한이 있는데요.
이전버전의 자료를 받을 수 있는 서버로 전환을 하여서 해결하였습니다.
https://answers.launchpad.net/ubuntu/+source/apt/+question/207669
일단은 특정사이트로 제한을 하였는데. 해결 방법을 찾아야할 것 같네요.