2019年4月

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地址,别直接复制代码 ::aru:shutup::

启动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

写入如下配置:
[collapse status="false" title="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

[/collapse]
启动SNIProxy并添加开机自启:

systemctl start sniproxy
systemctl enable sniproxy

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

地址自行谷歌

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

小鸡上接收端的操作


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

现在你需要将这台机器的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防火墙设置


[collapse status="false" title="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就是成了
[/collapse]

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


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

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

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

其实弄中转的方法很多,iptables/firewalld都是可以的,但是我个人觉得这两个防火墙配置太操蛋,我有更方便更好用的Brook为什么不用?(这句话是原作者说的)
鉴于有人不太明白两种方法区别,贴个图:
中转.jpg
实际上我个人现在都用v2ray的路由功能中转,挺适合NAT机器使用,说到底这些都是流量转发工具,市面上非常多同类工具,v2ray路由功能中转可以参考我的文章:
[post cid="598" /]
这里首先安装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,密码/加密方式那些不变。

56587072_p0.jpg
Handsome主题还是非常好用的,作为个人博客来说非常不错,推荐去找C大购买,价格也不贵:
https://www.ihewro.com/archives/489/

之前每次更新,手动删除handsome文件夹和Links插件文件夹,直接拷贝新的主题和Links插件即可正常使用
而这次更新到5.1.1版本直接提示Server Error了
提供群友分享的方法如下:
cd到typecho安装目录,也就是你的网站根目录,然后vi config.inc.php 配置文件,加入一行:

define('__TYPECHO_DEBUG__', true);

:wq保存后打开网站,会进入debug模式,给出提示Links配置文件未找到,这样就知道错误原因了
直接输入omo.moe/admin 默认后台网址,登录后台,外观设置禁用Links插件后再启用,一切就更新完毕了
搞定之后记得将debug模式改成false,关闭调试

防止这个错误发生的方法就是更新前记得先去后台将Links插件先关闭掉,就可以避免这个问题了

55105308_p0.jpg

OP家的法国独服又打折啦,现在只需5.99欧:
https://oneprovider.com/order/item/dediconf/49
法国location,1TB hdd/128GB ssd,4GB内存,G口不限量独服,价格还是非常上算的,支持Alipay和微信支付
不过这家独服入手后还需要一些调教,分享过程如下:

首先是修改root密码


  1. 重启进入rescue mode (Ubuntu Image)
  2. sudo fdisk -l 查看下系统root分区位置,我的是 /dev/sda3
  3. 挂载系统盘:sudo mount /dev/sda3 /mnt
  4. 再挂载下其他东西:for d in dev sys run proc; do sudo mount --bind /$d /mnt/$d; done
  5. 然后进入原系统:sudo chroot /mnt
  6. 最后就可以改下原系统的root密码了: passwd root

接下来是更替系统自带的vim


我安装的是ubuntu 14.04 lTS 64位,系统自带vim真的辣手,直接删了吧!

apt remove vim*

然后 apt install -y vim vim-common

安装bbr,手动更换内核,补齐缺失的驱动


op这个系统啊,好像缺少一些网卡驱动,参考这个网站:
https://npchk.info/oneprovider-10-15eur-kernel/
自动默认目前ubuntu最新内核是5.0.7的,之前没注意直接安装最新内核了,然后安装完毕提示错误:

dpkg: error processing package linux-image-unsigned-5.0.7-050007-generic (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-unsigned-5.0.7-050007-generic
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-5.0.7-050007-generic
Found linux image: /boot/vmlinuz-3.13.0-168-generic
Found initrd image: /boot/initrd.img-3.13.0-168-generic
done

也没在意,直接重启,然后就没有然后了,于是ticket客服重新换台机器折腾吧 ::aru:despise::

重换成功,我们开始手动更换内核为4.10.5


  1. 下载并安装内核4.10.5

    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.5/linux-headers-4.10.5-041005_4.10.5-041005.201703220931_all.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.5/linux-headers-4.10.5-041005-generic_4.10.5-041005.201703220931_amd64.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.5/linux-image-4.10.5-041005-generic_4.10.5-041005.201703220931_amd64.deb
    dpkg -i linux-*.deb

  2. 下载安装内核缺少的网卡驱动

    mkdir -p /lib/firmware/bnx2/
    cd /lib/firmware/bnx2/
    wget https://github.com/cernekee/linux-firmware/raw/master/bnx2/bnx2-mips-09-6.2.1b.fw
    wget https://github.com/cernekee/linux-firmware/raw/master/bnx2/bnx2-mips-06-6.2.3.fw

  3. 卸载旧的3.13内核
    先查看下系统的内核版本:

    dpkg -l|grep linux-image

我们新安装的系统内核是4.10.5,所以将列表中的3.13.0内核卸载掉:

apt-get purge linux-image-3.13.0-* linux-image-extra-3.13.0-139-*

提示当前正在运行于此内核上,默认是高亮左侧忽略选项,记得方向键往右选择继续卸载
uninstall kernel.png

再刷新GRUB:

update-grub

最后开启我们心爱的BBR:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

重启,应该就ok了
查看是否开启bbr,可以输入以下代码查询:

sysctl net.ipv4.tcp_available_congestion_control

返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
或者为:
net.ipv4.tcp_available_congestion_control = reno cubic bbr

sysctl net.ipv4.tcp_congestion_control
返回值一般为:
net.ipv4.tcp_congestion_control = bbr

sysctl net.core.default_qdisc
返回值一般为:
net.core.default_qdisc = fq

lsmod | grep bbr
返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。

最后,开启我们星大的pt豪华脚本,即可起航:


https://github.com/Aniverse/inexistence

inexistence.png
deluge默认配置测试了下,凑合能用,比百兆强一点,毕竟便宜
无标题.png
顺便可以改改sshd端口什么的,修改不能root登录之类的:
vi /etc/ssh/sshd_config
Port 22改成你需要的端口,切记测试ok后再删掉22端口
PermitRootLogin without password改成
PermitRootLogin no
esc 后进入command 模式,输入:wq保存
最后重启下sshd服务:
sudo service ssh restart

sudo /etc/init.d/ssh restart
再看看是否能正常登录对应端口,一切就绪