Firefox Android远程调试端口转发失败问题求助
问题场景
我可以通过Firefox Android设备连接并交互桌面版Firefox的页面,但无法将localhost:3000这类端口转发至Firefox Android设备。在about:debugging页面点击连接localhost:3000按钮时,先出现Connection still pending, check for messages on the target browser提示,随后显示Connection timed out错误。
尝试执行以下adb命令后问题依旧:
sudo adb forward tcp:6000 tcp:6000
且Chrome可正常将localhost:3000端口转发至Android设备。
环境信息
- 系统:MacOS Monterey v12.6
- 桌面版Firefox Nightly:107.0a1 (2022-09-28) (64-bit)
- Android版Firefox Nightly:107.0a1
- Firefox Android设置:已启用“Remote debugging via USB”
- Firefox Android的
about:config配置:
devtools.debugger.remote-enabled: true devtools.debugger.remote-port: 6000 devtools.debugger.force-local: true
- adb版本:
Android Debug Bridge version 1.0.41 Version 33.0.3-8952118 Installed as /opt/homebrew/bin/adb
排查与解决步骤
修改
force-local配置
将Firefox Android的about:config中devtools.debugger.force-local设置为false。该选项强制调试器仅接受本地连接,ADB转发后桌面端的连接对安卓设备属于远程连接,开启此选项会阻断连接。转发所需端口
执行以下两条adb命令,同时转发调试端口和本地服务端口:
adb forward tcp:6000 tcp:6000 adb forward tcp:3000 tcp:3000
避免使用sudo,普通用户权限通常即可执行adb命令,sudo可能引发环境变量或权限异常。
重启两端Firefox
修改配置后,完全关闭并重新打开桌面端和Android端的Firefox Nightly,确保配置生效。确认设备连接状态
执行adb devices检查设备连接状态,输出中设备状态需为device。若显示unauthorized,需在安卓设备上授权当前电脑的调试请求。尝试反向转发(备选方案)
若forward方式无效,使用反向转发让安卓设备直接访问桌面localhost服务:
adb reverse tcp:3000 tcp:3000
之后在Firefox Android中直接访问localhost:3000即可。
内容的提问来源于stack exchange,提问作者Caleb Taylor

