• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用,安卓h5

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

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用,安卓h5等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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


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

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

 

做个本地的 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 和 代理一起上吧。。。就这样了。

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-26Android java层音频相关的分析与理解(三)调用相关
  • 2017-05-26Android属性动画
  • 2017-05-26androd 获得wifi列表,androdwifi列表
  • 2017-05-26Android热补丁动态修复技术(三)—— 使用Javassist注入字节码,完成热补丁框架雏形(可使用)
  • 2017-05-26模仿轻仿蘑菇街应用源码,仿蘑菇街源码
  • 2017-05-228.3.3 Paint API之—— MaskFilter(面具)
  • 2017-05-26贡献个Android 截屏并自动传到电脑上的shell脚本
  • 2017-05-26手机安全卫士——主界面的开发,安全卫士主界面
  • 2017-05-26购物车动画(Android),购物车动画android
  • 2017-05-26Android 代码动态改变View的属性

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Eclipse迁移到Android studio步骤如下:,eclipseandroid
    • ORA-16038/ORA-00742: Log read detects lost write in thread
    • Android--BroadcastReceiver应用详解
    • App字体大小不随系统改变而改变,
    • 可伸缩的textview,伸缩textview
    • 自定义一个全屏的AlertDialog。,全屏alertdialog
    • 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新,androidtinker
    • Android开发学习—— 创建项目时,不是继承activity,而是继承ActionBarActivity,androidactivity继承
    • Android Studio Lambda Config,androidlambda
    • Android 数据库SQLite 写入SD卡,androidsqlite

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有