碎碎念
流媒体解锁呢很早就想弄,不过一直比较懒似乎也没太大需求,毕竟中转就能曲线救国。
一般市面上用的都是sniproxy反代HTTPS流量,反正就是某古早脚本。sniproxy配置比较简单就是会占用443。使用sniproxy就可以实现反代,简单的来说就是sniproxy服务器收到信息然后去访问b站等等流媒体,然后把网站数据原封不动的返回给你,就是解锁区域限制了。本文“借鉴”大佬的文章,并稍作修改,使用Nginx的stream实现sniproxy的功能,可以让解锁与HTTPS网站共存。
这里不得不骂一下Netflix封IP的行为,反正财报会越来越难看,反正有Disney+这个强有力的竞争对手,另外我选择盗版。本文能够类比实现各种流媒体解锁,有强迫症的还能配合ipset做一个全解锁小鸡(x。
安装Nginx与Dnsmasq
1
| apt install nginx dnsmasq -y
|
配置Nginx
编辑文件 /etc/nginx/nginx.conf
,添加 steam
区域,里面加一个 server 用来“反代” HTTPS 数据流,再加一组正则映射规则通过 SNI 过滤域名,只允许 Netflix 域名的 SNI。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| stream {
# 加一组 map,根据规则过滤 $ssl_preread_server_name (也就是请求的 SNI)
# 将过滤过的 SNI 存入自定义变量 $filtered_sni_name,
# 如果没有匹配到任何规则,则默认为一个 443 端口没有服务的本地回环。
# 加 map 来过滤流量的意义在于防止服务器被滥用成任意网站的反代
map $ssl_preread_server_name $ssl_target {
~^ipv4-(?<suffix>.*) ipv6-${suffix}:443;
#~^(.*|)fast\.com $ssl_preread_server_name:443;
~^(.*|)netflix\.ca $ssl_preread_server_name:443;
~^(.*|)netflix\.com $ssl_preread_server_name:443;
~^(.*|)netflix\.net $ssl_preread_server_name:443;
~^(.*|)netflixinvestor\.com $ssl_preread_server_name:443;
~^(.*|)netflixtechblog\.com $ssl_preread_server_name:443;
~^(.*|)nflxext\.com $ssl_preread_server_name:443;
~^(.*|)nflximg\.com $ssl_preread_server_name:443;
~^(.*|)nflximg\.net $ssl_preread_server_name:443;
~^(.*|)nflxsearch\.net $ssl_preread_server_name:443;
~^(.*|)nflxso\.net $ssl_preread_server_name:443;
~^(.*|)nflxvideo\.net $ssl_preread_server_name:443;
default "127.255.255.255";
}
server {
listen 443;
#access_log /var/log/nginx/stream_access.log main;
resolver 1.1.1.1 ipv6=on;
resolver_timeout 1s;
# 只代理经过 SNI 过滤的流量,
# 其他流量都被丢入不存在的地址
proxy_pass $ssl_target;
ssl_preread on;
}
}
|
重载:
当然可以直接在Nginx配置白名单,或是使用UFW、IPT等
1
2
| allow your-ip;
deny all;
|
配置Dnsmasq
编辑 /etc/dnsmasq.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| listen-address=your-ip
#address=/fast.com/your-ip
address=/netflix.ca/your-ip
address=/netflix.com/your-ip
address=/netflix.net/your-ip
address=/netflixinvestor.com/your-ip
address=/netflixtechblog.com/your-ip
address=/nflxext.com/your-ip
address=/nflximg.com/your-ip
address=/nflximg.net/your-ip
address=/nflxsearch.net/your-ip
address=/nflxso.net/your-ip
address=/nflxvideo.net/your-ip
|
重启:
1
| systemctl restart dnsmasq
|
配置代理
略,你要是不会的话估计没有该需求🤪
引用
Nginx + Dnsmasq 解锁 Netflix