Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

加入 SmartDNS 其实主要是用来恶心那些 Up 主 和 小白们的 #2551

Closed
coolsnowwolf opened this issue Dec 23, 2019 · 215 comments
Closed

Comments

@coolsnowwolf
Copy link
Owner

  1. 固件 DNS 的逻辑是, 国外域名会通过 SSR Plus 内部的 PDNSD 会走 SSR 的转发工具(SS/SSR/V2 等)建立的隧道到 VPS 节点,然后由 VPS 通过 TCP DNS 查询 8.8.8.8 等 BGP 服务器,获得离 VPS 节点最优的 CDN DNS 查询记录,这样你的梯子才是速度最快的

  2. 国内域名直接缓存 ISP 或者 114 的结果,过滤掉错误的和被污染的IP记录,并缓存在内存中。

  3. 你本地路由器通过 SmartDNS 查询国外域名,肯定返回的是“你本地路由器的最优CDN节点DNS记录”, 而不是 “VPS节点的最优DNS记录”。 这样你访问国外域名的记录肯定是几乎最慢的

那些 Up 主(例如 Mike 之类的傻逼),为了流量和点击率,DNS 的原理都没搞清楚,带节奏骗小白们。

工具本身没问题(SmartDNS 通过设置也能走隧道),是某些人的脑子问题而已。

@coolsnowwolf coolsnowwolf pinned this issue Dec 23, 2019
@82kg
Copy link

82kg commented Dec 23, 2019

很多up主 水的一笔

@guochan2019
Copy link

现在看明白了,感谢L大回复

@hcym
Copy link

hcym commented Dec 23, 2019

简单就是美,还是挺大雕

@keivenliao
Copy link

我个人这么理解对否?
1、如果通过SSRP的PDNSD去 8.8.8.8 查询 dns地址,那么返回的应该是离VPS最近的服务器地址?
2、如果1成立,查询国内dns的地址时,是受SSRP的访问控制的,用gfwlist或者绕过国内IP查询?
3、过滤掉错误的和污染的记录是SSRP内置的功能?
4、如果在SSRP设置了绕过国内IP的情况下,smartdns 去访问国外IP时,例如8.8.8.8是否也会通过VPS?

@ghost
Copy link

ghost commented Dec 23, 2019

强烈建议内置dnscrypt-proxy2,(地址: https:/DNSCrypt/dnscrypt-proxy )作为ssrp自带的dns方案取代默认的pdnsd。固件自带的luci-app-dnscrypt-proxy是一个非常老的版本,几乎废无法使用。

每次新升级以后都要先开ssrp内置pdnsd模式(因为不开代理根本没法下)然后用opkg安装dnscrypt-proxy2的ipk包(某些架构下还会出错,需要手动下载binary替换),然后配置好改ssrp为5335模式再重启。

只要做好分流,个人觉得smartDNS这种恨不得全世界都知道你在访问什么网站的多线查询是没有必要的,而加密解析则是至关重要,并且也是未来ESNI安全性的基石。且不说隐私问题,明文dns查询极易被代理提供商的一些莫名其妙的过滤规则误杀(如查询含有torrent关键字的域名)

个人采用的分流方案:

  1. ssrp使用大陆IP白名单+5335作为dns解析的方式
  2. dnscyrpt-proxy2配置监听在5335,仅使用DoH协议向cloudflare/adguard服务器查询(这些https的查询请求全部会被ssrp代理转发),并屏蔽ipv6的结果(ssrp能否支持同时连接v4 和v6两台代理服务器并分别处理不同流量呢)
  3. iptables劫持所有目标为53端口的流量到路由器的53端口(这个默认就有了)
  4. 53端口使用默认的dnsmasq作为dns服务,上游设置为127.0.0.1#5335,配置中添加conf-dir=/etc/dnsmasq.d 并在/etc/dnsmasq.d/中放入这个 https:/felixonmars/dnsmasq-china-list/blob/master/accelerated-domains.china.conf 文件(并通过脚本自动更新)

这样实现了凡是大陆的和在大陆有cdn的以及返回AAAA记录的域名全部直连查询并直连访问,其余的全部走代理查询,且结果在大陆以外的走代理访问(IP+域名的双白名单机制)

@doumeki
Copy link

doumeki commented Dec 23, 2019

