SmartDNS 安装教程

项目地址 GitHub - pymumu/smartdns: A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT,DoQ。

文档 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

  1. 访问https://fofa.info/result?qbase64=Ym9keT0iQmFja2VuZCBub3QgYXZhaWxhYmxlIiAmJiBjb3VudHJ5PSJTRyI%3D 随便找个dns ip
  2. 访问https://iplark.com/netflix输入刚刚找的ip看看解锁不解锁
  3. 修改smartdns 配置文件
    nano /etc/smartdns/smartdns.conf
    
    #添加分组
    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/组名
    
    ctrl+O保存退出,重启smartdns服务
    systemctl restart smartdns
    
  4. 运行脚本检查是否解锁bash <(curl -L -s https://github.com/1-stream/RegionRestrictionCheck/raw/main/check.sh)
  5. 如果需要其他解锁,可以参考规则1stream-public-utils/stream.smartdns.list at main · 1-stream/1stream-public-utils · GitHub

牛逼牛逼牛逼

我的文章怎么让你给我偷过去了 :scream:

那咋啦