本文不是为了说明解决了多难的问题,而是提供了查找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。
再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
小问题不简单,一个无线故障的排查过程,布布扣,bubuko.com
原文:http://gavins.blog.51cto.com/2315765/1436040