站点图标 Linux-技术共享

利用Dnsmasq解锁Netflix(奈飞)流媒体服务

脚本说明:
原理简述:使用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群组:VmShell-Telegram群组: https://t.me/vmshellhk

安装方法:
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 443
netstat -tlunp|grep 53
被解锁机(不能看netflix的机)排错方法:
1、运行下面两条命令确保能正常链接到解锁机。
telnet 解锁机IP 53
telnet 解锁机IP 443
2、如果上面运行命令运行后显示可以正常链接到解锁机,再运行下面命令看是不是显示为被解锁机的IP。
nslookup netflix.com
3、如果上面都没有问题,那就看一下你是不是用了一键脚本吧。一键脚本很多都会自带dns服务,会影响流媒体的dns解锁。
安全限制规则配置
为了防止DNS被其他人滥用,建议不要随意公布IP地址,我们也可以使用iptables限制访问VPS1(能解锁Netflix的VPS)的53端口(DNS服务器默认使用53端口)。
先限制所有IP访问53端口:
iptables -I INPUT -p tcp --dport 53 -j DROP
再允许VPS2(不能解锁Netflix的VPS)的IP访问:
iptables -I INPUT -s x.x.x.x -p tcp --dport 53 -j ACCEPT
然后设置iptables规则持久化[查看iptables规则是否生效: iptables -nvL]
设定防火墙规则
iptables -A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -s 2.2.2.2/32 -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -s 3.3.3.3/32 -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -s 4.4.4.4/32 -p tcp -m tcp --dport 22 -j DROP
保存防火墙规则
iptables-save > /etc/sysconfig/iptables
设定开机自动恢复iptables规则
vim /etc/rc.d/rc.local
iptables-restore < /etc/sysconfig/iptables

退出移动版