Openwrt Smartdns 设置与域名分流

效果: 默认域名走国外dns, 国内域名通过白名单走国内dns

域名白名单仓库

openwrt 路由器设置参考

常规设置

高级设置

第二dns服务器

下载白名单域名

添加定时任务下载文件 smartdns-domains.china.conf/root/ 目录下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh

# 检查网络连接
ping -c 5 ghproxy.net > /dev/null 2>&1
if [ $? -ne 0 ]; then
  echo "网络连接失败,请检查网络连接。"
  exit 1
fi

# 下载配置文件
wget -O "/tmp/china.conf" https://ghproxy.net/https://raw.githubusercontent.com/jqtmviyu/smartdns-china-domain/main/smartdns-domains.china.conf
if [ $? -ne 0 ]; then
  echo "下载 china.conf 失败。"
  exit 1
fi

# 替换配置文件
mv -f /tmp/china.conf /root/china.conf
echo '替换配置文件'

# 重新加载 smartdns
/etc/init.d/smartdns reload
echo  "重启smartdns"

自定义设置

需要先手动下载 /root/china.conf,否则自定义设置会报错

 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
34
35
36
37
38
39
40
41
# 缓存持久化文件路径
cache-file	/root/smartdns.cache
# 周期持久化
cache-checkpoint-time 43200

# 广东电信
server 202.96.128.86 -group china  -exclude-default-group
server 240e:1f:1::1 -group china  -exclude-default-group
# 广东联通
server 210.21.196.6 -group china  -exclude-default-group
server 2408:8899::8 -group china  -exclude-default-group
# 广东移动
server 211.136.192.6 -group china  -exclude-default-group
server 2409:8088:: -group china  -exclude-default-group
# 腾讯
server 119.29.29.29 -group china  -exclude-default-group
# 阿里
server 223.5.5.5 -group china  -exclude-default-group
server 2400:3200::1 -group china  -exclude-default-group
# 百度
server 180.76.76.76 -group china  -exclude-default-group

# OpenDNS
server-https https://208.67.222.222/dns-query -group gfw
# DNS.SB
server-https https://185.222.222.222/dns-query -group gfw
# CloudflareDNS
server-tls 1.1.1.1 -host-name 1dot1dot1dot1.cloudflare-dns.com -group gfw
# Quad9DNS
server-https https://9.9.9.9:5053/dns-query -group gfw

# lan地址, 必须 *- 没有a, 应该是bug
address /*-.example.lan/192.168.2.5

# 关闭ddns域名的缓存, 域名过期缓存, 设置china组
domain-rules /*-a.example.com/ -no-cache -no-serve-expired -nameserver china

# 加载china域名
domain-set -name china -file /root/china.conf
# china域名 china组 默认测速 允许ipv6 双栈优选 首次查询最快ping
domain-rules /domain-set:china/  -nameserver china -speed-check-mode ping,tcp:80,tcp:443 -address -6 -dualstack-ip-selection yes -response-mode first-ping

验证

日志设置info

1
2
3
4
5
6
7
ping github.com -c 5
cat /tmp/log/smartdns/smartdns.log | grep github.com | grep group
# group是default

ping baidu.com -c 5
cat /tmp/log/smartdns/smartdns.log | grep baidu.com | grep group
# group是china
build with Hugo, theme Stack, visits 0