搜索
缓存时间03 现在时间03 缓存数据 眼泪是真的,心酸是真的,想和你在一起一辈子也是真的。愿孤单的人不必逞强,愿逞强的身边永远有个肩膀,愿肩膀可以接住你的欢喜哀伤,愿有情人永生执手相望。愿你爱的人,最后都能成为你的爱人
查看: 60|回复: 0

OpenWrt下完美解决访问论坛解析IPv6的方法

[复制链接]
发表于 昨天 12:39 | 显示全部楼层 |阅读模式

厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。注册帐户,不仅可以享受无广告的清爽界面!

您需要 登录 才可以下载或查看,没有账号?注册

×

之前论坛被墙后,网站在Cloudflare打开了ECH(Encrypted Client Hello),之后在代理软体具有sniffing(流量嗅探)功能的情况下若浏览器ECH生效访问论坛则有可能会通过IPv6访问,之前我测试过可以解决该问题的方法为3个:
1、代理软体Client与Server同时关闭sniffing,此方法缺点是需确保用户端与服务端都关闭sniffing,否则任意一端开启sniffing则会一直处于生效状态。另外若Client解析到被污染的IP,因sniffing关闭会导致被代理的网站无法正常访问。并且关闭sniffing会导致在Server端做的分流失效。
2、代理软体的Client与Server同时在SniffingObject的domainsExcluded加入域名cloudflare-ech.com ,此方法的缺点是也是需要同时在用户端与服务端设定,否则无法生效,如果Client解析到被污染的IP将会导致无法访问网站。并且domainsExcluded据我所知只有Xray有此功能。另外此方法也有可能会导致所有CF代理的ECH启用状态下的TLS流量只能走IPv4(取决于Client解析有没有屏蔽AAAA)。
3、在代理软体Server端配置档的RoutingObject添加一条cloudflare-ech.com走IPv4的规则,此方法缺点是所有CF代理的网站ECH启用状态下的TLS流量只能走IPv4。
前2种方法是有明显缺点,只有第3方法影响最小,但是也需要对VPS上的配置档进行操作,并不适用于所有人,所以放出第4种方法,适用于OpenWrt:
先说一下原理,浏览器在访问网站之前会进行dns查询,在常规的A/AAAA基础上还会查询HTTPS Record,若返回有ech=字样,浏览器则会尝试通过ECH进行TLS握手。

root@debian:~# dig https bbs.naixi.net

; <<>> DiG 9.18.28-1~deb12u2-Debian <<>> https bbs.naixi.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51727
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;bbs.naixi.net.              IN      HTTPS

;; ANSWER SECTION:
bbs.naixi.net.       297     IN      HTTPS   1 . alpn="h2" ipv4hint=104.26.10.72,104.26.11.72,172.67.70.75 ech=AEX+DQBBfwAgACCNcizsY+nvDc9VbY6s6yDIa9GvelfoA0eDK8ZMAB5yaAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA=

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Jan 11 12:14:18 CST 2025
;; MSG SIZE  rcvd: 158

我们所要做的就是通过dnsmasq自定义一条HTTPS纪录,返回空值或者将其中的ech公钥去掉。
方法分为2种,都需要在SSH操作:
1:

#下面2行只需要執行其中1行,第2行返回空值
echo dns-rr=bbs.naixi.net,65,0001000001000302683200040004681A0A48 >> /etc/dnsmasq.conf
echo dns-rr=bbs.naixi.net,65 >> /etc/dnsmasq.conf

2:

uci add dhcp dnsrr
uci set dhcp.@dnsrr[-1].rrname=bbs.naixi.net
uci set dhcp.@dnsrr[-1].rrnumber=65
uci set dhcp.@dnsrr[-1].hexdata=0001000001000302683200040004681A0A48 #此行不添加則返回空值
uci commit dhcp

之后在SSH执行

service dnsmasq restart 或 /etc/init.d/dnsmasq restart

然后清除用户端的DNS缓存并进行测试就可以成功移除ECH公钥,之后访问网站将不会再以ECH方式进行TLS握手即可正常打开论坛

C:\Users\Administrator>dig https bbs.naixi.net

; <<>> DiG 9.16.33 <<>> https bbs.naixi.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1448
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;bbs.naixi.net.              IN      HTTPS

;; ANSWER SECTION:
bbs.naixi.net.       0       IN      HTTPS   1 . alpn="h2" ipv4hint=104.26.10.72

;; Query time: 0 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Sat Jan 11 12:12:14 ;; MSG SIZE  rcvd: 75

注:其他路由器系统若有类似dnsmasq的这个功能也可以通过此方法实现

[发帖际遇]: 一个袋子砸在了 日月共明 头上,日月共明 赚了 2 点数. 幸运榜 / 衰神榜
爱生活,爱奶昔~

Powered by Nyarime. Licensed

GMT+8, 2025-1-12 03:03 , Processed in 0.074607 second(s), 14 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网 | 沪ICP备13020230号-1 |  沪公网安备 31010702007642号

登录切换风格
快速回复 返回顶部 返回列表