Comments (34)
预期行为,首次返回取决于response-mode设置。之后的返回取决于speedcheck-mode。
如果要限制返回数量,请使用max-ip-reply-num。参考 #1398 (comment)
from smartdns.
Non-authoritative answer: Name: www.youtube.com Address: 54.234.18.200
root@test-server:/etc/smartdns# nslookup www.youtube.com 10.225.97.8 Server: 10.225.97.8 Address: 10.225.97.8#53
Non-authoritative answer: Name: www.youtube.com Address: 103.97.3.19 Name: www.youtube.com Address: 54.234.18.200 Name: www.youtube.com Address: 128.242.240.117 Name: www.youtube.com Address: 31.13.75.12 Name: www.youtube.com Address: 31.13.67.19 Name: www.youtube.com Address: 74.86.228.110
这些都是虚假ip,你使用的的上游(oversea组)被污染了
from smartdns.
from smartdns.
from smartdns.
from smartdns.
server没有speed-check-mode选项
from smartdns.
server没有speed-check-mode选项
nameserver中配置是吧,类似这样,nameserver /domain-set:oversea_domainlist/oversea speed-check-mode ping,tcp:80,tcp:443
from smartdns.
server没有speed-check-mode选项
另外对于blacklist-ip配置我也有疑问,麻烦指导一下。
1、是需要单独配置比如下面这样才能生效吗?:
blacklist-ip 1.2.3.4/16
2、还是可以像我这样配置,也是可以的呢(如果这样配置是可以的,怎么理解呢):
server 8.8.8.8 -group oversea -exclude-default-group -blacklist-ip
from smartdns.
预期行为,首次返回取决于response-mode设置。之后的返回取决于speedcheck-mode。 如果要限制返回数量,请使用max-ip-reply-num。参考 #1398 (comment)
这个我明白了,谢谢
from smartdns.
server没有speed-check-mode选项
我看只有domain-rules支持后面加‘‘-speed-check-mode’’,如果我要指定我上面配置文件中的oversea_domainlist域名组,进行测速,我该怎么修改配置。
from smartdns.
server没有speed-check-mode选项
另外对于blacklist-ip配置我也有疑问,麻烦指导一下。
1、是需要单独配置比如下面这样才能生效吗?:
blacklist-ip 1.2.3.4/16
2、还是可以像我这样配置,也是可以的呢(如果这样配置是可以的,怎么理解呢):
server 8.8.8.8 -group oversea -exclude-default-group -blacklist-ip
都可以。实际运行时smartdns先把2处理成1
from smartdns.
server 8.8.8.8 -group oversea -exclude-default-group -blacklist-ip speed-check-mode ping,tcp:80,tcp:443
这个 speed-check-mode前面是不是少个减号
from smartdns.
server 8.8.8.8 -group oversea -exclude-default-group -blacklist-ip speed-check-mode ping,tcp:80,tcp:443
这个 speed-check-mode前面是不是少个减号
@pymumu 说server后面不支持speed-check-mode
from smartdns.
昂 上面我说得不对(上午在外面用手机 没仔细看)
-
blacklist-ip 和 server 的 -blacklist-ip 要同时做。blacklist-ip 提供ip列表。server....-blacklist-ip 表示对这个上游应用这个黑名单。
-
speed-check-mode 可以用配置分组做,也可以用domain-rules做。我建议是用domain-rules重写所有规则,这样可以把所有规则写在同一行,比较方便。重写后大概是这样
bind :53
bind-tcp :53
server 8.8.8.8 -group oversea -exclude-default-group -blacklist-ip
server.......
domain-set -name domestic_domainlist -file /etc/smartdns/domestic_domainlist.conf
domain-set -name oversea_domainlist -file /etc/smartdns/oversea_domainlist.conf
domain-rules /domain-set:domestic_domainlist/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443
domain-rules /domain-set:oversea_domainlist/ -nameserver oversea -speed-check-mode none
blacklist-ip 4.36.66.178
blacklist-ip 8.7.198.45
blacklist-ip..............
cache-size..........
........
log-level debug
........
log-level info <-----------这两个log-level请只保留一个
- 建议对国内域名测速,国外的不测速。
from smartdns.
昂 上面我说得不对(上午在外面用手机 没仔细看)
- blacklist-ip 和 server 的 -blacklist-ip 要同时做。blacklist-ip 提供ip列表。server....-blacklist-ip 表示对这个上游应用这个黑名单。
- speed-check-mode 可以用配置分组做,也可以用domain-rules做。我建议是用domain-rules重写所有规则,这样可以把所有规则写在同一行,比较方便。重写后大概是这样
bind :53 bind-tcp :53 server 8.8.8.8 -group oversea -exclude-default-group -blacklist-ip server....... domain-set -name domestic_domainlist -file /etc/smartdns/domestic_domainlist.conf domain-set -name oversea_domainlist -file /etc/smartdns/oversea_domainlist.conf domain-rules /domain-set:domestic_domainlist/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443 domain-rules /domain-set:oversea_domainlist/ -nameserver oversea -speed-check-mode none blacklist-ip 4.36.66.178 blacklist-ip 8.7.198.45 blacklist-ip.............. cache-size.......... ........ log-level debug ........ log-level info <-----------这两个log-level请只保留一个
- 建议对国内域名测速,国外的不测速。
好的,谢谢大佬指导,下班回去梭哈一边试试
from smartdns.
俩位大佬,我重新整理了我的SmartDNS配置,说明我的网络架构,麻烦俩位前辈,给予指点,谢谢。
架构图
SmartDNS配置
(# DNS服务器名称
server-name smartdns
(# 大陆DNS-服务端口
bind :8888 -force-aaaa-soa -group domestic
bind-tcp :8888 -force-aaaa-soa -group domestic
(# 海外DNS-服务端口
bind :6666 -force-aaaa-soa -group oversea -no-speed-check
bind-tcp :6666 -force-aaaa-soa -group oversea -no-speed-check
(# GPT-DNS-服务端口
bind :9999 -force-aaaa-soa -group chatgpt -no-speed-check
bind-tcp :9999 -force-aaaa-soa -group chatgpt -no-speed-check
(# 设置海外-oversea组-DNS列表
server 8.8.8.8 -group oversea
server 8.8.4.4 -group oversea
server 1.0.0.1 -group oversea
server 9.9.9.9 -group oversea
(# 设置大陆-domestic组-DNS列表
server 202.96.209.133 -group domestic
server 180.168.255.118 -group domestic
server 116.228.111.118 -group domestic
server 202.96.209.5 -group domestic
(# 设置OpenAI-chatgpt组-DNS列表
server 208.67.222.222 -group chatgpt
server 208.67.220.220 -group chatgpt
server 209.244.0.4 -group chatgpt
server 209.244.0.3 -group chatgpt
(# 设置大陆域名集:domestic_domainlist,映射到:/etc/smartdns/domestic_domainlist.conf
domain-set -name domestic_domainlist -file /etc/smartdns/domestic_domainlist.conf
(# 设置海外域名集:oversea_domainlist,映射到:/etc/smartdns/oversea_domainlist.conf
domain-set -name oversea_domainlist -file /etc/smartdns/oversea_domainlist.conf
(# 设置GPT域名集:chatgpt_domainlist,映射到:/etc/smartdns/chatgpt_domainlist.conf
domain-set -name chatgpt_domainlist -file /etc/smartdns/chatgpt_domainlist.conf
(# 指定大陆域名集:使用domestic组-DNS解析(大陆测速)
domain-rules /domain-set:domestic_domainlist/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443
(# 指定GPT域名集:使用chatgpt组-DNS解析(海外不测速)
domain-rules /domain-set:chatgpt_domainlist/ -nameserver chatgpt -speed-check-mode none
(# 指定海外域名集:使用oversea组-DNS解析(GPT不测速)
domain-rules /domain-set:oversea_domainlist/ -nameserver oversea -speed-check-mode none
(# 日志(系统+审计)
log-level debug
log-size 50m
log-file /tmp/smartdns.log
log-num 8
audit-enable yes
audit-file /tmp/smartdns-audit.log
audit-size 50m
audit-num 2
(# 缓存配置
cache-size 32768
cache-persist yes
prefetch-domain yes
cache-file /tmp/smartdns.cache
(# 开启过期缓存服务功能
serve-expired yes
(# 设定过期缓存服务最长超时时间(秒)
serve-expired-ttl 3
(# 设定回应的过期缓存TTL(秒)
serve-expired-reply-ttl 5
(# 禁用IPV6
force-AAAA-SOA yes
(# 强制指定 qtyp 返回 SOA
force-qtype-SOA 65
存在疑问点
1、按照我的这个配置,如果不在域名集里面的域名怎么解析?
2、当前SmartDNS是我的AdGuard-Home的上游服务器,所以我写的DNS端口是,6666(海外DNS端口),8888(国内DNS端口),9999(GPT DNS端口),这种模式我当前使用没问题,但是是否存在BUG?或者说我的SmartDNS有逻辑配置问题,或者还有其他配置及缺陷问题?
3、安装我这个架构理解,只要我用SmartDNS解决解析问题就好了,因为我的分流是根据IP地址分流的,只要解析没问题,就可以正常访问。
from smartdns.
看你的需求,smartdns分流有好几种方式,选择适合你的。
第一种:基于域名
这种最简单,就是用domain-rules加-group或者-nameserver,配合server指定-group分流,域名集合用domain-set
server x.x.x.x -g oversea
domain-set -name domain -file xx
domain-rules /domain-set:domain/ -nameserver oversea -speed-check-mode none ....
第二种:基于监听端口。
这种就是来自这个端口的查询,全部使用指定的上游查询。
bind [::]:9999 -group oversea ...
server x.x.x. -g oversea
第三种:根据不同客户端。
group-begin oversea
client-rules 192.168.1.13
client-rules 01:02:03:04:05:06
server x.x.x.x -e
speed-check-mode none
group-end
当然,上述几种方案可以嵌套,但要明确你想实现什么功能。
日常使用一般都第一种,配合ipset/nftset即可达成你要的功能。
# 运营商DNS
server x.x.x.x
# 安全DNS
server-tls x.x.x.x -g oversea -e
# 分流的域名
domain-set -name domain -file xx
domain-rules /domain-set:domain/ -nameserver oversea -speed-check-mode none -ipset xxx -nftset xxx
这个也有另外group方式的写法
# 运营商DNS
server x.x.x.x
# 国外规则组oversea开始
group-begin oversea
# 安全DNS,排除默认
server-tls x.x.x.x -e
# 分流的域名
domain-set -name domain -file xx
# 按域名分流
group-match -domain domain-set:domain
# 设置IPSET
ipset xxx
# 设置NFTSET
nftset xxx
# 禁用测速
speed-check-mode none
# 规则组结束
group-end
反向集合,即国内域名走国内,其他都分流
# 安全DNS
server-tls x.x.x.x
ipset xxx
nftset xxx
speed-check-mode none
#运营商DNS,排除默认
server x.x.x.x -g domestic -e
# 国内域名
domain-set -name china-domain -file xx
domain-rules /domain-set:china-domain/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443 -ipset - -nftset -
from smartdns.
看你的需求,smartdns分流有好几种方式,选择适合你的。
第一种:基于域名 这种最简单,就是用domain-rules加-group或者-nameserver,配合server指定-group分流,域名集合用domain-set
server x.x.x.x -g oversea domain-set -name domain -file xx domain-rules /domain-set:domain/ -speed-check-mode none ....
第二种:基于监听端口。 这种就是来自这个端口的查询,全部使用指定的上游查询。
bind [::]:9999 -group oversea ... server x.x.x. -g oversea
第三种:根据不同客户端。
group-begin oversea client-rules 192.168.1.13 client-rules 01:02:03:04:05:06 server x.x.x.x -e speed-check-mode none group-end
当然,上述几种方案可以嵌套,但要明确你想实现什么功能。
日常使用一般都第一种,配合ipset/nftset即可达成你要的功能。
# 运营商DNS server x.x.x.x # 安全DNS server-tls x.x.x.x -g oversea -e # 分流的域名 domain-set -name domain -file xx domain-rules /domain-set:domain/ -speed-check-mode none -ipset xxx -nftset xxx
这个也有另外group方式的写法
# 运营商DNS server x.x.x.x # 国外规则组,按域名匹配 group-begin oversea # 安全DNS,排除默认 server-tls x.x.x.x -e # 分流的域名 domain-set -name domain -file xx # 按域名分流 group-match -domain domain-set:domain # 设置IPSET ipset xxx # 设置NFTSET nftset xxx # 禁用测速 speed-check-mode none group-end
反向集合,即国内域名走国内,其他都分流
# 安全DNS server-tls x.x.x.x ipset xxx nftset xxx speed-check-mode none #运营商DNS,排除默认 server x.x.x.x -g domestic -e # 国内域名 domain-set -name china-domain -file xx domain-rules /domain-set:china-domain/ -speed-check-mode ping,tcp:80,tcp:443 -ipset - -nftset -
好的好的,谢谢指导,按照你说这些方式,我的配置即使第一种:基于域名分流。其他的方式我也研究以下,这第一种方式是否存在我说的疑点1,不在域名列表里面的域名,默认用什么DNS解析。
from smartdns.
在我说的疑点1,不在域名列表里面的域名,默认用什么DNS解析
你的第一个配置:server全部都排除了默认组,没在列表里面的域名将无法查询。
第二个配置,将会使用所有server(未排除默认组)查询
好的好的,谢谢指导,按照你说这些方式,我的配置即使第一种:基于域名分流
你的配置,是第一种,第二种的结合。
from smartdns.
建议是不要搞太复杂,大部分场景选第一种即可。
from smartdns.
(# 设置海外-oversea组-DNS列表 server 8.8.8.8 -group oversea server 8.8.4.4 -group oversea server 1.0.0.1 -group oversea server 9.9.9.9 -group oversea
(# 设置大陆-domestic组-DNS列表 server 202.96.209.133 -group domestic server 180.168.255.118 -group domestic server 116.228.111.118 -group domestic server 202.96.209.5 -group domestic
(# 设置OpenAI-chatgpt组-DNS列表 server 208.67.222.222 -group chatgpt server 208.67.220.220 -group chatgpt server 209.244.0.4 -group chatgpt server 209.244.0.3 -group chatgpt
这是最新配置,我没写排除
(# 设置海外-oversea组-DNS列表
server 8.8.8.8 -group oversea
server 8.8.4.4 -group oversea
server 1.0.0.1 -group oversea
server 9.9.9.9 -group oversea
(# 设置大陆-domestic组-DNS列表
server 202.96.209.133 -group domestic
server 180.168.255.118 -group domestic
server 116.228.111.118 -group domestic
server 202.96.209.5 -group domestic
(# 设置OpenAI-chatgpt组-DNS列表
server 208.67.222.222 -group chatgpt
server 208.67.220.220 -group chatgpt
server 209.244.0.4 -group chatgpt
server 209.244.0.3 -group chatgpt
from smartdns.
你的bind是带了-group的,这里就进行了一次分流操作。
from smartdns.
你的bind是带了-group的,这里就进行了一次分流操作。
我下面这个图中的流量路径理解对吗,【你的bind是带了-group的,这里就进行了一次分流操作。(我的bing的group和server的group是同一个,那其实就是分流了一次吧)】
from smartdns.
你的bind是带了-group的,这里就进行了一次分流操作。
我下面这个图中的流量路径理解对吗,【你的bind是带了-group的,这里就进行了一次分流操作。(我的bing的group和server的group是同一个,那其实就是分流了一次吧)】
我先问一下啊,配置中的 bind :9999 -group chatgpt
哪个程序负责根据不同域名将dns查询送到smartdns的9999端口?
from smartdns.
你的bind是带了-group的,这里就进行了一次分流操作。
我下面这个图中的流量路径理解对吗,【你的bind是带了-group的,这里就进行了一次分流操作。(我的bing的group和server的group是同一个,那其实就是分流了一次吧)】
我先问一下啊,配置中的 bind :9999 -group chatgpt 哪个程序负责根据不同域名将dns查询送到smartdns的9999端口?
AdGuard不能根据域名发送请求到9999,终端找AD解析,AD解析转发给6666,8888,9999
from smartdns.
你的图,分流的软件是adguard,smartdns只是按不同端口的请求查询了不同的上游
如果上游分流不正确,才会在smartdns分流
这里建议是保留一个分流设置即可,否则要维护两套分流列表
from smartdns.
你的图,分流的软件是adguard,smartdns只是按不同端口的请求查询了不同的上游
如果上游分流不正确,才会在smartdns分流
这里建议是保留一个分流设置即可,否则要维护两套分流列表
明白你的意思,我把AD拿掉吧,本来就没啥用处,只是因为他有图形化,可以方便web看日志。
容我想想我的smartdns配置该怎么修改,应该是把bind删掉,只保留一个53端口就好了。
from smartdns.
如果这样,建议配置方案如下
- adguard 配置一个上游,指向smartdns
- smartdns 仅开启一个服务端口,按域名分流,配置方法采用我上面写的方法一
from smartdns.
如果这样,建议配置方案如下
- adguard 配置一个上游,指向smartdns
- smartdns 仅开启一个服务端口,按域名分流,配置方法采用我上面写的方法一
明白你的意思了,我把配置发出来,便于后续的人能看到这个配置
SmartDNS配置
(# 全局DNS服务端口(禁用IPV6查询)
bind :5053 -force-aaaa-soa
bind-tcp :5053 -force-aaaa-soa
(# 设置海外-oversea组-DNS列表
server 8.8.8.8 -group oversea
..................
(# 设置大陆-domestic组-DNS列表
server 202.96.209.133 -group domestic
....................
(# 设置OpenAI-chatgpt组-DNS列表
server 208.67.222.222 -group chatgpt
...........................
(# 设置大陆域名集:domestic_domainlist,映射到:/etc/smartdns/domestic_domainlist.conf
domain-set -name domestic_domainlist -file /etc/smartdns/domestic_domainlist.conf
(# 设置海外域名集:oversea_domainlist,映射到:/etc/smartdns/oversea_domainlist.conf
domain-set -name oversea_domainlist -file /etc/smartdns/oversea_domainlist.conf
(# 设置GPT域名集:chatgpt_domainlist,映射到:/etc/smartdns/chatgpt_domainlist.conf
domain-set -name chatgpt_domainlist -file /etc/smartdns/chatgpt_domainlist.conf
(# 指定大陆域名集:使用domestic组-DNS解析(大陆测速)
domain-rules /domain-set:domestic_domainlist/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443
(# 指定GPT域名集:使用chatgpt组-DNS解析(海外不测速)
domain-rules /domain-set:chatgpt_domainlist/ -nameserver chatgpt -speed-check-mode none
(# 指定海外域名集:使用oversea组-DNS解析(GPT不测速)
domain-rules /domain-set:oversea_domainlist/ -nameserver oversea -speed-check-mode none
AdGuard配置
from smartdns.
Ubuntu 安装 SmartDNS 配置域名分流SmartDNS 从入门到精通(二:DNS分流)
from smartdns.
@pymumu @PikuZheng 这里还有一个问题,关于域名列表格式的,我现在的配置如下:
设置大陆域名集:domestic_domainlist,映射到:/etc/smartdns/domestic_domainlist.conf
domain-set -name domestic_domainlist -file /etc/smartdns/domestic_domainlist.conf
指定大陆域名集:使用domestic组-DNS解析(大陆测速)
domain-rules /domain-set:domestic_domainlist/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443
这个domestic_domainlist.conf是存放我国内域名的文件,是不是后缀得是list,比如:domestic_domainlist.list
我这个domestic_domainlist.conf里面的域名是这样,一行一个的,不知道生效了没有。
from smartdns.
@pymumu @PikuZheng 这个配置指导里面,是这样写的,那我的配置方式应该没问题是吧
from smartdns.
文件扩展名无所谓。一行一个域名,上面图中正确。
from smartdns.
文件扩展名无所谓。一行一个域名,上面图中正确。
好的,谢谢
from smartdns.
Related Issues (20)
- domain-rules的group参数问题 HOT 5
- CNAME doesn't follow domain-rules HOT 4
- nft 添加 ipset 错误 HOT 5
- 网赌被黑了不给提款怎么办?解决微:lyh20085150 HOT 2
- 软路由运行4天后 Smartdns卡死崩溃 HOT 5
- 配置文件支持相对路径 HOT 3
- 设置成非53端口不能生效 HOT 1
- 223.5.5.5/dns-query支持h3吗 在我这里测试一直是h2 运营商dns可以h3 HOT 2
- 切换WLAN导致DNS查询失败
- 关于指定域名集合到特定一个ip解析的问题 HOT 3
- nftset.h 封装求助 HOT 18
- 文件权限被改变 HOT 7
- ttl 的默认值不正常 HOT 16
- 测试发现强解析存在bug HOT 3
- 无法获取新域名的 HOT 17
- 【正则匹配】域名规则有没有可能支持正则配置?
- doh支持使用特定token限制访问
- 用户日志能否支持功能调用IP识别运营商接口nali
- 定义了组名的服务器没有从默认组中排除 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smartdns.