家庭用户有必要自建递归 dns 吗

119 天前
 chenbin36255
RT https://blog.03k.org/post/paopaodns.html
看了这位大佬的 blog 使用 paopaodns 自建 dns+paopaogateway FAKE IP 网关
使用静态路由映射的方式实现国内外的域名分流
从原理上看是很精巧的分流方式

另外 DNS 解析的速度不太好判断
如何判断 dns 的解析速度和准确性呢
4922 次点击
所在节点    DNS
45 条回复
winson030
118 天前
@maybeonly 想问一下 openwrt 能不能实现这个?
samIIsun
118 天前
@winson030 (不请自答) 可以
tsanie
118 天前
在墙内解析获得一个黑名单域名的真实 ip 没有必要且耗时,所以 fakeip 才能流行起来。
sleepm
118 天前
没必要
fakeip 是因为
访问一个网站,域名解析为 ip
如果 dns 返回的 ip 是被污染的,体验不好(打不开)
如果没有被污染,但是 ecs 是相对于用户的,不是相对于落地,体验也不好(速度慢)
fakeip 把域名对应关系交给内核,但是直连的体验就不行了
dns 分别解析,就可以不需要 fakeip ( mihomo dns mode 支持 normal ,也就是单纯 dns 转发)
运营商的 dns ,因为不止你一个用户在用,同地区几百上千个人在用,大部分解析都直接命中缓存,速度最快,结果最优
yyysuo
118 天前
@povsister 最近也尝试了用国内 dns 去解析列表外的域名,发现还不如好的代理呢,小众的域名,国内 dns 查起来也很慢的。
zhu327808
118 天前
完全没必要,只算国内网站的话,运营商 dns 返回的 ip 往往是最合适的,需要做的是在 dnsmaq 上做 gfwlist 的 dns 分流,分流到提供 fake ip 解析的服务器上,比如直接用 v2ray/xray 内置的 dns 返回 fakeip ,分享我的一个透明代理方案吧,对路由器的要求非常低

https://zhu327.github.io/2023/12/23/%E9%80%8F%E6%98%8E%E4%BB%A3%E7%90%86%E5%AE%9E%E8%B7%B5%E6%8A%80%E6%9C%AF%E5%B0%8F%E7%BB%93%E4%B8%8E%E6%96%B9%E6%A1%88%E6%BC%94%E8%BF%9B/
yyysuo
118 天前
@zhu327808 本质上都是按 fakeip 分流了,不管是本机用 ipt 、nft ,还是静态路由到旁路,其实没有太大的区别,都是先按域名分成 fakeip 和 realip ,体验的区别主要是分流的精细度,你的方案对于列表外的域名是怎么分的?可以看看我的
方案

https://v2ex.com/t/1057357

再分享一个 nft 的规则,我简化了一下,没有写奈飞 ip 电报 ip 的国外公共 dns ip ,可以自己按需添加。

table inet singbox {
set local_ipv4 {
type ipv4_addr
flags interval
elements = {
28.0.0.0/8
}
}

set local_ipv6 {
type ipv6_addr
flags interval
elements = {
fc00::/18
}
}

set router_ipv4 {
type ipv4_addr
flags interval
elements = {
28.0.0.0/8
}
}

set router_ipv6 {
type ipv6_addr
flags interval
elements = {
fc00::/18
}
}

chain singbox-tproxy {
meta l4proto udp meta mark set 1 tproxy to :7895 accept
}

chain singbox-mark {
meta mark set 1
}

chain mangle-prerouting {
type filter hook prerouting priority mangle; policy accept;
ip daddr @local_ipv4 meta l4proto udp ct direction original goto singbox-tproxy
ip6 daddr @local_ipv6 meta l4proto udp ct direction original goto singbox-tproxy
}

chain mangle-output {
type route hook output priority mangle; policy accept;
ip daddr @router_ipv4 meta l4proto udp ct direction original goto singbox-mark
ip6 daddr @router_ipv6 meta l4proto udp ct direction original goto singbox-mark
}

chain nat-prerouting {
type nat hook prerouting priority dstnat; policy accept;
ip daddr @local_ipv4 meta l4proto tcp redirect to :7899
ip6 daddr @local_ipv6 meta l4proto tcp redirect to :7899
}

chain nat-output {
type nat hook output priority filter; policy accept;
ip daddr @router_ipv4 meta l4proto tcp redirect to :7899
ip6 daddr @router_ipv6 meta l4proto tcp redirect to :7899
}
}
zhu327808
118 天前
@yyysuo 列表外直接走默认运营商 dns ,ipv4 也好,ipv6 也好都没关系的
povsister
118 天前
@yyysuo 国内 dns 先解析一次的作用,是在不写过多 domain rule 的情况下,尽可能优选节点,同时避免 dns 污染。
国内 dns 可以保证如果目标网站国内有节点,可以直接访问,同时碰到 dns 污染( 99%的 dns 污染返回的是海外 ip )时,会自动调用海外 dns
frankilla
118 天前
我的看法就是瞎折腾。
winson030
118 天前
@samIIsun 卧槽那真是太好了!可以给我几个搜索的关键词或者网页或者教程吗?我现在想实现在 op 主路由里完成国内外分流,像 router os 那样。
zzzmode
118 天前
构建自己的域名黑名单列表,黑名单列表的域名也没有必要再解析,直接代理服务器自己处理
povsister
118 天前
@winson030
routeros 里,也没法实现基于域名的国内外分流啊(摊手
maybe 大佬的方案本质是 DNS route + conn-track ,分离策略和流量隧道,二者之间依赖路由表决策,而路由表由策略层控制(即 DNS route )
ellermister
118 天前
@zhu327808 我没有考虑到 fakeip 是因为他返回的假 ip 让我调试测试,开发时很懵逼。无法知道命中的哪台服务器。


我现在有一个问题,我的 dns 解析的基本没问题,但是 ssrp 不会的代理我的 ipv6 。

有没有简单的办法可以让我的部分 ipv6(黑名单/海外 ip)走代理。或者某些域名,直接不解析 ipv6(op 只有全部开启或者关闭的按钮)
yyysuo
118 天前
@povsister 我没说清楚,列表外的域名,就不用写 rule 了,直接国外就行,这样不会有过多的 rule ,我比较的是带 ecs 通过代理走 8888 的速度,和列表外的域名(小众)直接走国内 dns 的情况,两者速度,8888 反而有优势(几十 ms ),国内 dns 反而有时候会上千 ms 。
yyysuo
118 天前
列表外的这么搞,如果是中国 IP ,直接就使用,如果是国外 IP ,直接发 fakeip 再去远程解析就行了。
samIIsun
118 天前
@winson030 FYI: https://blog.csdn.net/Cx2008Lxl/article/details/126670228
总体用到组件 mwan3 ,dnsmasq-full ,ipset
zhu327808
118 天前
@ellermister 可以看我之前的方案链接里,代理域名可以用 smartdns 把 ipv6 SOA 掉,只返回 ipv4
batilo
112 天前
没必要吧。
chenbin36255
112 天前
@batilo paopaodns+paopaogatway 已经搭好了 在 ikuai 里面用 docker+虚拟机 算下来 30 分钟就搞定了 已经稳定运行一周 非常丝滑 不再需要 openwrt 旁路由

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1066895

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX