手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用
2017-01-13 23:57
549 查看
开发手机APP和 H5 应用经常需要在本地和线上环境分开测试,一般想到的操作都是修改hosts,我也一直这么干的,但手机上修改hosts是需要 ROOT权限的,这样太过麻烦,还有变砖头的风险,而且有些手机根本不能ROOT的。
忙和了一下午,总算完全达到预期,有点收获,下面说说重点,主要是两个:
本地 DNS 服务
网络代理
做个本地的 DNS 服务,有点像DNS劫持的感觉,这个是一劳永逸的办法
首先,你需要一个Linux 虚拟机或一台服务器
我下面的配置使用的 Centos7.0 系统,不通版本可能有些差别的。
一、安装 DNSMasq
这样服务端的 DNS 劫持就基本配置好了
下一步还需要在手机上设置 DNS 对应的 IP,
如下图:
最后注意:修改 hosts 之后,需要重启 dnsmasq 还有 network 最好也重启
二、使用本地网络代理
这个方法比较有局限性,对 H5 网页应用还可以,对部分原生 APP 可能无效哦,但有个好处是配合一些软件可以做前端的抓包查看,对测试接口之类的查看数据很有用
我用到过两个软件,
1. Fiddler
这个软件使用很方便,网上有很多介绍,这里就不说了,但据说仅支持 windows 平台
2. Whistle
这个是开源的项目,跨平台,我目前用的是这个,配置也很简单
下面简单说下如何安装使用
依赖 Nodejs,所以先安装 nodejs
我这里图方便,就用 yum 的方式安装了
下载速度可能有些忙,10KB/s 下载了好半天才下完,耐心等吧
这样就完成了。。。
查看代理请求数据,就是抓包数据
http://127.0.0.1:8900
http://127.0.0.1:8899
:8899 是代理的端口,但也可以查看抓包数据
两个端口都可以看,下图看看效果先(图片可以直接拖拽查看大图)
其他的就直接看官方说明文档吧,中文的,很清晰明了
https://avwo.github.io/whistle/install.html
后面就是手机上操作和上面的 DNS 设置是同一个地方
如下图:
最后就是修改服务器上的 hosts,参考上方 DNS 配置 hosts 的操作是一样的
差不多就这样设置好了。
最后需要注意的就是清除手机上的缓存,一定要关闭浏览器和应用,清理内存后再打开,否则手机上的 DNS 和网络设置可能没有切换过来的。
以上配置我都是在 android 设备上测试的, ios 没有应用可测试,不过按理说应该是一样的效果的。
虽然代理的方法对有些APP 不一定有用,但建议还是 DNS 和 代理一起上吧。。。就这样了。
忙和了一下午,总算完全达到预期,有点收获,下面说说重点,主要是两个:
本地 DNS 服务
网络代理
做个本地的 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方式 -> 修改第一个NS的IP即可,第二个可用正常的公网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 是代理的端口,但也可以查看抓包数据
两个端口都可以看,下图看看效果先(图片可以直接拖拽查看大图)
其他的就直接看官方说明文档吧,中文的,很清晰明了
https://avwo.github.io/whistle/install.html
后面就是手机上操作和上面的 DNS 设置是同一个地方
打开 网络设置 -> wifi连接 -> 修改网络 -> 高级 -> 代理(手动配置) -> 填写局域网中服务器的IP,如192.168.0.103,端口 8899
如下图:
最后就是修改服务器上的 hosts,参考上方 DNS 配置 hosts 的操作是一样的
差不多就这样设置好了。
最后需要注意的就是清除手机上的缓存,一定要关闭浏览器和应用,清理内存后再打开,否则手机上的 DNS 和网络设置可能没有切换过来的。
以上配置我都是在 android 设备上测试的, ios 没有应用可测试,不过按理说应该是一样的效果的。
虽然代理的方法对有些APP 不一定有用,但建议还是 DNS 和 代理一起上吧。。。就这样了。
相关文章推荐
- 用苹果手机扫描自动打开Appstore页面下载APP,用安卓手机扫码自动打开应用页面下载APP
- 将H5页面的应用打包成APP(苹果和安卓版本)
- WIFI视频传输模块 AV转WiFi 安卓/苹果手机应用APP
- Web调用安卓,苹果手机摄像头,本地图片和文件
- 智能手机(苹果,安卓)判断wlan是否可用的测试域名
- 安卓手机root、修改文件权限、更改按键映射
- HTML5打开本地app应用的方法,如果你的手机上安装App,就会自动打app,否则在页面上会提示你进行下载app
- 掌上城市本地生活消费综合o2o系统,微信o2oAPP开发,o2o安卓苹果客户端开发
- Andriod通过手机浏览器打开本地app应用
- 苹果iOS 5限制应用本地存储问题 与 APP ios5 本地存储原因被据
- 安卓苹果手机修改MAC地址教程
- mac地址随机变化的解决方法(安卓手机通用)不用ROOT
- 苹果app上架因IPv6不支持而拒绝,本地IPV6测试方法
- Web调用安卓,苹果手机摄像头,本地图片和文件
- Web调用安卓,苹果手机摄像头,本地图片和文件
- 辅助工具:支付宝“咻一咻” 无脑极速教程---2016.2.4 【只支持安卓Root手机(苹果:反正你玩的是寂寞)】
- 如何修改安卓手机的APK应用名称
- 安卓手机修改hosts攻略-摘自网络
- jmeter在手机app性能测试中的应用
- 苹果手机app应用显示未受信任打不开怎么办