竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


205月/170

手机无须ROOT和修改hosts在本地测试安卓和H5应用

发布在 邵珠庆

开发手机APP和 H5 应用经常需要在本地和线上环境分开测试,一般想到的操作都是修改hosts,我也一直这么干的,但手机上修改hosts是需要 ROOT权限的,这样太过麻烦,还有变砖头的风险,而且有些手机根本不能ROOT的。

忙和了一下午,总算完全达到预期,有点收获,下面说说重点,主要是两个:

  1. 本地 DNS 服务
  2. 网络代理

做个本地的 DNS 服务,有点像DNS劫持的感觉,这个是一劳永逸的办法
首先,你需要一个Linux 虚拟机或一台服务器
我下面的配置使用的 Centos7.0 系统,不通版本可能有些差别的。

一、安装 DNSMasq

# 安装
yum install dnsmasq -y 
service dnsmasq start

# 编辑配置参数
vi /etc/dnsmasq.conf

# 查找 resolv-file 去掉注释符,添加文件路径
# 表示 dnsmasq 会从这个指定的文件中寻找上游dns服务器
resolv-file=/etc/resolv.conf

# 查找 no-hosts , 确保前面有 # 井号的(表示被注释掉的),否则 hosts 配置不起作用
# 监听的IP
listen-address=127.0.0.1,192.168.0.103
strict-order
addn-hosts=/etc/hosts
cache-size=32768

# 配置到网卡参数,centos7 和 6 的网卡名是不同的,用ifconfig 查看替换下
# centos 7 以前
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# centos7 不一定相同
vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

#  最多只能写3个,注意原配置中若存在则需要调整
DNS1=127.0.0.1
DNS2=192.168.0.103
DNS3=202.101.172.35
#DNS3=202.101.172.47

# 保存后, resolv.conf 文件内容会自动更新的
cat /etc/resolv.conf

# 查看DNS是否已添加进去

# 注册服务
chkconfig dnsmasq on

# 重启
/etc/init.d/dnsmasq restart

# centos7 下使用的命令
systemctl restart dnsmasq

# 检查是否安装成功
netstat -tunlp|grep 53
yum install bind-utils

# 测试是否启用 DNS 配置
dig m.ai9475.com

# 编辑 hosts 文件,配置本地 DNS 劫持域名 IP 的映射关系
vi /etc/hosts
192.168.0.105 m.ai9475.com


这样服务端的 DNS 劫持就基本配置好了
下一步还需要在手机上设置 DNS 对应的 IP,

打开 网络设置 -> wifi连接 -> 修改网络 -> 高级 -> 静态IP方式 -> 修改第一个NSIP即可,第二个可用正常的公网DNS

如下图:

Android手机DNS配置

最后注意:修改 hosts 之后,需要重启 dnsmasq 还有 network 最好也重启

二、使用本地网络代理

这个方法比较有局限性,对 H5 网页应用还可以,对部分原生 APP 可能无效哦,但有个好处是配合一些软件可以做前端的抓包查看,对测试接口之类的查看数据很有用

我用到过两个软件,
1. Fiddler
这个软件使用很方便,网上有很多介绍,这里就不说了,但据说仅支持 windows 平台
2. Whistle
这个是开源的项目,跨平台,我目前用的是这个,配置也很简单
下面简单说下如何安装使用

依赖 Nodejs,所以先安装 nodejs
我这里图方便,就用 yum 的方式安装了

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum install -y nodejs

下载速度可能有些忙,10KB/s 下载了好半天才下完,耐心等吧

npm install cnpm -g --registry=https://registry.npm.taobao.org
cnpm install -g whistle
w2 start

这样就完成了。。。

查看代理请求数据,就是抓包数据

http://127.0.0.1:8900
http://127.0.0.1:8899

:8899 是代理的端口,但也可以查看抓包数据

两个端口都可以看,下图看看效果先(图片可以直接拖拽查看大图)

手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用

其他的就直接看官方说明文档吧,中文的,很清晰明了
https://avwo.github.io/whistle/install.html

后面就是手机上操作和上面的 DNS 设置是同一个地方

打开 网络设置 -> wifi连接 -> 修改网络 -> 高级 -> 代理(手动配置) -> 填写局域网中服务器的IP,如192.168.0.103,端口 8899 

如下图:

Android手机设置代理

最后就是修改服务器上的 hosts,参考上方 DNS 配置 hosts 的操作是一样的

差不多就这样设置好了。

最后需要注意的就是清除手机上的缓存,一定要关闭浏览器和应用,清理内存后再打开,否则手机上的 DNS 和网络设置可能没有切换过来的。

以上配置我都是在 Android 设备上测试的, iOS 没有应用可测试,不过按理说应该是一样的效果的。
虽然代理的方法对有些APP 不一定有用,但建议还是 DNS 和 代理一起上吧。。。就这样了。

248月/080

行货手机和水货手机究竟啥区别?

发布在 邵珠庆

