DNS分流/转发器:TS-DNS配置及使用方法,Telescope DNS分组/转发器GitHub地址

2020-03-26
0评论
/
1576阅读
爱搜啊

简单易用的DNS分组/转发器

Telescope DNS

支持多 hosts 文件 + 手动指定 hosts

支持按手动后缀匹配 /半智能污染检测 /GFWList 进行分组

DNS 查询支持 socks5 代理

简单 DNS 记录缓存

GitHub地址:https://github.com/wolf-joe/ts-dns

DNS分流/转发器:TS-DNS配置及使用方法

基本特性

默认基于CN IP列表 + GFWList进行域名分组;

支持DNS over UDP/TCP/TLS/HTTP;

支持并发请求/socks5代理请求上游DNS;

支持多Hosts文件 + 自定义Hosts;

支持配置文件自动重载;

支持DNS查询缓存(TTL倒计时、ECS缓存);

支持将查询结果添加至IPSet。

DNS查询请求处理流程

当域名匹配指定规则(配置文件里各组的rules)时,将请求转发至对应组上游DNS并直接返回;

如未匹配规则,则假设域名为clean组,向clean组的上游DNS转发查询请求,并做如下判断:

如果该域名匹配GFWList列表,则向dirty组的上游DNS转发查询请求并返回;

否则返回查询结果。

如果查询结果中所有IPv4地址均为CN IP,则直接返回;

如果查询结果中出现非CN IP,进一步判断:

Telescope DNS使用说明

在Releases页面下载对应系统和平台的压缩包;

解压后按需求编辑配置文件ts-dns.toml(可选)并运行进程:

# ./ts-dns -c ts-dns.toml  # 指定配置文件名
# ./ts-dns -r  # 自动重载配置文件
./ts-dns

Telescope DNS配置示例

完整配置文件参见ts-dns.full.toml

1.默认配置(ts-dns.toml),开箱即用

listen = ":53"
gfwlist = "gfwlist.txt"
cnip = "cnip.txt"

[groups]
  [groups.clean]
  dns = ["119.29.29.29", "223.5.5.5", "114.114.114.114"]
  concurrent = true
  
  [groups.dirty]
  dns = [""]  # 省略

2.指定hosts文件和自定义hosts

# ...
hosts_files = ["adaway.txt"]
[hosts]
"www.example.com" = "1.1.1.1"
# ...

3.使用socks5代理转发DNS请求

# ...
 [groups.dirty]
  socks5 = "127.0.0.1:1080"
 # ...

4.自定义域名分组

# ...
 [groups.work]
  dns = ["10.1.1.1"]
  rules = ["company.com"]
  # ...

5.动态添加IPSet记录(使用前请阅读ts-dns.full.toml对应说明)

# ...
 [groups.dirty]  ipset = "blocked"
 ipset_ttl = 86400
 # ...

完整配置示例

listen = ":53"
gfwlist = "gfwlist.txt"
hosts_files = ["/etc/hosts"]
[redis]
host = "localhost:6379"
password = ""
db = 10
[hosts]
"example.com" = "8.8.8.8"
[groups]
  [groups.clean]
  dns = ["119.29.29.29", "223.5.5.5", "114.114.114.114"]
  [groups.dirty]
  socks5 = "127.0.0.1:1080"
  dns = ["8.8.8.8", "1.1.1.1"]
  suffix = ["google.com", "twimg.com", "quoracdn.net"]
  [groups.work]
  dns = ["10.1.1.1"]
  suffix = ["company.com"]

TODO

ping测速择优

完善单元测试

设置fallback DNS

使用ECS转发DNS请求


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2020-03-26发布