首页 > 代码库 > 小问题不简单,一个无线故障的排查过程

小问题不简单,一个无线故障的排查过程


本文不是为了说明解决了多难的问题,而是提供了查找app连接服务端的问题的几种解决问题的思路和方法


研发人员反映有个手机app业务在3G网络下刷新不了,是连接的测试环境的服务,通过办公网和wifi正常。


研发认为可能是在3G网络或者是服务器所在IDC机房问题,问题出现有一段时间了。


真这么神奇?专治疑难杂症30年的我得查查~


找来一台andriod手机,root过的,安装ssh终端模拟器app,希望直接连接网络进行测试。


发现能ping ,说明网络是通的,不能telnet服务端口。

想通过curl模拟请求时,发现手机全键盘输入长长的命令,太痛苦了。

还找同事借个蓝牙键盘来输入呢,发现还真是可行,只是人家办公用的键盘,不能长时间借我。


和一同事聊起,反正是测试网络,不如用手机作为移动热点,电脑通过手机上网,也是3G呀。

其实也可以用3G上网卡,我有一个,只是放家里了,没法测试。


成功连接热点,用实体键盘操作爽太多了。

ping 3000多ms,慢,丢包,超时,办公室的3G网络质量确实不佳呀,不会是网络质量或速度问题引起的吧?

tracert ,16hop,断断续续,多点超时,但能通。


只有祭出tcpdump了


光盯端口是不行的,噪音太大,通过IP才能干净准确,如何找到手机的的IP呢?


访问IP查询网站,如www.ip138.com这类网站是一种方法,页面会显示本机的IP。还好上面是电脑连接热点上的网,浏览器也可以使用。

另一种稳妥的方法是,先连接到服务器一个无人使用的端口,服务器tcpdump 端口,找到IP。

我两种都用了,发现网页方法查到的也是正确的。


找到IP就好办多了,tcpdump  host IP and port 端口 抓包,发现跟服务的3次握手没完成,只收到SYN,没有ACK。

spacer.gif

再tcpdump host ip and port 80,能正常完成3次握手


难道是服务程序的问题,网络连接处理有问题?要不然让开发调试一下?

转念一想不对,只有SYN,没有ACK更有可能服务器拒绝引起的,可能是防火墙的问题。

马上检查了iptables配置,发现确实有几条针对服务器端口的accept和一条drop

规则是允许内网和办公网访问,刚才找到那IP不是办公网IP,所以肯定是不能访问的。


去掉drop规则,测试访问OK,问题解决了~


原来防火墙规则是研发想要保证测试环境的安全加上的,没想到3G网络连接测试时会出问题


研发人员提出为什么wifi又可以呢,嘿嘿,wifi出口也用的办公网出口IP


上面提到的几种思路和方法:

1、终端模拟器app

2、蓝牙键盘

3、3G热点或3G上网卡测试网络问题

4、IP查找方法

5、tcpdump分析网络操作过程

6、告诉大家了wifi出口IP的情况


顺便提下

终端模拟器可以支持很多命令哦,

真是一个mini linux

进入/system/bin/ ls一下

能看到能支持的命令


本文出自 “张观石的技术博客” 博客,请务必保留此出处http://gavins.blog.51cto.com/2315765/1436040