Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 手機無須ROOT不用修改hosts即可在本地測試安卓、蘋果APP和H5應用,安卓h5

手機無須ROOT不用修改hosts即可在本地測試安卓、蘋果APP和H5應用,安卓h5

編輯:關於android開發

手機無須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 和 代理一起上吧。。。就這樣了。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved