全球主机交流论坛

标题: 搭建自己本地的 DNS ,解析最快的 IP,同时避免污染 [打印本页]

作者: 咸蛋超人    时间: 2023-11-1 13:15
标题: 搭建自己本地的 DNS ,解析最快的 IP,同时避免污染
新人贴,分享一个自己最近的实践。

需求来源:之前我大部分时候用的都是 DNSPod 和阿里的 DNS,虽然已经比本地运营商的快了,但是有时候解析出来的 IP 还不是我所在的地方的最优解。比如,我老婆总是抱怨她刷小红书时速度慢。我看了一下解析出来的 IP,在我家的 ping 值确实高。

寻找:于是,我就开始找解决方案,先找到了 smartDNS,它是通过多个上游解析出来的 IP 进行比较,选择最快的。看起来是个方案,但是,如果我的上游还是阿里和腾讯的 DNS,那也可能最终只是在中等生里挑最好的中等生,而不是找优等生。

方案:最终,我找到了 PaoPaoDNS 这个方案。它的原理摘录如下:

我们可以拥有属于自己的递归DNS服务器,说白了就是把114这样的DNS服务器装你家里。这样你的每个请求都非常的原生地到达了权威DNS服务器,获取的结果可谓是准确中的准确。你再也不需要对DNS服务器进行收集和测速,也不需要对解析结果进行测速(实际上,你已经获取了原生的准确解析结果了,测它没有什么意义,多个DNS解析结果本来就是为了能DNS轮询负载均衡故障转移,比如在一个大局域网大家都用同一个IP连接视频播放地址可能就不是一个好主意),实在是强迫症治愈良药。


同时,因为是找权威 DNS 进行解析,不经过国内的 DNS,也避免了污染的问题。

搭建:

这里假设你已经有:

1. 放在家里的服务器,我用的是 Debian
2. 你家里的宽带已经有公网 IP ,你的路由可以设置端口转发
3. 你有自己的域名,并已经设置了家里的 DDNS

第一步:搭建 PaoPaoDNS

结合官方的文档说明,通过以下命令在 Debian 上搭建:

  1. docker run -d \
  2. --name paopaodns \
  3. -v /root/paopaodns:/data \
  4. -e CNAUTO=yes \
  5. -e IPV6=raw \
  6. -e CNFALL=no \
  7. -e USE_MARK_DATA=yes \
  8. --restart always \
  9. -p 53:53/tcp -p 53:53/udp \
  10. sliamb/paopaodns
复制代码


此时,内网服务器上的 DNS 就搭建好了,但为了在外面时能更好地使用,我们再安装一个程序。

第二步:通过 Dnsdist 转换为 DoH

通过 APT 安装 dnsdist ,并修改位于 /etc/dnsdist 的配置文件:

  1. setACL("0.0.0.0/0")
  2. newServer("127.0.0.1:53")
  3. addDOHLocal("0.0.0.0:23443", "/path/to/fullchain.pem", "/path/to/privkey.pem",'/dns-query')
复制代码


需要注意,这里必须配置证书。

那么,直到现在,我们已经拥有了内网的 DNS,普通版是:192.168.100.2 (你的服务器 IP,端口 53,但可以忽略)。

第三步:内网穿透

在路由上,将 23443 端口转发到你服务器的相同端口。那么,现在你就用了 DoH 版的 DNS:xxxxx[dot]com:23443/dns-query (新人不允许发连接)

现在,你可以将这个 DNS 设置到你的电脑、路由或者类似于 Surge 这样的软件里了。

高阶操作:

我们可以到此就结束,但是,还能做得更好。

如果我们的设备(比如手机),连上家里的 WiFi 时,就通过内网连接本地服务器进行解析,在外面的时候,就用 DDNS 连回来进行解析,这在速度上还能进行一定程度上的榨干。

我用的是 Surge,具体的做法是:

1. 在域名的 DNS 里新增一条,比如:dnslocal[dot]xxxxx.com 到你的服务器 IP,比如 192.168.100.2
2. 在 Surge 里写一些规则,通过 SSID 进行判断,如果 SSID 是你家里的,则把 DNS 设置为 dnslocal 的域名,否则默认是你远程 DDNS 的域名

然后,我们还能进一步优化,比如,让服务器先跑一些域名,将解析结果缓存下来,这样,当我们查询的时候,就会更快了。具体可以在 Git搜索这个项目: PaoPao-Pref。

