设备 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