文档 SmartDNS
1.安装
Debian12 下载 Releases中deb安装包,使用命令安装
dpkg -i smartdns.1.yyyy.MM.dd-REL.arm-debian-all.deb
注意Linux发行版是否存在53端口占用,可以使用
sudo ss -lnptu | grep :53
查看53端口监听情况。
2.配置文件
Debian的配置文件smartdns.conf在/etc/smartdns目录下
主要能用到的选项有
# 监听53端口
server-name smartdns
bind [::]:53
# 配置上游服务器,支持几乎所有DNS类型
server 8.8.8.8
server 1.1.1.1
server 9.9.9.9
server 64.6.64.6
server 80.80.80.80
server 208.67.222.222
#cache-size为缓存条数,不写会根据系统内存情况自动设置
cache-size 32768
cache-persist yes
cache-file /etc/smartdns/list.cache
#下面为开启缓存域名预获取,并缓存3天,期间每6小时重新向所有配置的上游获取一次
prefetch-domain yes
serve-expired-prefetch-time 21600
serve-expired yes
serve-expired-ttl 259200
serve-expired-reply-ttl 3
cache-checkpoint-time 86400
#DNS不返回IPV6地址,有需要再开启
#force-AAAA-SOA yes
#SmartDNS提供了两种测速模式,分别是ping和tcp。smartdns默认使用三次测速。第一次为ping,第二次为tcp的80端口,第三次为tcp的443端口
#smartdns会将最佳结果保存到缓存中
speed-check-mode ping,tcp:80,tcp:443
上述示例为海外VPS,国内机自行修改。
可用DNS服务器 https://dns.iui.im/
3.启动DNS服务器
systemctl enable smartdns
systemctl start smartdns
后续配置更改后,需要重启smartdns
systemctl restart smartdns
4.修改本机DNS
修改/etc/resolv.conf,只留nameserver 127.0.0.1
5.查询
执行
nslookup -querytype=ptr smartdns
查看命令结果中的 name 是否为 smartdns 或你的主机名,如果是则表示生效
$ nslookup -querytype=ptr smartdns
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
smartdns name = smartdns.
如果没有nslookup
安装一下
apt update
apt install dnsutils
可以对比一下smartdns和其他公共dns的查询结果
#使用本机127.0.0.1:53查询
nslookup www.bilibili.com
#使用GoogleDNS查询
nslookup www.bilibili.com 8.8.8.8
脚本测试
wget -O /root/latency.sh "https://raw.githubusercontent.com/Cd1s/network-latency-tester/main/latency.sh" && chmod +x /root/latency.sh && /root/latency.sh
叽里咕噜说啥呢,一键梭哈
bash <(curl -sL https://raw.githubusercontent.com/ddd-zero/smartdns_install/main/install.sh)
进阶使用: DNS分流解锁Netflix
- 访问
https://fofa.info/result?qbase64=Ym9keT0iQmFja2VuZCBub3QgYXZhaWxhYmxlIiAmJiBjb3VudHJ5PSJTRyI%3D随便找个dns ip - 访问
https://iplark.com/netflix输入刚刚找的ip看看解锁不解锁 - 修改smartdns 配置文件
nano /etc/smartdns/smartdns.conf
ctrl+O保存退出,重启smartdns服务#添加分组 server IP -group 组名 -exclude-default-group # > Netflix nameserver /netflix.com/组名 nameserver /netflix.net/组名 nameserver /nflximg.com/组名 nameserver /nflximg.net/组名 nameserver /nflxvideo.net/组名 nameserver /nflxext.com/组名 nameserver /nflxso.net/组名systemctl restart smartdns - 运行脚本检查是否解锁
bash <(curl -L -s https://github.com/1-stream/RegionRestrictionCheck/raw/main/check.sh) - 如果需要其他解锁,可以参考规则1stream-public-utils/stream.smartdns.list at main · 1-stream/1stream-public-utils · GitHub