灵活快速的DNS分组转发器
GFWList
对DNS请求进行分组查找hosts -> 查找缓存 -> 匹配规则 -> 指定group处理 -> 重定向 -> 设置缓存
ts-dns.toml
(可选)并运行进程:
# ./ts-dns -h # 显示命令行帮助信息
# ./ts-dns -c ts-dns.toml # 指定配置文件名
./ts-dns
kill -SIGHUP <PID> # 重载配置文件
完整配置文件参见
ts-dns.full.toml
默认配置(ts-dns.toml
),开箱即用
listen = ":53"
[groups]
[groups.clean]
dns = ["223.5.5.5", "114.114.114.114"]
concurrent = true
[groups.dirty]
dns = [""] # 省略
gfwlist_file = "gfwlist.txt"
选择ping值最低的IPv4地址(启用时建议以root权限运行本程序)
# ...
[groups.clean]
dns = ["223.5.5.5", "114.114.114.114"]
fastest_v4 = true
# ...
指定hosts文件和自定义hosts
# ...
hosts_files = ["adaway.txt"]
[hosts]
"www.example.com" = "1.1.1.1"
# ...
使用socks5代理转发DNS请求
# ...
[groups.dirty]
socks5 = "127.0.0.1:1080"
# ...
转发至上游DNS时默认附带指定ECS信息(暂不支持DOH)
# ...
[groups.clean]
ecs = "1.2.4.0/24"
# ...
自定义域名分组
# ...
[groups.work]
dns = ["10.1.1.1"]
rules = ["company.com"]
# ...
动态添加IPSet记录(使用前请阅读ts-dns.full.toml
对应说明)
# ...
[groups.dirty]
ipset = "blocked"
ipset_ttl = 86400
# ...