于是,搞定,完事儿。


作者: 5K狗    时间: 2023-11-1 13:16
这教程不得卖5K?
作者: shiguang    时间: 2023-11-1 13:17
我出6K
作者: 咸蛋超人    时间: 2023-11-1 13:18
5K狗 发表于 2023-11-1 13:16
这教程不得卖5K?

我是假的 mjj,我……免费。
作者: fcat    时间: 2023-11-1 13:19
coredns、TechnitiumDns、PowerDNS都可以
作者: 中国移动    时间: 2023-11-1 13:19
最近正在尝试mosdns分流
作者: Wine    时间: 2023-11-1 13:21
没有家里服务器也没公网,跳过
作者: soke    时间: 2023-11-1 13:21
mark
作者: Mingus    时间: 2023-11-1 13:22
好贴啊 收藏了
作者: Mingus    时间: 2023-11-1 13:24
上面说的 如果我只需要家里的设备用自建的dns服务器 那也就是并不需要把这个ppdns内网穿透出去吧 只需要搭建好就可以了
作者: fak    时间: 2023-11-1 13:29
水起来
作者: 咸蛋超人    时间: 2023-11-1 13:35
Mingus 发表于 2023-11-1 13:24
上面说的 如果我只需要家里的设备用自建的dns服务器 那也就是并不需要把这个ppdns内网穿透出去吧 只需要搭 ...

是的,第一步就搞定了。
作者: wbews    时间: 2023-11-1 13:38
方法不错可以学习。
作者: 暖风    时间: 2023-11-1 13:46

好贴啊 收藏了
作者: Cybertruck    时间: 2023-11-1 13:52
感谢分享 ,收藏学习
作者: amao000765    时间: 2023-11-1 13:53
家里自己玩玩得了,你把dns放出去,可能就有人把你人给送进去。
作者: 大帅比    时间: 2023-11-1 14:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 开大    时间: 2023-11-1 14:26
教程不错,可是市面上这种东西不少了吧
作者: Benladen    时间: 2023-11-1 14:29
回复后在看




你好,MJJ!

Send by DZ Reader

作者: zhang120aa    时间: 2023-11-1 14:32
本地开不了公网啊...收藏一下
作者: tealulu    时间: 2023-11-1 14:40
难道之后不会被吴冉吗?

作者: nmt    时间: 2023-11-1 14:40
自己玩玩得了,放出去怕是没多久就喝茶了
作者: aba    时间: 2023-11-1 14:42
国内建DNS不是要北岸吗
作者: Midas    时间: 2023-11-1 14:45
帮顶
作者: DX3906    时间: 2023-11-1 14:48
顶顶顶,绝顶好贴
作者: hbetv    时间: 2023-11-1 14:48
看样子跟我没太大关系
作者: Equinix    时间: 2023-11-1 14:49
可以,帮顶
作者: 马杀鸡    时间: 2023-11-1 14:51
你是不是在找AdGuardHome?
作者: Susanoo    时间: 2023-11-1 15:05
其实自己家用可以用dnsproxy,轻量简单,有edns,dot,doh,还有ip速度判断
作者: 赵云    时间: 2023-11-1 15:08
家里用当然是adguard_home了 还能自定义规则
作者: speculari    时间: 2023-11-1 15:24
收藏 虽然我没有公网IP
作者: hanada    时间: 2023-11-2 00:09
你这不就是自建递归DNS吗……
作者: 咸蛋超人    时间: 2023-11-2 00:55
hanada 发表于 2023-11-2 00:09
你这不就是自建递归DNS吗……

是的
作者: spadmin    时间: 2023-11-2 03:12
技术贴,赞一个
作者: ค้้้้้้    时间: 2023-11-2 03:15
这么明目张胆的发软文了吗
作者: kikuri    时间: 2023-11-2 03:22
感觉太麻烦了啊就看看
作者: 你号没了    时间: 2023-11-2 07:55
搞不懂。上游不还是电信移动这些运营商吗?
自建意义何在
作者: 幽灵蚀月    时间: 2023-11-2 08:01
没有公网ip略过!
作者: FeiLai    时间: 2023-11-2 08:19
没有公网ip,全剧终。
作者: 坏坏    时间: 2023-11-2 08:32
好帖子,马上去试试




欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4