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 暴露到公网端口(除非在严格受控的内网环境)。

相关推荐
驱动探索者12 小时前
USB ADB 简介
linux·adb·驱动·usb
Monkey-旭2 天前
Android ADB 常用指令全解析
android·adb
^_^ 纵歌3 天前
如何把ubuntu 22.04下安装的mysql 8 的 数据目录迁移到另一个磁盘目录
mysql·ubuntu·adb
MUTA️4 天前
服务器使用ADB调试手机
服务器·adb·智能手机
2501_920047035 天前
MySQL-锁
数据库·mysql·adb
啊森要自信6 天前
【QT】常⽤控件详解(七)容器类控件 GroupBox && TabWidget && 布局管理器 && Spacer
linux·开发语言·c++·qt·adb
June bug7 天前
ADB打印设备日志相关
adb
就叫飞六吧9 天前
mysql全屏终端全量、部分备份、恢复脚本
android·mysql·adb
余辉zmh10 天前
【MySQL基础篇】:MySQL常用内置函数以及实用示例
android·mysql·adb