wolf-joe / ts-dns

Telescope DNS,灵活快速的DNS分组转发器
MIT License
316 stars 31 forks source link

v0.12.0 #13

Closed vmvz closed 4 years ago

vmvz commented 4 years ago

升级到0.12.0 , 发现好多错误, 例如 www.taobao.com 都无法解析,什么原因?我改如何排查 网络是ok的.谢谢

wolf-joe commented 4 years ago

从日志上看是网络问题。clean组的dns配置了socks5代理(127.0.0.1:7891),请检查这个代理的可用性。

vmvz commented 4 years ago

从日志上看是网络问题。clean组的dns配置了socks5代理(127.0.0.1:7891),请检查这个代理的可用性。

  1. 代理正常
  2. 默认配置不可用 [groups.clean]
  3. 我临时改成这样, 可用:
    [groups.clean]  # 必选分组,默认域名所在分组
    socks5 = "127.0.0.1:7891"  # 当使用国外53端口dns解析时推荐用socks5代理解析
    dns = ["114.114.114.114", "223.5.5.5"]  # 如不想用socks5代理解析时推荐使用国外非53端口dns
    dot = ["1.0.0.1:853@cloudflare-dns.com"]  # dns over tls服务器
    doh = ["https://dns.rubyfish.cn/dns-query"]  # dns over https服务器
weargle commented 4 years ago

版本为最新版本 测试结果 image

clean组配置内容 [groups.clean] dns = ["119.29.29.29", "223.5.5.5", "114.114.114.114"] concurrent = true

vmvz commented 4 years ago

版本为最新版本 测试结果 image

clean组配置内容 [groups.clean] dns = ["119.29.29.29", "223.5.5.5", "114.114.114.114"] concurrent = true

你试试ts-dns-full中的默认配置

  [groups.clean]  # 必选分组,默认域名所在分组
  ecs = "1.2.4.0/24"  # edns-client-subnet信息,配置后转发DNS请求时默认附带(已有ecs时不覆盖),暂不支持doh
  dns = ["119.29.29.29/tcp", "223.5.5.5:53", "114.114.114.114"]  # DNS服务器列表,默认使用53端口
  concurrent = true  # 并发请求dns服务器列表
  rules = ["qq.com", ".baidu.com", "*.taobao.com"]  # "qq.com"规则可匹配"test.qq.com"、"qq.com"两种域名,".qq.com"和"*.qq.com"规则无法匹配"qq.com"
  rules_file = "rules.txt"  # 规则文件,每行一个规则

  fastest_v4 = true  # 选择ping值最低的ipv4地址作为响应,启用且使用icmp ping时建议以root权限允许本程序
  tcp_ping_port = 80  # 当启用fastest_v4时,如该值大于0则使用tcp ping,小于等于0则使用icmp ping
wolf-joe commented 4 years ago

