tumblr_od4xovyneQ1uvucr4o1_1280.png
文章方法主要参考大佬文章而来:https://lala.im/5504.html
只是做一些细节详解,技术方面问题我也不太懂,欢迎各位去原贴大佬咨询

一、为什么要曲线解锁netflix


无论是哪种方法,首先你得准备一台本身就能看的机器,
那有人可能会问,你这不是脱裤子放屁嘛,我本来就能看了那还设置个什么?

可能需要用到的几个场景:

1:我有很多台小鸡,但能看的只有1台,我想让全部的小鸡都能看。

2:能看的那台很卡,我想看的更舒服点/流畅点。

方法主要是两个: 1:DNS+SNIProxy 2:使用Brook中转
原作者推荐Brook中转,我喜欢折腾,就先说说DNS+SNIProxy吧:

方法一:DNS+SNIProxy


首先准备一个aws国际账号,注册账号方法有四:
1.自己信用卡直接去官网注册:https://aws.amazon.com/
2.淘宝买10来块钱一张的含1美元的预付费虚拟信用卡,准备干净ip手机号,看脸注册,小心风控
3.买个职业刷子做好的账号,全新30左右,二手(用完1年免费版ec2的)大概15-20看你运气了,到论坛四处收收私人的估计便宜些

账号准备完毕,就开始访问开建lightsail机器了:
可以从控制台>>服务>>lightsail>>登录lightsail,或者直接访问:https://lightsail.aws.amazon.com/
大佬可以直接用新注册免费送的1年ec2搭建每个月30GB流量的实例来做dns机器应该流量够用(未亲测,自己安装探针随时关注流量)
对了,咱们不是土豪的就去买个aws github教育码子,150美元现在市场价格90左右,目测近期在缓慢上涨,
注意码子类别,最新的是2018Q2_1有效期到2020.10.01,大概一年半可用,总额度150美元,相当于可开两台3.5刀最低配lightsail 20来个月,每台每月成本2元的样子,或者开一台10刀/月高配,能用15个月,自己看着来

兑换code地址:https://console.aws.amazon.com/billing/home#/credits

准备工作完毕,我们直接去开lightsail机器,这里选择日本区域c区,系统选择centos 7.

注意aws的云防火墙,不是部署在centos机器上的firewalld,去你的lightsail机器点击面板右侧设置>>网络
chrome_K2G6v1HNKw.png
自行添加如上图的dns解析端口53放行

首先在你能看netflix的aws机器上安装DNSMasq:

yum -y install epel-release
yum -y install dnsmasq bind-utils

这里使用的是最新版的CentOS7,通过yum包管理器安装的DNSMasq的版本是2.76,那么这个版本不需要去改什么主配置文件,全部都按默认设置就好,只需要自己新建一个配置文件,将netflix的两个域名解析到你的VPS公网IP:

echo "address=/netflix.com/VPSIP" > /etc/dnsmasq.d/netflix.conf
echo "address=/nflxvideo.net/VPSIP" >> /etc/dnsmasq.d/netflix.conf

注意把VPSIP替换成你的vps 实际ipv4地址,别直接复制代码

启动DNSMasq并添加开机启动:

systemctl start dnsmasq
systemctl enable dnsmasq

测试一下,如果解析出来的IP是你自己的VPSIP那么DNS这边就配置好了:

dig @127.0.0.1 netflix.com
dig @127.0.0.1 nflxvideo.net

接着安装SNIProxy,由于CentOS7的包管理器没有这个软件包,这里只能自己编译了:

yum -y groupinstall "Development Tools"
yum -y install libev-devel pcre-devel udns-devel rpm-build
git clone https://github.com/dlundquist/sniproxy.git
cd sniproxy
./autogen.sh && ./configure && make dist
rpmbuild --define "_sourcedir `pwd`" -ba redhat/sniproxy.spec
cd /root/rpmbuild/RPMS/x86_64
yum -y install sniproxy-0.6.0+git.8.g3fa47ea-1.el7.x86_64.rpm

如果你不想编译,下面我把我自己编译好的RPM包发上来,你只需要执行如下命令即可安装完成:

yum -y install https://lala.im/static/script/sniproxy-0.6.0+git.8.g3fa47ea-1.el7.x86_64.rpm

新建一个SNIProxy的配置文件,编辑一下:

vi /etc/sniproxy.conf

写入如下配置:

SNIProxy详细配置

user daemon
pidfile /var/run/sniproxy.pid
resolver {
    mode ipv4_only
}
access_log {
    filename /tmp/sniproxy-access.log
}
listen 0.0.0.0 443 {
    proto tls
    table imlala_netflix
}
table imlala_netflix {
    (.*.|)netflix.com$ *
    (.*.|)nflxvideo.net$ *
}

新建一个systemd服务文件,编辑一下:

vi /etc/systemd/system/sniproxy.service