如何分辨水行货,大概是很多朋友关注的问题;一般来说,专门出售水货的JS是不会用水货手机冒充行货的,而且分辨水货和行货的方法很多也比较简单,比如查看串号、入网许可证等等,我们主要要学会如会如何分辨不同档次的水货手机。
关于水货的“A、B、C”问题,是老生常谈了,简单的说,A版水货是港行,香港发售的行货,走私到内地;B版水货是在欧美市场发售的手机,走私到内地,并且刷入中文版本和中文字库;C版则是翻新机和二手机,在广州市场比较多见。先让我们来看看这几种水货的区别和各自的利弊吧:
港行手机是所有水货中相对比较好的,因为其本身也是行货,只是通过走私避税赚取差价。由于港行本身就支持简体中文,和行货基本没有区别,因此购买港行手机是购买水货的最佳选择;当然,港行手机也是所有水货手机中价格最高的。举个例子,行货的三星D508价格在4200元左右,而港行的D508价格一般在3200元左右,而B版水货(简称水改)的价格则在2700元左右。港行和行货的区别主要在售后服务方面,港行手机也不能享受内地客服(KF)的免费保修服务的。前些时候曾经传出诺基亚的港行手机可以在大陆享受和行货一样的保修待遇的消息,诺基亚官方在证实了这一消息,不过值得注意的是,要在内地享受KF服务的诺基亚港行手机必须提供购买发票(行货诺基亚手机在KF维修是不需要提供任何购买凭证的),而在内地购买港行是无法提供在香港购买的原始发票的,也就是说,港行手机依然无法在内地享受保修服务。
友情提醒:可别小看了售后服务,手机的故障率可是很高的,一般的手机都存在这样或那样的BUG,一般来说,软件版本越低,手机使用的问题和BUG就越多,再加上一些可能出现的质量问题,完善的售后服务是非常必须的,谁想不想用手机用的提心吊胆吧?
水改手机最大的优点是价格比港行更加便宜,缺陷是质量问题相对严重。
水改手机的质量问题主要是稳定性方面,由于刷入的中文版本并不是官方的,而是一些软件高手自己编写的,因此稳定性方面就大打了折扣。如诺基亚第一款游戏手机N-Gage,刷入的“九方”中文输入法非常麻烦,而且死机问题严重,这些问题一直等到N-Gage QD在内地上市,N-Gage刷入了QD的软件版本才得到解决。
友情提醒:水改是便宜,但是牺牲的是质量,如果您只用手机发发消息打打电话,那还可以考虑购买,如果您想玩手机的话,还是选择港行或者行货吧,要不买回的手机问题多多,要花大价钱维修甚至没有办法维修,那就只有后悔的份了。
C版水货是少数JS利用翻新机和二手机冒充的新机,价格最低廉,质量也最差,我们就是要避免买到这样的手机,具体的分辨方法会在下面单独列出来
对水货了解了,可要学会分辨才是正题啊,别急,现在就来告诉您一些简单实用的分辨方法:
1 查看串号是最普遍的方法,也是一定要做的,具体做法是待机状态输入“*#06#”,将屏幕显示的数字和机身背后的对比就行了,一致的就可能是行货。
2 港行手机的键盘上有中文比划,而水改手机则是人为刻上去的比划,粗糙且不自然,不透光,在光线暗的地方打开键盘灯就能看的出来,特别是象摩托罗拉V3这种金属键盘上更加明显。
3 打开手机的后盖,取下电池,在机身背面都有手机型号,港行的很多型号和内地是一样的,如三星D508的香港型号也叫D508,而水改型号则是D500(大概是因为中国人比较喜欢“8”这个数字吧)。
4 三星的港行手机在面板上和行货一样有“ANGCALL”的标志,而水改则只有“SAMSUNG”标志。
5 查看手机版本,行货手机都有相对固定的官方版本,而水货也有一些特定版本,有些版本是只会出现在港行手机上的,各款手机的具体版本不同,也不能一一介绍了,这就需要大家自己找一些专业的手机论坛请教相对的手机高手了。
6 有些手机只可能是水改机,没有在香港和其他中文地区上市,其中包括从韩国和日本走私过来的一些手机。
7 纯英文的手机也是水改机无疑,如果您不需要中文短信,而且对自己的外语水平充分自信的话,也可以选择,因为这样的手机没有经过刷机,质量也和行货一样。
8 水货手机的价格也是相对固定的,同一款手机的港行价格全国都差不多,如果便宜的多的就是水改或者翻新机了。
9 查看出产日期可以分辨翻新机,如诺基亚的非智能手机待机状态下输入“*#92702689”,就可以显示生产日期等信息,如果过早的日期就不要购买了;具体品牌的分辨方法不尽相同,大家可以自己上网寻找查询方法。
10 翻新机在外壳、固定螺母上也会有一些磨损的痕迹,另外,翻新机的电池一般都是组装的,一是因为JS舍不得配原装电池,二是原装电池的触点已经磨损,很容易就能查看,另外翻新机的外壳也很可能不是原装。不过翻新机的情况并不严重,因此就不再赘述了。
上面只是介绍了一些相对普遍的分辨方法,而具体品牌和型号的分辨方法又各有不同,如果感兴趣的朋友可以去IT168相应的手机论坛寻找。
说了半天也只是分辨方法。也许有人说,知道怎么分辨不就可以去买了吗?那你就可能被坑了,分辨水货只是基本,就象数学中的乘法口诀一样,学会了才能解题目,方法都是死的,但是购买可是活的,学问也都在这里面。