抱歉,看错了。 119.29.29.29对DNS请求格式较为严格,直接在ts-dns中配置119.29.29.29容易出现i/o timeoutconnection refused等连接失败的情况(参考https://github.com/shawn1m/overture/issues/108 ),这点在后续版本中会兼容。 至于223.5.5.5114.114.114.114,在我的网络环境下极少出现连接失败的情况,日志里显示的两个DNS服务同时连接失败导致解析错误的情况我没有复现。

vmvz commented 4 years ago

抱歉,看错了。 119.29.29.29对DNS请求格式较为严格,直接在ts-dns中配置119.29.29.29容易出现i/o timeoutconnection refused等连接失败的情况(参考shawn1m/overture#108 ),这点在后续版本中会兼容。 至于223.5.5.5114.114.114.114,在我的网络环境下极少出现连接失败的情况,日志里显示的两个DNS服务同时连接失败导致解析错误的情况我没有复现。

你推荐用 ts-dns-full 还是 简版配置?

我看你配置的 dns服务器都不同, 一个是 opendns, 一个是 google/cf dns.

如果用 ts-dns-full, [groups.clean]中 119.29.29.29有问题也没关系吧, 还有2个, 但是整体都不能用.

wolf-joe commented 4 years ago

抱歉,看错了。 119.29.29.29对DNS请求格式较为严格,直接在ts-dns中配置119.29.29.29容易出现i/o timeoutconnection refused等连接失败的情况(参考shawn1m/overture#108 ),这点在后续版本中会兼容。 至于223.5.5.5114.114.114.114,在我的网络环境下极少出现连接失败的情况,日志里显示的两个DNS服务同时连接失败导致解析错误的情况我没有复现。

你推荐用 ts-dns-full 还是 简版配置?

我看你配置的 dns服务器都不同, 一个是 opendns, 一个是 google/cf dns.

如果用 ts-dns-full, [groups.clean]中 119.29.29.29有问题也没关系吧, 还有2个, 但是整体都不能用.

ts-dns-full.toml是用来展示全部配置项的,推荐使用者参考ts-dns-full.toml编辑自己的配置文件。

wolf-joe commented 4 years ago

使用配置如下:

[groups]
  [groups.clean]  # 必选分组,默认域名所在分组
  ecs = "1.2.4.0/24"  # edns-client-subnet信息,配置后转发DNS请求时默认附带(已有ecs时不覆盖),暂不支持doh
  dns = ["119.29.29.29/tcp", "223.5.5.5:53", "114.114.114.114/tcp"]  # DNS服务器列表,默认使用53端口
  concurrent = true  # 并发请求dns服务器列表

DIG命令:

➜  ~ dig -p 5305 www.taobao.com

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -p 5305 www.taobao.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; CLIENT-SUBNET: 1.2.4.0/24/24
;; QUESTION SECTION:
;www.taobao.com.            IN  A

;; ANSWER SECTION:
www.taobao.com.     51  IN  CNAME   www.taobao.com.danuoyi.tbcache.com.
www.taobao.com.danuoyi.tbcache.com. 51 IN A 101.37.183.171
www.taobao.com.danuoyi.tbcache.com. 51 IN A 101.37.183.170

;; Query time: 8 msec
;; SERVER: 127.0.0.1#5305(127.0.0.1)
;; WHEN: Mon Apr 20 17:32:05 CST 2020
;; MSG SIZE  rcvd: 216

运行日志:

WARN[0000] enable concurrent dns in group clean         
WARN[0000] listen on :5305/udp                          
INFO[0002] cn/empty ipv4                                 domain=www.taobao.com. group=clean src=127.0.0.1 type=A
ERRO[0004] query dns error: read tcp 10.131.5.200:41696->119.29.29.29:53: i/o timeout
weargle commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 image

wolf-joe commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 image

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

weargle commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我不清楚我是否对你的配置文件里的描述误解,“fastest_v4 = true # 选择ping值最低的ipv4地址作为响应,启用且使用icmp ping时建议以root权限允许本程序”你这个配置参数上面的描述我的理解是使用ping工具ping配置的dns的ip,根据ip返回的耗时来判断使用哪个请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了不少而已,但比不使用这个参数的慢上许多,我不清楚为什么使用的这个参数的在结果缓存后查询速度比不使用的慢那么多。 看了网上的资料我还是不太认同使用ping值作为选取作为上游dns的依据,ping只是作为连通的测试,感觉不应该作为选取的依据。

wolf-joe commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我不清楚我是否对你的配置文件里的描述误解,“fastest_v4 = true # 选择ping值最低的ipv4地址作为响应,启用且使用icmp ping时建议以root权限允许本程序”你这个配置参数上面的描述我的理解是使用ping工具ping配置的dns的ip,根据ip返回的耗时来判断使用哪个请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了不少而已,但比不使用这个参数的慢上许多,我不清楚为什么使用的这个参数的在结果缓存后查询速度比不使用的慢那么多。 看了网上的资料我还是不太认同使用ping值作为选取作为上游dns的依据,ping只是作为连通的测试,感觉不应该作为选取的依据。

看来是我文档写的不行……fastest_v4参数是我参考smartdns做的,开启后ts-dns会并发请求所有上游DNS,从所有解析到的ipv4地址中选择一个ping值最低的作为最终结果。

weargle commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我清楚我是否对您的配置文件里的描述误解,“ fastest_v4 = true#选择ping值最低的ipv4地址作为响应,启用并使用icmp ping时建议以root权限允许本程序”描述我的理解是使用ping工具ping配置的dns的ip,根据ip返回的耗时来判断使用该请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况下连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了不少而而已,但比不使用这个参数的慢上很多,我显然为什么使用的这个参数的在结果缓存后查询 度比不使用的慢那么多。 看了网上的资料我还是不太认同使用的ping值作为选取作为上游DNS的依据,平只是作为连通的测试,感觉不应该作为选取的依据。

看来是我文档写的不行…… fastest_v4参数是我参考smartdns做的,开启后ts-dns会并发请求所有上游DNS,从所有解析到的ipv4地址中选择一个ping值最低的作为最终结果。

看来是我理解错了。不过这个参数还是带来一个问题,查询速度会比较慢些,没有这个参数第一次会慢,之后基本秒回。那个dns我使用过,有个问题是广告域名过多整个配置文件不仅大,还有dns不可用了。 好奇的问下,ecs这个参数dirty组支不支持。

vmvz commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我清楚我是否对您的配置文件里的描述误解,“ fastest_v4 = true#选择ping值最低的ipv4地址作为响应,启用并使用icmp ping时建议以root权限允许本程序”描述我的理解是使用ping工具ping配置的dns的ip,根据ip返回的耗时来判断使用该请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况下连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了不少而而已,但比不使用这个参数的慢上很多,我显然为什么使用的这个参数的在结果缓存后查询 度比不使用的慢那么多。 看了网上的资料我还是不太认同使用的ping值作为选取作为上游DNS的依据,平只是作为连通的测试,感觉不应该作为选取的依据。

看来是我文档写的不行…… fastest_v4参数是我参考smartdns做的,开启后ts-dns会并发请求所有上游DNS,从所有解析到的ipv4地址中选择一个ping值最低的作为最终结果。

看来是我理解错了。不过这个参数还是带来一个问题,查询速度会比较慢些,没有这个参数第一次会慢,之后基本秒回。那个dns我使用过,有个问题是广告域名过多整个配置文件不仅大,还有dns不可用了。 好奇的问下,ecs这个参数dirty组支不支持。

  1. 建议&期望, 以后来一个推荐的配置. 这样我们根据推荐配置来配置就好了. ts-dns.toml还是开箱即用. ts-dns-full 改成你推荐的配置.
  2. 是否有考虑结合nextdns ? 我们把 8.8.8.8/1.1.1.1 换成 nextdns 这样的方案
wolf-joe commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我清楚我是否对您的配置文件里的描述误解,“ fastest_v4 = true#选择ping值最低的ipv4地址作为响应,启用并使用icmp ping时建议以root权限允许本程序”描述我的理解是使用ping工具ping配置的dns的ip,根据ip返回的耗时来判断使用该请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况下连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了不少而而已,但比不使用这个参数的慢上很多,我显然为什么使用的这个参数的在结果缓存后查询 度比不使用的慢那么多。 看了网上的资料我还是不太认同使用的ping值作为选取作为上游DNS的依据,平只是作为连通的测试,感觉不应该作为选取的依据。

看来是我文档写的不行…… fastest_v4参数是我参考smartdns做的,开启后ts-dns会并发请求所有上游DNS,从所有解析到的ipv4地址中选择一个ping值最低的作为最终结果。

看来是我理解错了。不过这个参数还是带来一个问题,查询速度会比较慢些,没有这个参数第一次会慢,之后基本秒回。那个dns我使用过,有个问题是广告域名过多整个配置文件不仅大,还有dns不可用了。 好奇的问下,ecs这个参数dirty组支不支持。

第一次查询确实会慢些,比如我本地向223.5.5.5请求www.baidu.com,解析出两个ip,开启测速前大概耗时10ms,开启测速后大概耗时100ms。不过只要不主动禁用缓存,在缓存有效期内的后续查询耗时都在1ms左右,所以影响应该不算大。 每个组在功能方面都是一致的,区别只在于默认匹配规则的优先级,所以添加ecs信息对所有组都适用。

weargle commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我清楚我是否对您的配置文件里的描述错误解,“ faster_v4 = true#选择值最低的ipv4地址作为响应,启用并使用icmp ping时建议以root权限允许本程序”工具ping配置的dns的ip,根据ip返回的耗时来判断使用该请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况下连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了很多而而已,但比不使用这个参数的慢上很多,我可以为什么使用的这个参数的在结果缓存后查询度比不使用的慢那么多。 看了网上的资料我还是不太认同使用的ping值作为选择作为上游DNS的依据,平只是作为连通的测试,感觉不应该作为拾取的依据。

看来是我文档写的不行…… fastest_v4参数是我参考smartdns做的,开启后ts-dns会并发请求所有上游DNS,从所有解析到的ipv4地址中选择一个ping值最低的作为最终结果。

看来是我理解错了。不过这个参数还是带来一个问题,查询速度会比较慢些,没有这个参数第一次会慢,之后基本秒回。那个dns我使用过,有个问题是广告域名过多的整个配置文件甚至很大,还有dns不可用了。 好奇的问下,ecs这个参数dirty组支不支持。

第一次查询确实会慢些,放在我本地向223.5.5.5请求www.baidu.com,解析出两个ip,开启测速前大概耗时10ms,开启测速后大概耗时100ms。查询耗时都在1毫秒左右,所以影响应该不算大。 每个组在功能方面都是一致的,区别仅在于替换匹配规则的优先级,所以添加ecs信息对所有组都适用。

好的

wolf-joe commented 4 years ago

结果是一样的,还有不建议使用fastest_v4 = true tcp_ping_port = 80这两个参数,如果ping值小的dns出现超时情况会导致没有办法查询。 图片

能详细说一下吗?我在代码里做了一些规避操作,即使是所有IP均ping失败,只要有一个上游DNS正常返回,ts-dns仍能提供响应

我清楚我是否对您的配置文件里的描述误解,“ fastest_v4 = true#选择ping值最低的ipv4地址作为响应,启用并使用icmp ping时建议以root权限允许本程序”描述我的理解是使用ping工具ping配置的dns的ip,根据ip返回的耗时来判断使用该请求dns作为上游,如果我没有理解错误那么会出现该ip有可能dns超时,因为不能保证ping值低在dns查询时udp丢包不严重,基于我这个理解所以我不使用这个参数,所以我上面才说不建议使用,如果理解有误非常抱歉。 楼主叫我在配置文件里面添加ping的参数配置,我添加后使用dig工具测试发现响应速度慢,测试网址www.taobao.com,在不重启软件情况下连续使用dig工具(第一次查询结果缓存了)结果是比第一次快了不少而而已,但比不使用这个参数的慢上很多,我显然为什么使用的这个参数的在结果缓存后查询 度比不使用的慢那么多。 看了网上的资料我还是不太认同使用的ping值作为选取作为上游DNS的依据,平只是作为连通的测试,感觉不应该作为选取的依据。

看来是我文档写的不行…… fastest_v4参数是我参考smartdns做的,开启后ts-dns会并发请求所有上游DNS,从所有解析到的ipv4地址中选择一个ping值最低的作为最终结果。

看来是我理解错了。不过这个参数还是带来一个问题,查询速度会比较慢些,没有这个参数第一次会慢,之后基本秒回。那个dns我使用过,有个问题是广告域名过多整个配置文件不仅大,还有dns不可用了。 好奇的问下,ecs这个参数dirty组支不支持。

  1. 建议&期望, 以后来一个推荐的配置. 这样我们根据推荐配置来配置就好了. ts-dns.toml还是开箱即用. ts-dns-full 改成你推荐的配置.
  2. 是否有考虑结合nextdns ? 我们把 8.8.8.8/1.1.1.1 换成 nextdns 这样的方案

测试了一下,ts-dns是兼容nextdns的,比如在group里配置dot = ["45.90.28.19@xxxxxx.dns.nextdns.io"]doh = ["https://dns.nextdns.io/xxxxxx"]。至于推荐配置……我自己在公司和家里就用了不同的配置方案,每个人的需求都不尽相同,真的存在所谓的“推荐配置”吗?

weargle commented 4 years ago

看了楼主说的nextdns,突然想起这不是和我搭建在外网的dns一个样,为什么楼主还说这个,然后认真的看了tsdns处理流程发现我那个外网的去广告dns白搭建了,以这个处理流程那个dns只是拿来查黑名单里面的域名的ip而已,根本达不到去国外广告。我搭建那个dns初衷是把国内去广告用tsdns处理,国外广告用那个dns处理,防止tsdns广告域名文件过大导致dns出问题,现在处理办法只能把国外广告名单里面提取域名,把这些域名配置到rules.txt文件里面,这样才能解决这个问题,好麻烦(⋟﹏⋞)。

wolf-joe commented 4 years ago

看了楼主说的nextdns,突然想起这不是和我搭建在外网的dns一个样,为什么楼主还说这个,然后认真的看了tsdns处理流程发现我那个外网的去广告dns白搭建了,以这个处理流程那个dns只是拿来查黑名单里面的域名的ip而已,根本达不到去国外广告。我搭建那个dns初衷是把国内去广告用tsdns处理,国外广告用那个dns处理,防止tsdns广告域名文件过大导致dns出问题,现在处理办法只能把国外广告名单里面提取域名,把这些域名配置到rules.txt文件里面,这样才能解决这个问题,好麻烦(⋟﹏⋞)。

域名去广告一般都是hosts形式的吧,直接放在hosts_file配置项不行吗?我们在https://github.com/wolf-joe/ts-dns/issues/8 还讨论过这个问题。 说起来ts-dns的初衷就是尽量一站式的解决方案,尽量减少对其它dns服务的依赖

weargle commented 4 years ago

看了楼主说的nextdns,突然想起这不是和我搭建在外网的dns一个样,为什么楼主还说这个,然后认真的看了tsdns处理流程发现我那个外网的去广告dns白搭建了,以这个处理流程那个dns只是拿来查黑名单里面的域名的ip而已,根本达不到去国外广告。我搭建那个dns初衷是把国内去广告用tsdns处理,国外广告用那个dns处理,防止tsdns广告域名文件过大导致dns出问题,现在处理办法只能把国外广告名单里面提取域名,把这些域名配置到rules.txt文件里面,这样才能解决这个问题,好麻烦(⋟﹏⋞)。

域名去广告一般都是hosts形式的吧,直接放在hosts_file配置项不行吗?我们在#8 还讨论过这个问题。 说起来ts-dns的初衷就是尽量一站式的解决方案,尽量减少对其它dns服务的依赖

额,我也想,可以国内广告域名文件hosts已经七兆多了,如果加入国外的至少十几二十兆,我怕dns会炸。说下我对overture和smartdns的使用,国内的广告域名文件先后使用overture和smartdns,smartdns加入那个大的广告域名内容结果dns不能运行,overture是直接使用不加入匹配符正常使用,加入匹配符$直接炸了,dns不能正常工作,如果以后你支持匹配符你需要小心。 广告域名列表有些是hosts,有些直接给域名,有些是使用和gwflist.txt文件一样的匹配符例如"||"匹配符,如果不是专门去做去广告的dns一般不会专门匹配那么多格式的广告域名列表,overture和tsdns是使用hosts,smartdns是 address,专门去广告一般匹配hosts、域名、匹配符,专门去广告的dns有pihole、adguard、nextdns、blocky,我现在使用blocky搭建,也是go写的。 广告域名匹配符https://adblockplus.org/filter-cheatsheet

wolf-joe commented 4 years ago

看了楼主说的nextdns,突然想起这不是和我搭建在外网的dns一个样,为什么楼主还说这个,然后认真的看了tsdns处理流程发现我那个外网的去广告dns白搭建了,以这个处理流程那个dns只是拿来查黑名单里面的域名的ip而已,根本达不到去国外广告。我搭建那个dns初衷是把国内去广告用tsdns处理,国外广告用那个dns处理,防止tsdns广告域名文件过大导致dns出问题,现在处理办法只能把国外广告名单里面提取域名,把这些域名配置到rules.txt文件里面,这样才能解决这个问题,好麻烦(⋟﹏⋞)。

域名去广告一般都是hosts形式的吧,直接放在hosts_file配置项不行吗?我们在#8 还讨论过这个问题。 说起来ts-dns的初衷就是尽量一站式的解决方案,尽量减少对其它dns服务的依赖

额,我也想,可以国内广告域名文件hosts已经七兆多了,如果加入国外的至少十几二十兆,我怕dns会炸。说下我对overture和smartdns的使用,国内的广告域名文件先后使用overture和smartdns,smartdns加入那个大的广告域名内容结果dns不能运行,overture是直接使用不加入匹配符正常使用,加入匹配符$直接炸了,dns不能正常工作,如果以后你支持匹配符你需要小心。 广告域名列表有些是hosts,有些直接给域名,有些是使用和gwflist.txt文件一样的匹配符例如"||"匹配符,如果不是专门去做去广告的dns一般不会专门匹配那么多格式的广告域名列表,overture和tsdns是使用hosts,smartdns是 address,专门去广告一般匹配hosts、域名、匹配符,专门去广告的dns有pihole、adguard、nextdns、blocky,我现在使用blocky搭建,也是go写的。 广告域名匹配符https://adblockplus.org/filter-cheatsheet

ts-dns的hosts目前是常规hosts+通配符hosts的组合,rules则部分兼容adblock plus的解析,如在使用过程中遇到兼容性问题或性能问题,可以随时反馈issue

weargle commented 4 years ago

看了楼主说的nextdns,突然想起这不是和我搭建在外网的dns一个样,为什么楼主还说这个,然后认真的看了tsdns处理流程发现我那个外网的去广告dns白搭建了,以这个处理流程那个dns只是拿来查黑名单里面的域名的ip而已,根本达不到去国外广告。我搭建那个dns初衷是把国内去广告用tsdns处理,国外广告用那个dns处理,防止tsdns广告域名文件过大导致dns出问题,现在处理办法只能把国外广告名单里面提取域名,把这些域名配置到rules.txt文件里面,这样才能解决这个问题,好麻烦(⋟﹏⋞)。

域名去广告一般都是hosts形式的吧,直接放在hosts_file配置项不行吗?我们在#8 还讨论过这个问题。 说起来ts-dns的初衷就是尽量一站式的解决方案,尽量减少对其它dns服务的依赖

额,我也想,可以国内广告域名文件hosts已经七兆多了,如果加入国外的至少十几二十兆,我怕dns会炸。说下我对overture和smartdns的使用,国内的广告域名文件先后使用overture和smartdns,smartdns加入那个大的广告域名内容结果dns不能运行,overture是直接使用不加入匹配符正常使用,加入匹配符$直接炸了,dns不能正常工作,如果以后你支持匹配符你需要小心。 广告域名列表有些是hosts,有些直接给域名,有些是使用和gwflist.txt文件一样的匹配符例如"||"匹配符,如果不是专门去做去广告的dns一般不会专门匹配那么多格式的广告域名列表,overture和tsdns是使用hosts,smartdns是 address,专门去广告一般匹配hosts、域名、匹配符,专门去广告的dns有pihole、adguard、nextdns、blocky,我现在使用blocky搭建,也是go写的。 广告域名匹配符https://adblockplus.org/filter-cheatsheet

ts-dns的hosts目前是常规hosts+通配符hosts的组合,rules则部分兼容adblock plus的解析,如在使用过程中遇到兼容性问题或性能问题,可以随时反馈issue

好的

wolf-joe commented 4 years ago

传输层级别的issue反馈请移步miekg/dnsgolang/go。顺便一提,UDP协议不保证数据100%送达。