写入:

[Unit]
Description=sniproxy server
   
[Service]
Restart=always
ExecStart=/usr/sbin/sniproxy -f -c /etc/sniproxy.conf
  
[Install]
WantedBy=multi-user.target


启动SNIProxy并添加开机自启:

systemctl start sniproxy
systemctl enable sniproxy

那这台机器的配置就完成了,重启下小鸡的网络:systemctl restart network
可选项目:秋水一键bbr加速,可以减少网络高峰拥堵状况:

地址自行谷歌

接下来我们需要在不能看的机器上安装ssr,并改写dns nameserver记录为上面我们的aws ip就行了。

小鸡上接收端的操作


安装ssr的一键包也推荐秋水一键四合一脚本,地址自己谷歌吧

现在你需要将这台机器的DNS地址修改为刚才配置了DNS+SNIProxy的机器IP地址:

vi /etc/resolv.conf

加入下行文字:

nameserver VPSIP

注意,VPSIP改成你的aws ip地址,别直接照抄。
为了dns永久生效,可修改网卡配置:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

加入一行:

DNS1=VPSIP

最后 systemctl restart network或者 reboot下,应该就可以了。
输入 nslookup netflix.com,看看返回是否你的aws ip地址,是就说明ok了,如果nslookup指令不存在,那就安一个:

yum install -y bind-utils

那现在连接你这台机器的SSR,这台机器应该就能看Netflix了,同理如果你还有更多的机器,都只需要装一个ssr修改下DNS就可以翻看nf了。不过你需要注意的是,这个方法有可能会造成滥用。建议不要公布自己的VPSIP地址。
如果看不了,那就看看你小鸡centos7的firewalld设置,打开下53端口吧:
咱们centos 7默认是安装了firewall的,如果你是centos6,喜欢iptables的请继续

附送:firewalld防火墙设置


Firewalld防火墙配置常用操作

firewall-cmd --state

查看centos7防火墙状态,
没安装的直接安

yum install firewalld

安装的更新下:

yum update firewalld

启动: systemctl start firewalld
请注意,firewalld防火墙默认只启动22端口的ssh,你如果之前改了端口的,请务必改回默认再启动,
如果你没开启开机自动加载firewalld,那就重启vps,否则重装vps吧

查看状态: systemctl status firewalld

停止: systemctl disable firewalld

禁用: systemctl stop firewalld
我们来演示下开启指定端口

防火墙的设置:

firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp 

如果你的ssr在开启防火墙之前安装的,请自行打开ssr对应端口

完毕后重启防火墙:

firewall-cmd --reload

然后list下看看所有规则是否生效:

firewall-cmd --list-all

小鸡上dig下netflix看看是否连接到aws ip:

dig @127.0.0.1 netflix.com
dig @127.0.0.1 nflxvideo.net

返回对应ip就是成了

2.Brook中转【未亲测,全照搬】


现在来说使用Brook中转的方法。中转同样也需要安装一个代理,但和之前用DNS+SNIProxy不同的地方是:

1.DNS+SNIProxy是把代理架设在不能看的机器上。

2.中转是把代理架设在能看的机器上,将不能看的机器的流量转发到能看的机器上。也就是大家常说的能看的那台当作“落地鸡。”

其实弄中转的方法很多,iptables/firewalld都是可以的,但是我个人觉得这两个防火墙配置太操蛋,我有更方便更好用的Brook为什么不用?(这句话是原作者说的)
鉴于有人不太明白两种方法区别,贴个图:
中转.jpg
实际上我个人现在都用v2ray的路由功能中转,挺适合NAT机器使用,说到底这些都是流量转发工具,市面上非常多同类工具,v2ray路由功能中转可以参考我的文章:


这里首先安装supervisor,因为我们可能需要中转多台机器,这里用systemd去运行brook就不太合适了:

yum -y install supervisor

下载最新版的brook并给执行权限:

mkdir -p /opt/brook && cd /opt/brook
wget https://github.com/txthinking/brook/releases/download/v20190401/brook
chmod +x brook

新建一个supervisor的配置文件:

nano /etc/supervisord.d/brook.ini

写入下面的配置:

[supervisord]
nodaemon=false

[program:brook]
priority=1
directory=/opt/brook
command=/opt/brook/brook relay -l :55555 -r SSIP:23333

注:55555是转发端口,SSIP是你能看Netflix那台机器的IP,后面的23333就是SS的端口号。

如果你要转发多个,那么就可以在supervisor里面写多个配置,例如[program:brook2]/[program:brook3]/[program:brook4]/等等更多…

配置好了之后启动supervisor就行了:

systemctl start supervisord
systemctl enable supervisord

本地配置SS连接的时候就填写这台中转服务器的IP+端口55555,密码/加密方式那些不变。

Last modification:August 12, 2020
If you think my article is useful to you, please feel free to appreciate