腳本說明:
- 原理簡述:使用Dnsmasq的DNS將網站解析劫持到SNI proxy反向代理的頁面上。
- 用途:讓不能看流媒體的VPS看上流媒體(前提:VPS中要有一個是能看流媒體的)。
- 特性:腳本默認解鎖Netflix Hulu HBO等,如需增刪流媒體域名請編輯文件/etc/dnsmasq.d/custom_netflix.conf和/etc/sniproxy.conf
-
腳本支持系統:CentOS6+, Debian8+, Ubuntu16+
- CentOS6/7, Debian8/9/10, Ubuntu16/18 已測試成功
- 理論上不限虛擬化類型,如有問題請反饋
- 如果腳本最後顯示的IP和實際公網IP不相符,請修改一下文件/etc/sniproxy.conf中的IP地址
有問題可以博客留言或者加入TG羣組:萌精靈Telegram羣組
安裝方法:
wget --no-check-certificate -O dnsmasq_sniproxy.sh https://raw.githubusercontent.com/myxuchangbin/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -f
注:sniproxys 要使用80端口,請忽佔用此端口。
卸載方法:
wget --no-check-certificate -O dnsmasq_sniproxy.sh https://raw.githubusercontent.com/myxuchangbin/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -u
使用方法:將代理VPS的DNS地址修改爲這個主機的IP就可以了,如果不能用,記得只保留一個DNS地址試一下。
vi /etc/resolv.conf
防止濫用,建議不要隨意公佈IP地址,或使用防火牆做好限制工作。
調試排錯:
- 確認sniproxy有效運行
重啓sni命令:systemctl restart sniproxy
如果sni不在運行,可檢查配置/etc/sniproxy.conf,避免ss、nginx或者其他程序監聽80,443,可將其配置文件的80更改爲801等。 443端口必須給sni監聽放行,查看:netstat -tlunp|grep 443
- 確認防火牆放行443,53
調試可直接關閉防火牆 systemctl stop firewalld.service
阿里雲/谷歌雲/AWS等外部防火牆放行 可通過其他服務器 telnet vpsip 53 以及 telnet vpsip 443 進行測試
- 解析域名
嘗試用其他服務器配置完畢dns後,解析域名:nslookup netflix.com 判斷IP是否是NETFLIX代理機器IP 如果不存在nslookup命令,CENTOS安裝:yum install -y bind-utils,DEBIAN安裝:apt-get -y install dnsutils
Github地址:https://github.com/myxuchangbin/dnsmasq_sniproxy_install
解鎖機(能看netflix的機)排錯方法:運行下面兩條命令確保服務正常運行。
netstat -tlunp|grep 443netstat -tlunp|grep 53
被解鎖機(不能看netflix的機)排錯方法:1、運行下面兩條命令確保能正常鏈接到解鎖機。
telnet 解鎖機IP 53telnet 解鎖機IP 443
2、如果上面運行命令運行後顯示可以正常鏈接到解鎖機,再運行下面命令看是不是顯示爲被解鎖機的IP。
nslookup netflix.com
3、如果上面都沒有問題,那就看一下你是不是用了一鍵腳本吧。一鍵腳本很多都會自帶dns服務,會影響流媒體的dns解鎖。
如果提示53端口被佔用,可以參考下面文章。systemd-resolve佔用53端口的解決方法