Ubuntu环境下React Native连接远程调试器超时问题求助
解决Linux环境下React Native真机远程调试超时问题
我帮你整理几个针对这个问题的排查和解决办法,不少开发者遇到过类似情况,这些方案应该能帮到你:
1. 先搞定设备和电脑的网络连通性
- 首先确保你的Android真机和Linux电脑连的是同一个局域网(比如同一WiFi)
- 打开Linux终端,ping一下设备的IP地址,确认能正常连通:
ping 你的设备IP地址 - 如果ping不通,试试USB反向代理,这条命令能把设备的8081端口转发到电脑上,大概率能解决网络不通的问题:
adb reverse tcp:8081 tcp:8081
2. 确认Chrome调试端口和RN服务匹配
- 打开Chrome,在地址栏输入
chrome://inspect,看看能不能识别到你的RN应用 - 如果没识别到,点击页面里的「Configure」按钮,手动添加调试地址:
你的Linux电脑IP:8081,然后刷新页面 - 同时别忘确认终端里的RN打包服务(
react-native run-android)是正常运行的,要看到「Loading dependency graph, done.」的提示才行
3. 调整Chrome的超时参数(针对旧版Chrome)
- 旧版本Chrome默认超时时间比较短,咱们可以通过启动参数延长:
- 先关掉所有Chrome窗口
- 在Linux终端执行这条命令启动Chrome:
google-chrome --remote-debugging-port=9222 --disable-web-security --user-data-dir=/tmp/chrome_dev_test --timeout=60000 - 再尝试打开RN的远程调试
4. 检查Linux防火墙设置
- Linux防火墙可能会拦截8081端口的通信,咱们可以临时关闭防火墙测试:
- 如果用ufw防火墙:
sudo ufw disable - 如果用iptables:
sudo iptables -F && sudo iptables -X && sudo iptables -P INPUT ACCEPT && sudo iptables -P OUTPUT ACCEPT
- 如果用ufw防火墙:
- 如果关闭防火墙后能正常调试,记得之后给8081端口加允许规则,避免后续再出问题:
sudo ufw allow 8081
5. 最后考虑调整依赖版本
- 你的Node版本是6.11.1,虽然RN 0.51.0理论上兼容,但旧Node版本偶尔会有网络相关的小bug,可以尝试升级到Node 8.x版本(RN 0.51推荐的Node版本范围)
- 另外Watchman 4.5.0也可以考虑更新到兼容的最新版本,如果是用brew安装的话:
brew update && brew upgrade watchman
内容的提问来源于stack exchange,提问作者Shubham
相关产品推荐
相关产品推荐

