設備 HTTP 代理¶
FIRERPA 在手機上提供 HTTP 代理(服務配置裡的橋接代理,即 tunnel2.*)。當您將電腦或瀏覽器中的代理伺服器指向手機後,電腦訪問網站時會先經過手機,再從手機的網路出去,對外顯示的 IP 會與手機相同。它與 設定代理 是相反方向的兩件事,對比如下:
常見用途包括讓電腦與手機共用同一出口 IP 進行聯調排查、在抓包時將 mitmproxy 的上游指向手機以便流量仍從設備發出,或利用多台設備的網路作為 IP 來源。
使用代理¶
該功能預設為開啟,代理與遠端桌面共用服務埠,預設埠號為 65000;請在手機的 WLAN 設定中查看當前 IP(下文範例為 192.168.0.2),若曾修改過 port 請注意替換範例中的埠號。電腦必須能訪問手機的 FIRERPA 服務埠,通常要求與手機處於同一個區域網路,或已將服務埠轉發至公網。
在電腦上可用以下命令快速驗證(請將 IP 改為您的設備位址):
curl -x http://192.168.0.2:65000 https://httpbin.org/ip
若返回的 IP 與手機對外 IP 一致,即表示正常運作。在 Firefox 中,可將 HTTP 代理設為 192.168.0.2、埠號 65000,並勾選「也將此代理用於 HTTPS」。Python 範例:
requests.get("https://httpbin.org/ip", proxies={"http": "http://192.168.0.2:65000", "https": "http://192.168.0.2:65000"})
未啟用服務憑證時,代理預設無需認證。若啟動時使用了服務憑證,則需要使用使用者名稱 lamda,密碼為服務憑證 PEM 檔案第一行的 PASSWD(與 HTTPS 遠端桌面登入密碼相同,但不是 WebUI 自訂密碼);也可在 服務配置 中設定 tunnel2.password 單獨指定代理密碼。此時 curl 範例為:
curl --proxy-insecure -x https://lamda:憑證密碼@192.168.0.2:65000 https://httpbin.org/ip
Python 範例為:
requests.get("https://httpbin.org/ip", verify=False, proxies={"http": "https://lamda:憑證密碼@192.168.0.2:65000", "https": "https://lamda:憑證密碼@192.168.0.2:65000"})
配置代理¶
可在 服務配置 中調整橋接代理。例如設定 tunnel2.login 與 tunnel2.password 自訂登入憑據:
tunnel2.login=lamda
tunnel2.password=您的新密碼
tunnel2.iface 用於指定出口網卡:wlan 表示走 Wi-Fi,rmnet 表示走行動數據(4G/5G,即使 Wi-Fi 已連線也優先使用流量)。未配置時使用系統預設網路;若所選網卡當前無網路,代理將無法使用。
tunnel2.iface=rmnet