我个人这么理解对否?
1、如果通过SSRP的PDNSD去 8.8.8.8 查询 dns地址,那么返回的应该是离VPS最近的服务器地址?
2、如果1成立,查询国内dns的地址时,是受SSRP的访问控制的,用gfwlist或者绕过国内IP查询?
3、过滤掉错误的和污染的记录是SSRP内置的功能?
4、如果在SSRP设置了绕过国内IP的情况下,smartdns 去访问国外IP时,例如8.8.8.8是否也会通过VPS?

同问,还就就是我试了下如果使用5335端口而非在下面选8.8.4.4之类的,进程中就没有pdnsd的进程了,也上不了外国网,也不知道是哪里改错了还是原本就是这样的。

@keivenliao
Copy link

我个人这么理解对否?
1、如果通过SSRP的PDNSD去 8.8.8.8 查询 dns地址,那么返回的应该是离VPS最近的服务器地址?
2、如果1成立,查询国内dns的地址时,是受SSRP的访问控制的,用gfwlist或者绕过国内IP查询?
3、过滤掉错误的和污染的记录是SSRP内置的功能?
4、如果在SSRP设置了绕过国内IP的情况下,smartdns 去访问国外IP时,例如8.8.8.8是否也会通过VPS?

同问,还就就是我试了下如果使用5335端口而非在下面选8.8.4.4之类的,进程中就没有pdnsd的进程了,也上不了外国网,也不知道是哪里改错了还是原本就是这样的。

你5335 是smartdns 吗?

@shantsaichan
Copy link

shantsaichan commented Dec 23, 2019

那些up完全就是骗小白,瞎配置,博眼球。
分享我用smartdns的方法:

  1. 配置smartdns上游,国内用udp,国外用tls,https。

  2. 国外dns配置group组为foreign。

  3. 使用nameserver域名分流,下载gfw list转换为smartdns格式,nameserver指定gfw list分流走国外foreign组。

  4. 对一些ip不通的域名,将请求转发到第二dns,分流使用smartdns的第二dns解析,第二dns关闭测速,就进解析ip,在配合ipset透明度请求网页

smartdns支持tls,https,还有分流,少装了好几个插件。

ip黑名单还不知到怎么用,可能不需要。
faq里面还有好多配置,都不知到怎么用

@keivenliao
Copy link

keivenliao commented Dec 23, 2019

讲真,我觉得其实真不需要这么复杂,配几个国内的防污染DNS服务器速度就已经很快了,例如中科大,清华等。 可以去这里看看。https://dns.iui.im/#noad

@doumeki
Copy link

doumeki commented Dec 23, 2019

我个人这么理解对否?
1、如果通过SSRP的PDNSD去 8.8.8.8 查询 dns地址,那么返回的应该是离VPS最近的服务器地址?
2、如果1成立,查询国内dns的地址时,是受SSRP的访问控制的,用gfwlist或者绕过国内IP查询?
3、过滤掉错误的和污染的记录是SSRP内置的功能?
4、如果在SSRP设置了绕过国内IP的情况下,smartdns 去访问国外IP时,例如8.8.8.8是否也会通过VPS?

同问,还就就是我试了下如果使用5335端口而非在下面选8.8.4.4之类的,进程中就没有pdnsd的进程了,也上不了外国网,也不知道是哪里改错了还是原本就是这样的。

你5335 是smartdns 吗?

不是,ssrp 自带就有是这个选项,是pdnsd的吧,但是我改了连pdnsd进程都没了

@doumeki
Copy link

doumeki commented Dec 23, 2019

讲真,我觉得其实真不需要这么复杂,配几个国内的防污染DNS服务器速度就已经很快了,例如中科大,清华等。 可以去这里看看。https://dns.iui.im/#noad

问题不是啥dns,按大雕说法是能转发dns请求到vps,这才是重点

@kiddin9
Copy link

kiddin9 commented Dec 23, 2019

SSRP的DNS转发只针对gfwlist里的域名,即使选择的是绕过大陆IP模式,大量国外有CDN的网站其实还是走的本地解析.如果选择绕过大陆IP模式,那么DNS也应该所有国外域名都转发到代理VPS才对.

@IRN-Kawakaze
Copy link

请问局域网内同时存在白名单、黑名单和直连设备的时候,ssrplus内置的dns会根据每个设备的连接方式决定dns的查询方式吗?(白名单设备的dns也走白名单,黑名单设备的dns走黑名单,直连设备dns也直连)
还是说只按照全局设定决定所有设备的dns查询方式?(全局设定白名单,不管黑白直连设备的dns都走白名单)

