手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用
开发手机APP和 H5 应用经常需要在本地和线上环境分开测试,一般想到的操作都是修改hosts,我也一直这么干的,但手机上修改hosts是需要 ROOT权限的,这样太过麻烦,还有变砖头的风险,而且有些手机根本不能ROOT的。
忙和了一下午,总算完全达到预期,有点收获,下面说说重点,主要是两个:
- 本地 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.103strict-orderaddn-hosts=/etc/hostscache-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 53yum install bind-utils# 测试是否启用 DNS 配置dig m.ai9475.com# 编辑 hosts 文件,配置本地 DNS 劫持域名 IP 的映射关系vi /etc/hosts192.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 和 代理一起上吧。。。就这样了。
手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用相关推荐
- PHP安卓苹果APP在线封装打包制作源码 H5手机网站转APP 免签封装绿标
简介: PHP安卓苹果APP在线封装打包制作源码 H5手机网站转APP 免签封装绿标 更新记录: 1.解决ios无法下载的问题 2.优化打包流程 修复原先各种问题 3.可自行上传安卓证书 4.可自行上 ...
- 不root如何修改host+android5.1,王者荣耀安卓手机免ROOT不用电脑修改战区2020最新版教程...
大家好,这里是小北杂货店,我是小北.更多好玩技巧请前往[小北杂货店]微信公众号领取. 今天小北教大家如何免ROOT不用电脑修改王者荣耀战区,不过这里教的是安卓手机版的,苹果IOS版的修改战区教程请点击 ...
- 修改hosts文件在本地调试微信JS-SDK
1.修改hosts文件 路径:c:\windows\system32\drivers\etc 2.打开测试公众号填写第一步修改的域名地址 JS接口安全域名 3.工程文件,vue.config.js d ...
- 苹果手机10秒解除锁屏_Redmi 10X手机密码忘了怎么办?手机10秒解除锁屏,三步解开安卓苹果密码【详细步骤】...
智能手机在使用过程中,经常会遇到忘记密码的情况.而自己的粗心大意,导致手机无法开机,是非常烦的一件事情.今天的主角是安卓手机,针对密码忘了怎么办的问题,教大家刷机的方法,帮大家来详细解决密码忘记无法开 ...
- (已更新)Discuz手机模板:NVBING5-APP手机版,界面美观大方,可封装安卓/苹果APP,模板文件+插件+分类信息导入文件
Discuz手机模板:NVBING5-APP手机版--是一款界面美观大方的完整Discuz手机模板,附带模板+插件+分类信息导入文件+详细的安装说明+模块说明. 功能介绍 *支持封装安卓APP.苹果A ...
- linux hosts文件如何修改_如何修改hosts文件?让你简单方便快捷管理
如何修改hosts文件?几种修改方法让你简单方便快捷,hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库&q ...
- 如何添加修改hosts文件?几种修改方法让你简单方便管理
如何修改hosts文件?几种修改方法让你简单方便快捷,hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库&q ...
- 命令行修改文件文件夹访问权限 cacls, 修改hosts内容方法
背景 日常使用Windows的过程中,hosts(C:\Windows\System32\drivers\etc)文件可能被一些程序串改,因此在网上找到禁止/允许修改hosts文件的bat脚本,但是在 ...
- Android手机修改hosts文件
有的时候,我们需要在内网环境测试软件,内网将域名解析的时候比较麻烦,Android手机直接修改hosts文件可以带来方便. hosts文件的作用实际上就是将域名解析为ip地址,比如你的hosts文件里 ...
最新文章
- 2022王道操作系统名词解释概念题
- pandas对dataframe进行排序:单数据列排序、多数据列排序、NA值排序位置、排序算法
- boost::type_erasure::param相关的测试程序
- python做excel数据分析统计服_Python也能做到Excel那样,条件统计轻松解决工作需求...
- 记录一些我关注的人的博客
- Linux高频命令汇总,高频Linux命令
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
- 【前端小技能】ElementUI表格双击可编辑--开箱即用
- 兼职开发怎样才能变成技术合伙人?
- 软件需求包括3个不同的层次――业务需求、用户需求和功能需求
- 移动跨平台ReactNative动画组件Animated【14】
- 微信小程序 - excel通过云函数导入云数据库
- 在kile中使用Astyle插件使代码自动对齐
- 小程序中打开pdf文件(wx.downloadFile+wx.openDocument)
- Java基础学习—— IO流
- 深度学习笔记整理(五)——提高泛化能力的方法
- npm国外镜像,国内镜像互相切换
- Nuendo 5 v5.1.1 WiN 英文精简版音乐制作软件下载
- 解决重复提交问题(前端和后端的解决方案java版)
- 【链表】C++链表反转、链表逆序打印