微信 for mac 是如何检测 ipv6 可用性的?

17 天前
 Censhuang
最近这几天我 mac 端微信抽风,图片发不出去,文字正常发送。想了好几天决定今天解决。
通过 mihomo 的 tun 模式接管后发现微信使用 udp 协议进行通信(同时发起两个目标连接,一个是 443 端口,一个是 8000 端口)与一个江苏省 ipv6 连接。
不过现有 ipv6 免费库不能直接查明这是否为 idc 地址,初步怀疑为 dns 解析炸了,因为我用了 mihomo 的 dns 覆写+tun 模式接管。(此时 mihomo 内核启用了 ipv6 ,但是机场落地没有 ipv6 ,通过连接查看,微信的全部服务是直连)

发现:
在上报我的机场连接延迟不理想的时候,我打开了 ipv6test 网站查看我的 ipv4 和 ipv6 ,发现我没有 ipv6 地址,我觉得很震惊。因为“新”路由器到了之后我就仔细配置,那时候我的设备确实是有 ipv6 的,路由器后台也有 ipv6 的各种信息。
之后来到路由器后台,真相大白了,路由器自己的 ipv6 掉了,导致其他设备没有正确分配到 ipv6 地址(均 dhcp 模式)
现在路由器 ipv6 的“局域网设备获取 IP 地址方式”更改了,原来是 auto ,现在在 gpt 的建议下修改为“SLAAC+Stateless DHCPv6”。连接方式还是 DHCPv6
ipv6 为何不设置为运营商 dns 呢(全自动模式)?主要是我对北京移动的 dns 解析有偏见。

疑问:
微信是怎么检测到我有 ipv6 地址的?(虽然我开了 mihomo 的 ipv6 功能)按理来说 检测 ipv6 正常通信后才在正式服务中启用 ipv6 连接的。我没 ipv6 地址,为什么微信还只启用 ipv6 进行通讯

这个帖子是记录分享发现,同时是为了搜索引擎给其他人一个思路
电脑 微信 发图 转圈 发不出去
1005 次点击
所在节点    问与答
2 条回复
kk2syc
17 天前
https://github.com/Tencent/mars

自行翻阅 ipv6 连接部分
imhuhe
16 天前
一样的问题,surge dashboard 显示微信直连其 IPv6 服务器一直失败,在 macOS 设置里关了 IPv6 马上就好了。

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

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

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

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

© 2021 V2EX