@coolsnowwolf
Copy link
Owner Author

还是要考虑 VPS CDN 的就近性DNS 选择问题

@Junwu-Git
Copy link

干的漂亮。

@eallion
Copy link
Contributor

eallion commented Dec 23, 2019

是的。
如果用这个固件,用 SSRplus 的话,就用 Turbo ACC DNS 加速就好了。
这几天用 OpenClash + SmartDNS 被坑惨了。当然分开来这两个都是好东西。

@stztao
Copy link

stztao commented Dec 23, 2019

东西是集成度挺高,最近通过Up们的推广,用的人一多问题层出不穷,后面再火个Trojan模式,感觉作者自己都理不开头绪处理内部bug了

@Myoko
Copy link
Contributor

Myoko commented Dec 24, 2019

感谢L大!对smartdns 还不太了解 学习一下如何设置

@cnekol
Copy link

cnekol commented Dec 24, 2019

绝大多数up说的全是废话,以及,错话。。。粗略看大概是——全讲操作,不讲逻辑(知识)的。而且讲的操作还是建立在错误的逻辑(知识)上。

@lietxia
Copy link

lietxia commented Dec 24, 2019

为啥说smartdns没啥用
1、DNS在干嘛?
【原理】DNS的作用就是你访问域名的时候,返回一个ip,比如 访问www.baidu.com 返回183.232.231.172
【无用理由】就是说:只有你同时+大量访问不同域名的东西的时候,才会受到
DNS查询太慢的影响。【那么你会同时访问超多不同域名的东西吗?】

2、多DNS查询
【原理】多个DNS一起查询
【无用理由】但实际上返回速度最快的【一直是那一个】

3、DNS防污染
【原理】一些服务器商给的DNS,会让你的HTTP访问广告网站
【无用理由】
1)只要你不用服务器商提供的DNS,一般公众DNS是直接有防污染的。
2)特别的上网方式访问海外,插件自身就用代理去查询DNS,也不会有海外污染。

4、DNS缓存
【原理】就是把查询DNS的结果暂存起来,下次查询直接调用。
【无用理由】这个大雕插件的Turbo ACC 早就有了。

5、广告过滤
【原理】把广告域名指向一个无法访问的地址,达到屏蔽效果
【无用理由】去广告范围很有限,效果也不如adbyby之类专门的去广告插件效果好

@kiddin9
Copy link

kiddin9 commented Dec 24, 2019

为啥说smartdns没啥用
1、DNS在干嘛?
【原理】DNS的作用就是你访问域名的时候,返回一个ip,比如 访问www.baidu.com 返回183.232.231.172
【无用理由】就是说:只有你同时+大量访问不同域名的东西的时候,才会受到
DNS查询太慢的影响。【那么你会同时访问超多不同域名的东西吗?】

2、多DNS查询
【原理】多个DNS一起查询
【无用理由】但实际上返回速度最快的【一直是那一个】

3、DNS防污染
【原理】一些服务器商给的DNS,会让你的HTTP访问广告网站
【无用理由】
1)只要你不用服务器商提供的DNS,一般公众DNS是直接有防污染的。
2)特别的上网方式访问海外,插件自身就用代理去查询DNS,也不会有海外污染。

4、DNS缓存
【原理】就是把查询DNS的结果暂存起来,下次查询直接调用。
【无用理由】这个大雕插件的Turbo ACC 早就有了。

5、广告过滤
【原理】把广告域名指向一个无法访问的地址,达到屏蔽效果
【无用理由】去广告范围很有限,效果也不如adbyby之类专门的去广告插件效果好

胡言乱语,都不值得反驳

@greennyreborn
Copy link
Contributor

所以是这个东西我加了,但是确实没什么用的意思 XD

@boshi116
Copy link

那些 Up 主(例如 Mike 之类的傻逼)太能装 看过一个拆星际蜗牛的视频 没见过这么能装的 直接过滤他的一切视屏

@immyonlystar
Copy link

说的太对了,那几个傻逼UP,一个MIKE,一个金水(频道名字还叫JS神技能,最傻逼),一个什么三金,一个比一个傻逼,一个比一个屌丝。内容错误连篇,而且都废话超级多,两分钟能说清楚的事儿,非要扯上二三十分钟。恶心透了。smartdns装了试用了下又卸载了,按那些SB UP的设置方法外网根本不通,换回系统自带的一切正常。

@f3404923
Copy link

没人能拿出点数据来比较吗,没有数据来瞎bb也没啥意义

