V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Censhuang
V2EX  ›  问与答

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

  •  
  •   Censhuang · 8 天前 · 867 次点击
    最近这几天我 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 进行通讯

    这个帖子是记录分享发现,同时是为了搜索引擎给其他人一个思路
    电脑 微信 发图 转圈 发不出去
    2 条回复    2025-08-27 10:11:04 +08:00
    kk2syc
        1
    kk2syc  
       8 天前
    https://github.com/Tencent/mars

    自行翻阅 ipv6 连接部分
    imhuhe
        2
    imhuhe  
       8 天前
    一样的问题,surge dashboard 显示微信直连其 IPv6 服务器一直失败,在 macOS 设置里关了 IPv6 马上就好了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3256 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 11:02 · PVG 19:02 · LAX 04:02 · JFK 07:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.