sniproxy & smartdns 一键配置脚本
开源项目: https://github.com/lthero-big/Smartdns_sniproxy_installer
写在前面
最近黑五,买了一些机器,但机器解锁不太满意啊,于是在论坛四处找教程,最近东拼四凑出了这个脚本;
现有脚本的痛点:
1 、不能方便的配置流媒体平台,sniproxy 和 smartdns 的配置都需要手动修改,而且添加 DNS 机器也需要手动配置,有点儿麻烦; 2 、大多是使用 dnsmasq 和 sniproxy 结合的脚本,没有 smartdns 的。
知识
sniproxy:一个透明代理,反向代理流媒体网站(如 Netflix ),80 和 443 端口不得被占用,且需要开放
smartdns:一个 DNS 服务器,用来分流 DNS 域名是否走 sniproxy 代理
必要准备
- 一台或多台能解锁流媒体的 vps ,简称“解锁机”
- 没有 vps 的可以使用免费或付费的 dns 解锁服务,请注册 Alice 免费的 DNS 解锁服务Alice
- 一台或多台不能解锁流媒体的 vps ,简称“被解锁机”
实现效果
- 让一台 vps 同时解锁多个地区的流媒体(美国、新加坡、日本、香港)
- 实现使用一个节点,同时解锁香港 b 站,美国油管,新加坡网飞以及日本 HBO 等
参考项目
- https://github.com/myxuchangbin/dnsmasq_sniproxy_install
- https://github.com/bingotl/dns_unlock
- https://github.com/Jimmyzxk/DNS-Alice-Unlock
- https://www.nodeseek.com/post-180592-1
优点
- smartdns 拥有更快查询和更强的广告过滤等功能
- 快速添加您想解锁的地区,一键配置,一键修改,不用再使用复杂的编辑功能
- 快速配置您想添加的解锁机服务器,方便修改
- 解锁机哪怕宕机也不影响被解锁机正常使用
脚本下载与安装
脚本下载
wget https://raw.githubusercontent.com/lthero-big/Smartdns_sniproxy_installer/refs/heads/main/smtdns_install.sh -O smtdns_install.sh
脚本将保存在本地 ,命名为 smtdns_install.sh ,您可以随时执行
脚本执行
bash smtdns_install.sh
阅读顺序
如果您不想配置解锁机,请注册 Alice 免费的 DNS 解锁服务Alice,申请 DNS 解锁。随后,请阅读“被解锁机”篇章,使用
nameserver
添加 DNS 服务器。如果您有自己的解锁机,可以先阅读“解锁机”篇章,配置自己的解锁机,随后使用
address
添加 DNS 服务器。
被解锁机
功能解释
-----------被解锁机--------------
1. 安装 SmartDNS
2. 重新配置 SmartDNS
3. 添加上游 DNS 并分组
4. 查看已配置的上游 DNS 组
5. 查看流媒体平台列表
6. 添加一家流媒体平台到 SmartDNS
7. 添加一个地区流媒体到 SmartDNS
8. 添加所有流媒体平台到 SmartDNS
9. 查看已经添加的流媒体
-
输入 1 ,安装 smartdns ;随后会询问是否添加上游 DNS 并分级
- 如果你已经有 Alice 的解锁服务,或者您自建了 DNS 服务器,直接输入
y
; -
随后,会被邀请输入上游服务器 ip 地址,以及给它命名,简短即可方便区分
- 假设输入了
12.23.34.45
,命令为alice-hk
- 假设输入了
- 直到输入
N
,完成 smartdns 的初始配置
- 如果你已经有 Alice 的解锁服务,或者您自建了 DNS 服务器,直接输入
- 输入 2 ,会删除已有的 smartdns 配置,并重新创建
- 输入 3 ,会继续添加上游 DNS
-
输入 6/7/8 ,添加流媒体平台(注意是一家,一地区,还是所有平台)
- 假设输入 7 ,想将香港地区的流媒体,都让
alice-hk
解锁 - 请输入
nameserver/address
,如果使用 Alice 解锁服务,选择nameserver
- 直到输入
N
,完成地区的添加
- 假设输入 7 ,想将香港地区的流媒体,都让
- 输入 9 ,查看已经添加的流媒体及对应的解锁服务器
关于 nameserver 与 address 选择
-
如果使用 Alice 解锁服务,选择 nameserver
-
如果自建的解锁机运行了 smartdns ,选择 address
-
如果自建的解锁机不运行 smartdns ,选择 address
快速上手
第一步:输入 1 ,安装 smartdns ;随后会询问是否添加上游 DNS 并分级
- 如果你已经有 Alice 的解锁服务,或者您自建了 DNS 服务器,直接输入
y
; -
随后,会被邀请输入上游服务器 ip 地址,以及给它命名,简短即可方便区分
- 假设输入了
12.23.34.45
,命令为alice-hk
- 假设输入了
- 直到输入
N
,完成 smartdns 的初始配置
第二步:输入 6/7/8 ,添加流媒体平台(注意是一家,一地区,还是所有平台)
- 假设输入 7 ,如果使用 Alice 解锁服务,想将香港地区的流媒体都让
alice-hk
解锁,选择nameserver
- 直到输入
N
,完成地区的添加
确保 smartdns 服务启动了即可
SmartDNS 服务状态:运行中
SmartDNS 开机自启:已启用
system DNS 服务状态:已停止
system DNS 开机自启:未启用
sniproxy 服务状态:已停止
sniproxy 开机自启:未启用
解锁机
功能解释
-----------sniproxy 相关(解锁机)--------------
11. 安装并启动 sniproxy
12. 添加流媒体平台到 sniproxy
13. 启动/重启 sniproxy 服务并开机自启
14. 停止 sniproxy 并关闭开机自启
15. 一键对被解锁机放开 80/443/53 端口
16. 一键开启指定 防火墙(ufw) 端口
- 输入 11 ,会安装 sniproxy 并一键添加一些常用的流媒体平台(不会包含所有的)
- 输入 12:添加想要的流媒体平台到 sniproxy ,与上面一样,可以选择添加一个平台或一个地区的平台
- 输入 13/14:控制 sniproxy 服务
- 输入 15:必做,防止被他人利用,需要添加对被解锁机的访问权限
- 输入 16:额外功能,开启某个防火墙端口
快速上手
第一步:输入 15 ,添加对被解锁机的访问权限,需要输入被解锁机的 ip即可
第二步:输入 11 ,会安装 sniproxy 并一键添加一些常用的流媒体平台
第三步:输入 12:添加想要的流媒体平台到 sniproxy ;如果你的机器是美国机,则可以添加美国的流媒体服务到 sniproxy 中,sniproxy 会自动重启;
确保 sniproxy 服务启动即可
SmartDNS 服务状态:已停止
SmartDNS 开机自启:未启用
system DNS 服务状态:运行中
system DNS 开机自启:已启用
sniproxy 服务状态:运行中
sniproxy 开机自启:已启用
高级玩家
前面只让 smartDNS 运行在了被解锁机上,当然,smartdns 可以运行在解锁机上,从而实现嵌套解锁。
嵌套解锁:将上游的 DNS 服务器指向 DNS 商家提供的服务器,从而让解锁机下游的服务器都能享受 DNS 商家提供的解锁权益(可能会违反商家的规则)
本脚本当然可以使用在解锁机上,下面是解锁机的 smartdns 配置
server 13.23.33.43 IP -group sg -exclude-default-group
如果解锁机使用解锁机 IP ,则下游的被解锁机网飞会定位为解锁机的 ip (如美国)
address /netflix.com/xx.xx.xx.xx
address /netflix.net/xx.xx.xx.xx
address /nflximg.com/xx.xx.xx.xx
address /nflximg.net/xx.xx.xx.xx
address /nflxvideo.net/xx.xx.xx.xx
address /nflxext.com/xx.xx.xx.xx
address /nflxso.net/xx.xx.xx.xx
> 如果解锁机使用上游的 DNS 商家提供的 IP ,则下游的被解锁机网飞会定位为上游 ip (如新加坡)
nameserver /netflix.com/sg
nameserver /netflix.net/sg
nameserver /nflximg.com/sg
nameserver /nflximg.net/sg
nameserver /nflxvideo.net/sg
nameserver /nflxext.com/sg
nameserver /nflxso.net/sg