@hcym
Copy link

hcym commented Dec 25, 2019

比较一下,自己做主吧,我是喜欢简单,不喜欢复杂。ss和v2一直都是基本的tcp,也用的蛮好

@makepoloSeton
Copy link

我认为固件dns的逻辑是:
(1)使用GFW模式时(开启GFWlist查询,没有开启国内IP库查询):发起域名解析请求-判断该域名在GFWlist中?-是,使用pdnsd进行tcp隧道解析,返回结果来自于海外vps的ip,并使用隧道访问(否,使用路由器本机国内dns解析,返回结果来自于国内dns,并使用国内直连,无论该结果是否为大陆ip,因为GFW模式没有开启国内IP库查询)
(2)使用绕过大陆模式时(开启GFWlist查询,同时打开国内IP库查询):发起域名解析请求-判断该域名在GFWlist中?-是,使用pdnsd进行tcp隧道查询,返回结果来自于海外vps的ip,并使用隧道访问(否,使用路由器本机国内dns解析,返回结果来自于国内dns,此时与GFW模式的区别是,该处会再一次进行国内IP库的查询,返回结果属于国内,则使用直连访问,返回结果属于非国内,则使用隧道访问)

不知道这样理解对不对

@makepoloSeton
Copy link

makepoloSeton commented Dec 25, 2019

还有一点疑惑:
本地路由器通过smartdns或是其他dns插件,如果添加了海外dns,则需要在XXRplus的“访问控制”-“wan ip访问控制”-“强制走代理的wan ip”中添加海外dns的ip地址,如果是使用https-dns,还要把对应的https网址填入“强制走代理的域名”中。

这样的作法是否能使smartdns和其他dns插件正确走隧道?(在plus使用5335端口进行dns解析,同时smartdns或其他dns插件已经正确重定向5335时)

@410054336
Copy link

所谓的up主,就借此处代码,骗小白买自己的机场和那些垃圾硬件

@coolhuasen
Copy link

强烈建议内置dnscrypt-proxy2,(地址: https:/DNSCrypt/dnscrypt-proxy )作为ssrp自带的dns方案取代默认的pdnsd。固件自带的luci-app-dnscrypt-proxy是一个非常老的版本,几乎废无法使用。

每次新升级以后都要先开ssrp内置pdnsd模式(因为不开代理根本没法下)然后用opkg安装dnscrypt-proxy2的ipk包(某些架构下还会出错,需要手动下载binary替换),然后配置好改ssrp为5335模式再重启。

只要做好分流,个人觉得smartDNS这种恨不得全世界都知道你在访问什么网站的多线查询是没有必要的,而加密解析则是至关重要,并且也是未来ESNI安全性的基石。且不说隐私问题,明文dns查询极易被代理提供商的一些莫名其妙的过滤规则误杀(如查询含有torrent关键字的域名)

个人采用的分流方案:

  1. ssrp使用大陆IP白名单+5335作为dns解析的方式
  2. dnscyrpt-proxy2配置监听在5335,仅使用DoH协议向cloudflare/adguard服务器查询(这些https的查询请求全部会被ssrp代理转发),并屏蔽ipv6的结果(ssrp能否支持同时连接v4 和v6两台代理服务器并分别处理不同流量呢)
  3. iptables劫持所有目标为53端口的流量到路由器的53端口(这个默认就有了)
  4. 53端口使用默认的dnsmasq作为dns服务,上游设置为127.0.0.1#5335,配置中添加conf-dir=/etc/dnsmasq.d 并在/etc/dnsmasq.d/中放入这个 https:/felixonmars/dnsmasq-china-list/blob/master/accelerated-domains.china.conf 文件(并通过脚本自动更新)

这样实现了凡是大陆的和在大陆有cdn的以及返回AAAA记录的域名全部直连查询并直连访问,其余的全部走代理查询,且结果在大陆以外的走代理访问(IP+域名的双白名单机制)

请教下,为什么我按您这个步骤,通过ip111.cn跟ip125.com显示 ,甚至百度显示 的ip不对,国内ip地址显示 成代理机场地址了。怎么解决啊!

@ixmu
Copy link

