如何給安卓模擬器使用宿主機代理
此文章僅為對一次問題解決經歷的記錄,旨在以后遇到相同問題時能快速找到解決方案,并非權威教程。
一、起因
在使用安卓模擬器時(筆者使用的是藍疊模擬器),由于游戲的原因,需要給模擬器掛上代理。我的PC上已經有開放的代理端口,再在模擬器中安裝第三方代理軟件會很麻煩而且很不優(yōu)雅。既然有現成的端口,那就好好利用起來吧。
二、歷程
在安卓的真機上是能直接再連接的wifi設置中配置http代理的,于是我也嘗試在模擬器的設置中找到網絡設置
然而無奈遇到了第一個問題

問題一:藍疊模擬器屏蔽了網絡設置功能,設置中找不到網絡相關的選項
出現問題后,我首先是在模擬器的設定尋找了一遍

但也未找到網絡相關選項。但是突然發(fā)現的adb選項啟發(fā)了我:是否可以通過adb來設置模擬器的網絡代理?
在網上查了一會后發(fā)現可行,動手開干。
下載adb:
解壓后放入喜歡的路徑,然后將adb的路徑加入用戶環(huán)境變量,這樣就能直接在cmd或者powershell中使用adb了
嘗試連接結果出現了第二個問題

問題二:adb shell顯示有多個設備
根據報錯,大概就是adb檢測到有多個安卓設備,不知道要連接哪一個,所以先使用
查看到底有幾個設備

顯示有兩個設備一個為5554一個為5555。模擬器adb選項上提示我們要連接5555端口,那就加上-s選項來連接localhost:5555這個設備

連接成功
使用如下命令設置代理
由于PC上的代理端口是開在127.0.0.1:7890上,于是我想當然的把代理設置為
但是發(fā)現上不了網。
思考一番后明白了:對于安卓模擬器來說,127.0.0.1這個ip指向的是安卓模擬器本身,而非PC。安卓模擬器本質是虛擬機,虛擬機使用宿主機網絡是有幾種不同方式的。但是模擬器設置和信息中我并未找到相關信息。于是出現了第三個問題:我無法知道在模擬器視角下,PC的局域網IP地址
問題三:不知道代理的IP該設為多少
經過一段時間的資料查找后,我想到很多時候dns會設置為默認網關,這樣就順藤摸瓜能找到PC的IP地址。
使用
查看模擬器的dns設置

其中8.8.8.8為谷歌的dns服務器。
10.0.2.3為本地局域網IP

所以10.0.2.3就是我們要找的。
重新設置模擬器的proxy
回到模擬器,測試網絡

成功
三、后記
折騰完之后成功下載了游戲,但是突然不知怎的索然無味。
也許很多時候,折騰這件事本身就足夠有趣了。很多看似很復雜很麻煩的事情,拆解下來都是一個個簡單的小問題,解決完所有問題后帶來的成就感是無與倫比的。
P.S.
文中如有錯誤請在評論區(qū)指出,希望大家不吝賜教
我到最后也沒搞清楚為什么一個模擬器會有兩個device。這兩個device連接上后都是指向模擬器的......非常奇怪,希望有大佬解答一下