ADB服务端调试

ADB 可以通过"服务端/远程主机"方式进行调试,要看具体想实现哪种远程方式与考虑的安全性。

常见做法与命令

1) 把设备插在远程机器上,客户端控制该远程机器上的 ADB server(推荐:用 SSH 隧道)

思路:在远程主机上运行 adb server,客户端通过 SSH 隧道或把 adb client 指向远程 adb server 来控制远程设备。

在远程主机(有设备通过 USB 连接)执行:

复制代码
adb kill-server
# -a 表示监听所有接口,nodaemon 表示以前台启动(保持运行)
adb -a nodaemon server start

在本地客户端:

  • 通过 SSH 隧道(更安全):

    ssh -L 5037:localhost:5037 user@server_ip

    隧道建立后(本地 5037 转发到远程 5037),在本地运行:

    export ADB_SERVER_SOCKET=tcp:127.0.0.1:5037
    adb devices

  • 或直接指向远程 adb server(不安全,需保证网络受限):

    export ADB_SERVER_SOCKET=tcp:server_ip:5037
    adb devices

结果:adb 命令会在远程主机上执行,并列出远程主机连接的设备。

2) 直接让设备开启 TCP/IP(无线调试),从任意机器 adb connect

适合 :设备和调试机在同一局域网或设备可被直连的情况。
步骤(一次性或需要 USB):

复制代码
adb usb                 # 确保通过 USB 连接
adb tcpip 5555          # 设备切换到 TCP 模式(端口 5555)
# 在设备上查 IP,例如 192.168.1.100
adb connect 192.168.1.100:5555
adb devices

注意:在某些 Android 版本/设备上,你需要在开发者选项里启用"无线调试 / Wireless debugging"(Android 11+ 有 pairing 流程,更安全)。

3) 使用 Android Studio / Remote ADB 插件 或 云设备(Firebase Test Lab 等)

  • Android Studio 有远程调试/ADB over network 插件和"Wireless debugging"配合使用。

  • 如果不想自己搭设备,可以使用云真机平台(付费),直接在云端运行并调试。

安全与实用性建议

  • 不要把 5037 端口直接暴露到公网 (ADB 无认证,风险极高)。优先使用 SSH 隧道、VPN 或内网环境。

  • 如果需要跨公网:用 SSH 隧道或反向隧道(ssh -R/ngrok)来避免直接暴露端口。

  • 对现代 Android(Android 11+):优先使用系统的 Wireless debugging pairing 功能(带配对码,更安全)。

  • 若团队多人共享设备,建议把设备接到一台受控的"设备机房/服务器",大家通过 SSH 或内网访问这台机器的 adb server(并做好权限管理)。

小结

  • 安全 、可靠地远程控制插在一台主机上的设备:在那台主机上启动 adb server + 用 SSH 隧道ssh -L)从本地连接,并设置 ADB_SERVER_SOCKET 指向本地 127.0.0.1:5037。

  • 快速 在同一 Wi-Fi 下调试某台手机:用 adb tcpip 5555 / adb connect IP:5555 或系统的 Wireless debugging(Android 11+)。

  • 绝对避免直接把 adb server 暴露到公网端口(除非在严格受控的内网环境)。

相关推荐
熬夜的咕噜猫1 天前
MySQL 核心数据库操作
adb
Yang-Never1 天前
ADB ->adb shell perfetto 抓取 trace 指令
android·开发语言·adb·android studio
轩情吖1 天前
MySQL之事务管理
android·后端·mysql·adb·事务·隔离性·原子性
赶路人儿2 天前
常见的mcp配置
android·adb
ego.iblacat2 天前
MySQL 数据库操作
数据库·mysql·adb
路溪非溪2 天前
adb的安装和基本使用总结
adb
XDHCOM2 天前
MySQL报错LDAP认证初始化连接池失败,远程修复思路和故障排查分享
数据库·mysql·adb
闻哥2 天前
深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制
android·java·jvm·spring boot·mysql·adb·面试
炸炸鱼.2 天前
MySQL 数据库核心操作手册
数据库·adb·oracle
总要冲动一次2 天前
MySQL 5.7 全量 + 增量备份方案(本地执行 + 远程存储)
数据库·mysql·adb