ixmu commented Nov 20, 2021

  1. 固件 DNS 的逻辑是, 国外域名会通过 SSR Plus 内部的 PDNSD 会走 SSR 的转发工具(SS/SSR/V2 等)建立的隧道到 VPS 节点,然后由 VPS 通过 TCP DNS 查询 8.8.8.8 等 BGP 服务器,获得离 VPS 节点最优的 CDN DNS 查询记录,这样你的梯子才是速度最快的
  2. 国内域名直接缓存 ISP 或者 114 的结果,过滤掉错误的和被污染的IP记录,并缓存在内存中。
  3. 你本地路由器通过 SmartDNS 查询国外域名,肯定返回的是“你本地路由器的最优CDN节点DNS记录”, 而不是 “VPS节点的最优DNS记录”。 这样你访问国外域名的记录肯定是几乎最慢的

那些 Up 主(例如 Mike 之类的傻逼),为了流量和点击率,DNS 的原理都没搞清楚,带节奏骗小白们。

工具本身没问题(SmartDNS 通过设置也能走隧道),是某些人的脑子问题而已。

大佬,我也是这样的思路,我想请教一下如何设置smartdns的ipset
nameserver /google.com/GFW
ipset /google.com/gfwlist
nameserver /youtube.com/GFW
ipset /youtube.com/gfwlist
上面的配置能否实现
1.google.com会使用GFW这个分组里面的dns进行解析
2.对google.com的解析结果会存储到gfwlist这个表中
我是否需要在/etc/iprouter2/rt_table里面创建一个对应的gfwlist 99

@akimi01
Copy link

akimi01 commented Jan 26, 2022

爬完楼,我终于知道情况了:坑爹的电信!!!卧槽的,污染了DNS,擦擦擦…………

@frankilla1987
Copy link

直接回复吧,要刷屏了。成都,电信169套餐,200M。发这个帖子,只是佐证楼主调皮,并不是对比DNS谁更好,或者说这就是最优解。普通同学,像我一样设置即可,够用。懂网络的同学,给一个数据参考,或者了解Dnsmasq 、PDNSD、SmsatDNS三者在这个固件之间的关系,也希望大神能贴出基于这个固件的更优解。(话说贴吧是什么,我是程序员,用Github交友的 ^-^)

是你自己设置的问题,你太醉心于折腾dns了,中了dns的毒了,用pdnsd的解析得到的就是14开头的百度ip你之所以会解析出来104是你自己的设置问题,你试试看用用纯正的原汁原味的lede,自己编译一个你就知道了。同样是在adbyby加载13万条的广告屏蔽。和我自己在adguardhome里面(自己独立架设)加载了10几万的屏蔽域名,lede大集成的adbyby明显优于adguardhome。 你这个是自己设置问题,所以让你觉得smartdns救你出升天。正常的lede解析www.baidu.com只会是14.xx的。所以你不妨试试看原汁原味的没有任何smartdns,没有adguardhome的固件。

所以大神,能分享一下你的设置吗?(:з)∠)(纯白,看了各种帖子设置后总觉得拉稀但是也不是那么拉稀,别别扭扭的。)谢谢~

@frankilla1987
Copy link

根据上面几位大师的分析 尝试smartdns和SSR配合使用 效果还可以 SmartDNS 本地端口6053 添加国内和国外DNS(tls) 把国外DNS分为一组 开启第二DNS服务器 端口设为5335 跳过cache 国内dns开启过滤黑名单IP chinadns-ng 本地端口5353 国内外dns分别指向smartdns的6053和5335 SSR使用绕过大陆IP模式 用5335的DNS服务 强制wan ip走代理那里添加国外dns IP dnsmasq转发到chinadns-ng 经测试 国内域名获取得IP都是延迟最低的 国外域名无论是特殊的还是正常的 获得的IP对代理节点优化 国外正常域名在国内有IP的 获取对应国内IP 如intel.com

但是这样设置端口后,重启op就要手动重启一下ssrp才行,不知道你是否遇到?还有具体设置能否分享一下呢。谢谢~

@warrenhoo
Copy link

Turbo Acc的DNS加速大多数情况下确实好用,但是如果运营商直接劫持UDP 53端口的话,没有DoT/DoH恐是无力回天……

选择DNSproxy就可以dot doh

@tufu9441
Copy link

我认为smartdns repo中这个Issue中的一位回复者@huifukejian 提出的方案思路比较清晰,见以下几条评论:

pymumu/smartdns#575 (comment)
pymumu/smartdns#575 (comment)
pymumu/smartdns#575 (comment)

@frankilla1987
Copy link

我认为smartdns repo中这个Issue中的一位回复者@huifukejian 提出的方案思路比较清晰,见以下几条评论:

pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment)

但是这个脚本更新chinalist这个怎么做的啊- -这一步不会。_(:з)∠)_谢谢。

@tufu9441
Copy link

我认为smartdns repo中这个Issue中的一位回复者@huifukejian 提出的方案思路比较清晰,见以下几条评论:
pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment)

但是这个脚本更新chinalist这个怎么做的啊- -这一步不会。_(:з)∠)_谢谢。

作者已经给出来了,仔细看看好吧,https:/huifukejian/test/blob/master/update-china-list.sh

@frankilla1987
Copy link

我认为smartdns repo中这个Issue中的一位回复者@huifukejian 提出的方案思路比较清晰,见以下几条评论:
pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment)

但是这个脚本更新chinalist这个怎么做的啊- -这一步不会。_(:з)∠)_谢谢。

作者已经给出来了,仔细看看好吧,https:/huifukejian/test/blob/master/update-china-list.sh

不好意思,看过了一点都不明白,不过谢谢。

@tufu9441
Copy link

我认为smartdns repo中这个Issue中的一位回复者@huifukejian 提出的方案思路比较清晰,见以下几条评论:
pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment)

但是这个脚本更新chinalist这个怎么做的啊- -这一步不会。_(:з)∠)_谢谢。

作者已经给出来了,仔细看看好吧,https:/huifukejian/test/blob/master/update-china-list.sh

不好意思,看过了一点都不明白,不过谢谢。

下载下来直接运行,利用crontab规则定时运行。

@frankilla1987
Copy link

我认为smartdns repo中这个Issue中的一位回复者@huifukejian 提出的方案思路比较清晰,见以下几条评论:
pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment) pymumu/smartdns#575 (comment)

但是这个脚本更新chinalist这个怎么做的啊- -这一步不会。_(:з)∠)_谢谢。

作者已经给出来了,仔细看看好吧,https:/huifukejian/test/blob/master/update-china-list.sh

不好意思,看过了一点都不明白,不过谢谢。

下载下来直接运行,利用crontab规则定时运行。

好的谢谢。(:з)∠)

@Rashhz
Copy link

Rashhz commented Apr 15, 2022

l大可以详细讲讲ssrp是怎么调用vps进行dns代理查询的吗?例如v2ray客户端要进行什么配置?我谷歌了一下只有人讲了可以通过《任意门》协议转发dns查询。但是这必须在服务端配置,很好奇ssrp是如何进行这一过程的

@man2018
Copy link

man2018 commented May 7, 2022

请问大佬,里面的passwall也是这个逻辑吗

@stonegr
Copy link

stonegr commented Jul 17, 2022

我个人这么理解对否? 1、如果通过SSRP的PDNSD去 8.8.8.8 查询 dns地址,那么返回的应该是离VPS最近的服务器地址? 2、如果1成立,查询国内dns的地址时,是受SSRP的访问控制的,用gfwlist或者绕过国内IP查询? 3、过滤掉错误的和污染的记录是SSRP内置的功能? 4、如果在SSRP设置了绕过国内IP的情况下,smartdns 去访问国外IP时,例如8.8.8.8是否也会通过VPS?

会,我就是透明设置加smartdns的,smartdns国外组走代理,自己把规则设置好就好了,防污染

@traceless
Copy link

查询
【无用理由】但实际上

感觉确实作用不大,我还以为有什么我意想不到的东西嗯。。。

@chancat87
Copy link

一直
只能说,你可以永远相信大雕。。虽然他经常翻车,但是技术这一块没得说。

@njzhx
Copy link

njzhx commented Jan 18, 2023

讲真,我觉得其实真不需要这么复杂,配几个国内的防污染DNS服务器速度就已经很快了,例如中科大,清华等。 可以去这里看看。https://dns.iui.im/#noad

这个有效。。访问国内终于不慢了。。

@abc9878
Copy link

abc9878 commented Jan 26, 2023

因为傻逼openclash的dns配置实在没搞明白,今天弄了下chinadns-ng+smartdns。chinadns-ng好像只能写一个国内dns+一个可信dns,所以就靠smartdns来配置多dns。可信dns走clash的sock5代理,弄下来还行。唯一的问题是因为op的dnsmasq需要作为客户端的默认dns,所以就把这套放到一个debian虚拟机上了…………,然后wan口dns写debian的ip

@deuteros-gex
Copy link

deuteros-gex commented Apr 16, 2023

SSRP 在使用大陆白名单时 如果一个正常的国外域名请求解析 由于不在gfwlist中 会通过国内dns解析 解析出来的IP判断是国外的ip 就会走代理通道 我想知道 这时走代理通道 是用之前国内dns解析出来的ip直接访问 还是用代理通道的国外dns重新解析后再访问? 如果是前者 大陆白名单模式下访问国外网站没有对代理节点优化

虽然隔得挺久了,但我觉得这个问题很关键,斗胆回答一下。你问的这个问题可以换一种问法:
因为依赖dnsmaq、iptables、ipset进行前置分流,所以ssr plus拿到数据包肯定是基于ip的,没有任何域名信息。
那么ssr plus能否根据IP将它们恢复成域名,然后将域名送到vps上重新解析一次,以获得最佳cdn优化呢?

答案是不能,可以从正反两个方面来理解

1、ssr plus拿不到真实域名。
域名-IP的映射关系保存在dnsmasq的缓存中,而ssr plus没能力调用这些数据。
(或许可以通过dnsmasq的日志强行获取,但我在ssr plus里没看到这种代码 )
这也是为什么clash、v2ray这些后起之秀都要额外集成dns模块的原因。
既然ssr plus压根儿拿不到域名,送往vps的数据就只能是纯IP了,远端vps也没法做二次解析了。

ps:更准确地说,ssr plus的shell脚本部分肯定是拿不到域名的。但如果你使用了v2ray/xray分流,并且开启了嗅探功能的话,仍有机会拿到域名。
考虑到ssrp能支持的远不止v2ray/xray,这不具备通用性,所以泛泛地讲一句“ssrp拿不到域名”也没有太多错误。

2、如果可以把域名送到远端vps做二次解析,大雕也就不至于强调dns需要远端解析了。

理解这点需要复读一下ssr plus调用dnsmaq、iptables、ipset来分流的原理:对于gfwlist里的域名,不管解析出什么IP,都会把这个IP加到一个名为gfwlist的ipset里面去,然后通过iptables将命中这个ipset的流量导入ssr plus的监听端口,这样需要代理的流量就被劫持进了ssr plus。
无论dnsmasq解析出的ip对不对,需要代理的域名都能正常进ssr plus,只是进ssr plus后就变成IP罢了。

如果ssr plus可以把它们恢复成域名,再把域名送到远端vps做二次解析,那总能保证翻墙时能得到cdn优化。此时本地用dnsmasq解析出来的IP仅用作前置分流,准不准确没那么重要(至多会dns泄露产生隐私问题,但不影响上网体验)。

写得有点多,但确实就是这么绕。以上。

@Zeezorn
Copy link
Contributor

Zeezorn commented Apr 16, 2023

SSRP 在使用大陆白名单时 如果一个正常的国外域名请求解析 由于不在gfwlist中 会通过国内dns解析 解析出来的IP判断是国外的ip 就会走代理通道 我想知道 这时走代理通道 是用之前国内dns解析出来的ip直接访问 还是用代理通道的国外dns重新解析后再访问? 如果是前者 大陆白名单模式下访问国外网站没有对代理节点优化

虽然隔得挺久了,但我觉得这个问题很关键,斗胆回答一下。你问的这个问题可以换一种问法: 因为依赖dnsmaq、iptables、ipset进行前置分流,所以ssr plus拿到数据包肯定是基于ip的,没有任何域名信息。 那么ssr plus能否根据IP将它们恢复成域名,然后将域名送到vps上重新解析一次,以获得最佳cdn优化呢?

答案是不能,可以从两个方面来理解

1、ssr plus拿不到真实域名。 域名-IP的映射关系保存在dnsmasq的缓存中,而ssr plus没能力调用这些数据。 (或许可以通过dnsmasq的日志强行获取,但我在ssr plus里没看到这种代码 ) 这也是为什么clash、v2ray这些后起之秀都要额外集成dns模块的原因。 既然ssr plus压根儿拿不到域名,送往vps的数据就只能是纯IP了,远端vps也没法做二次解析了。

2、如果可以把域名送到远端vps做二次解析,大雕也就不至于强调dns需要远端解析了。

理解这点需要复读一下ssr plus调用dnsmaq、iptables、ipset来分流的原理:对于gfwlist里的域名,不管解析出什么IP,都会把这个IP加到一个名为gfwlist的ipset里面去,然后通过iptables将命中这个ipset的流量导入ssr plus的监听端口,这样需要代理的流量就被劫持进了ssr plus。 无论dnsmasq解析出的ip对不对,需要代理的域名都能正常进ssr plus,只是进ssr plus后就变成IP罢了。

如果ssr plus可以把它们恢复成域名,再把域名送到远端vps做二次解析,那总能保证翻墙时能得到cdn优化。此时本地用dnsmasq解析出来的IP仅用作前置分流,准不准确没那么重要(至多会dns泄露产生隐私问题,但不影响上网体验)。

写得有点多,但确实就是这么绕。以上。

那也就是说当ssrp运行在绕过大陆 IP 模式的情况下,DNS请求都不会通过ssrp里的访问国外域名 DNS 服务器
可以这么理解吗?

@deuteros-gex
Copy link

deuteros-gex commented Apr 16, 2023

那也就是说当ssrp运行在绕过大陆 IP 模式的情况下,DNS请求都不会通过ssrp里的访问国外域名 DNS 服务器。 可以这么理解吗?

你问的是dns分流,其实我讲的完全不涉及这个= =

但如果非要问的话,假设你选择了"使用dns2tcp查询"和8.8.4.4(这应该是最标准的用法咯)。
那ssrp无论是运行在“绕过大陆模式”和“gfwlist模式”时(另两个模式的代码没看),dns分流的逻辑都是:

在gfwlist里的域名,会走代理通过8.8.4.4查询
非gfwlist域名,会直接用本地dns解析。

我说的内容基于
https:/fw876/helloworld
起码它现在的版本是我描述的这个逻辑,过去的旧版里可能真的有pdnsd这个组件,但现在已经用dns2tcp和dns2socks替代了。

@Zeezorn
Copy link
Contributor

Zeezorn commented Apr 17, 2023

那也就是说当ssrp运行在绕过大陆 IP 模式的情况下,DNS请求都不会通过ssrp里的访问国外域名 DNS 服务器。 可以这么理解吗?

你问的是dns分流,其实我讲的完全不涉及这个= =

但如果非要问的话,假设你选择了"使用dns2tcp查询"和8.8.4.4,并将8.8.4.4加入了强制代理名单(这应该是最标准的用法咯)。 那ssrp无论是运行在“绕过大陆模式”和“gfwlist模式”时(另两个模式的代码没看),dns分流的逻辑都是:

在gfwlist里的域名,会走代理通过8.8.4.4查询
非gfwlist域名,会直接用本地dns解析。

我说的内容基于 https:/fw876/helloworld 起码它现在的版本是我描述的这个逻辑,过去的旧版里可能真的有pdnsd这个组件,但现在已经用dns2tcp和dns2socks替代了。

谢谢解答,明白了。

绕过大陆 IP 模式 下,DNS 查询流程是优先查询 GFW 列表 ,如果请求的域名在 GFW 列表中,DNS 查询流量走 访问国外域名 DNS 服务器 ,如果请求域名不在 GFW 列表中,DNS 查询流量走 国内 DNS 服务器
然后,当返回的 IP 是大陆的,数据流量不走 SSRP,大陆以外的,数据流量走 SSRP。

GFW 列表模式 下,当请求的域名在 GFW 列表中时,DNS 查询流程走 访问国外域名 DNS 服务器 ,否则 DNS 查询流量走 国内 DNS 服务器

这样理解应该没错吧。

@iceyheart
Copy link

我直接使用dnsmasq-full做DNS分流,国内域名https:/felixonmars/dnsmasq-china-list/blob/master/accelerated-domains.china.conf直接访问,国外域名在dnsmasq.conf里设置server=127.0.0.1#1053
这里的1053端口用一个clash软件进行监听,openclash或shellclash都可以(个人推荐使用shellclash,虽然没有luci界面,但是兼容各系统)。记得clash软件不要劫持53端口。clash本身开启DNS服务,dnsmasq转发过来的解析请求加代理远程解析:nameserver:

  • https://8.8.8.8/dns-query#PROXY #proxy为代理策略组或节点名
    这样就实现了DNS分流。当然,由于dnsmasq的国内CDN解析结果还是要通过clash,所以不要忘了加GEOIP,CN,DIRECT的规则

@ZacharyRen77
Copy link

在vps的上做了dns解析的话是不是直接使用就会使dns解析失效呀

@bi4nbn
Copy link

bi4nbn commented Jan 20, 2024

那个Mike 本来就是个傻吊 为了卖点硬件 好好的网络加无数层nat进去.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests