由微信引发的,一次神奇的 Debug 历程, 已瞎

2016-10-25 15:53:32 +08:00
 shiji
问题是这样的,最近换了 Xperia XZ 双卡版 F8332 (只有 SIM2 使用流量,运营商:美国 T-Mobile ), 发现微信在使用移动网络的时候完全无法连接服务器。
与此同时,我的 Chrome 浏览器, Gmail 什么的都能正常连接网络。

打开并连上 Wifi ,微信就能正常使用。

然后打开抓包工具,在有 wifi 的情况下,微信的心跳包(看起来像是)都能正常发送接收,大小是 1kb 多。

切换成数据网络的时候,能看出微信在尝试和一堆服务器连接,包括 80 和 8080 端口,但是从抓包软件上的数据来看,显示 No Data ,感觉 tcp 握手都没成功.
QQ 音乐在使用数据网的时候出于一种极其不稳定的状态,间歇可用。


另外朋友圈却是正常的,就是微信消息不能发送也不能接受。

最后我发现 SS 也不能正常工作(一般来说 SS 服务器有问题都会显示有发送数据,接收数据是 0 的情况,我这个发送数据也一直是 0 )。而且我服务器这边一直在监听,没发现 SS 发送过来的连接。

继续调查,发现大部分 APP (试了美国银行, Cousera , Udemy )都是能正常联网的,除了微信, SS 有通信故障以外,手机还有个 he.net 的网络诊断 APP 部分发生故障。发生故障的部分是 Ping 和 TraceRoute.

ping 网站,提示 unable to find 我输入的网站域名 on ipv4, 用 DNS 直接查询,却能准确查到 IPv4 的结果。
traceroute 不管什么,全部是 50 组星号,只有 127.0.0.1 能正常显示出毫秒。 ping 127.0.0.1 完全丢包。

ipip 显示我的 IP 是 172.58.225.**,直接搜 IP , Google 给出的是一个 IPv6 地址: 2607:fb90:54aa.........

好了,问题就说到这里,后来我用本机 shell 找到了狗血的原因。我先不说,大家猜猜看。
4095 次点击
所在节点    分享发现
12 条回复
shiji
2016-10-25 16:16:16 +08:00
答案在这里:
https://ooo.0o0.ooo/2016/10/25/580f13a13dd10.png

NAT64 导致直接用 IPv4 通信的微信无法连接。 朋友圈的文章 mp.weixin.qq.com 是支持 ipv6 的。
SS 填的是 v4 的地址,自然无法连接。
手机 shell 下面 ip addr 是没有公网 ipv4 的,这也是我受启发的地方。
ping traceroute 什么的也可以解释了。。

怪我之前在 APN 设置里面随手启用了 v6 ,谁想到当初不经意的一个设置,给自己挖了个大坑。

话说 NAT64 也是蛮少见的
shiji
2016-10-25 16:19:47 +08:00
再补充, NAT64 是因为我手贱, APN protocol 那里选择的是 IPv6 ,如果选择 IPv4/IPv6 的话,就是正常的每种 IP 各一个。
Luzifer
2016-10-25 17:27:46 +08:00
只能憋半个小时?
yangxiongguo
2016-10-25 17:30:12 +08:00
你猜我猜你猜不猜
VYSE
2016-10-25 18:00:01 +08:00
还以为内置 8.8 的 dns 导致的
kouryu
2016-10-25 18:13:08 +08:00
@Luzifer hahaha
Halry
2016-10-25 18:43:28 +08:00
ipv6 导致各种问题
我都是把 ipv6 关掉的
目前发现 ipv6 经常 ss 用不了
21grams
2016-10-25 19:20:41 +08:00
感觉楼主好像在嘚瑟什么,但我完全没看懂
Quaintjade
2016-10-25 19:29:07 +08:00
看来我也要找找 windows 虚拟机 qq 掉线的问题了
shiji
2016-10-25 21:52:26 +08:00
@Luzifer
@yangxiongguo 因为写完了觉得我有点贱,还是不要吊胃口的好,所以就很快补上了。


@Halry 其实这是我遇到的第一个关于 IPv6 的问题,别的都是小问题,比如,我发现 Youtube 在 IPv6 的情况下速度远远不如 IPv4 , ping 的响应时间也比 v4 慢很多。


@21grams 从语气上看出来的么?我这本来是想过来问大家的,结果写到一半自己找到原因了,而且是个比较无语的原因,所以后半段是呲着牙写完的。
inmyfree
2016-10-26 09:01:30 +08:00
@Luzifer 哈哈,我就看楼主能憋多久
anyforever
2016-10-26 17:27:02 +08:00
@Luzifer 哈哈。肾不好。。

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

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

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

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

© 2021 V2EX