教程发布于: 更新于: 阅读约 4 分钟

adb 无线连接教程:通过 Wi-Fi 连接安卓手机,不用数据线

用 adb tcpip 5555 和 adb connect 实现 adb 无线连接,查找手机 IP 地址,注意网络安全,以及如何借助 ADBKit 代理程序在浏览器里通过 Wi-Fi 使用 ADB。

要通过 Wi-Fi 使用 ADB,先用 USB 连接一次手机,运行 adb tcpip 5555,拔掉数据线,再运行 adb connect <手机IP>:5555。电脑和手机必须在同一个网络中。Android 11 及以上还内置了「无线调试」(Wireless debugging) 模式,用配对码配对,完全不需要数据线。

开始之前

  • 手机上必须已打开 USB 调试。还没打开的话,请看 如何打开 USB 调试。
  • 电脑和手机必须在同一个局域网中。访客网络和部分公共 Wi-Fi 会阻止设备之间的通信。
  • 使用命令行方法时,电脑上需要有 Android platform-tools(adb)。

方法一:经典方法(adb tcpip)

只要有 USB 调试,任何 Android 版本都可以使用。

  1. 用 USB 线连接手机,确认已授权:
adb devices
  1. 把设备上的 ADB 守护进程切换到 5555 端口的 TCP/IP 模式:
adb tcpip 5555

应该会看到 restarting in TCP mode port: 5555。

  1. 查找手机的 IP 地址(见下一节)。
  2. 拔掉数据线,通过网络连接:
adb connect 192.168.1.42:5555

把地址换成你手机的地址。连接成功会输出 connected to 192.168.1.42:5555。

  1. 检查一下:
adb devices

设备现在显示为 192.168.1.42:5555。所有常用命令都能像插着线时一样使用。

要断开连接,运行 adb disconnect 192.168.1.42:5555。TCP 模式不是永久的,手机重启后就会恢复。

查找手机的 IP 地址

  • 原生 Android:设置 › 关于手机 › 状态信息(或 状态),找到 IP 地址。也可以在 设置 › 网络和互联网 › 互联网 中打开当前连接的 Wi-Fi 网络详情查看。
  • 手机通过 USB 连接时,也可以在电脑上运行:
adb shell ip route

wlan0 那一行中 src 后面的地址就是手机的 IP。

各厂商的菜单名称不同,但 IP 地址总能在 Wi-Fi 网络详情或手机的状态页面中找到。

方法二:无线调试(Android 11 及以上)

Android 11 新增了基于配对的模式,不需要数据线。

  1. 打开 设置 › 系统 › 开发者选项,开启 无线调试 (Wireless debugging),手机必须连着 Wi-Fi。
  2. 点击 无线调试,再点击 使用配对码配对设备 (Pair device with pairing code)。手机会显示 IP 地址、端口和 6 位配对码。
  3. 在电脑上使用这个配对端口进行配对:
adb pair 192.168.1.42:37123

按提示输入 6 位配对码。

  1. 回到无线调试主页面,记下那里显示的 IP 地址和端口(和配对端口不是同一个),然后连接:
adb connect 192.168.1.42:41567

端口会变化,所以每次切换这个开关后都可能需要重新查看。

安全:长时间开启前请先读这里

警告: 开放的 ADB over TCP 端口可以被同一网络中的任何人访问,能访问到它的攻击者就可以尝试与你的手机通信。只在家里或办公室等可信网络中使用,绝不要在公共 Wi-Fi 上使用。

电脑第一次连接时,Android 仍然会要求进行 RSA 密钥授权,这是一道保护,但不能只依赖它。用完之后运行:

adb usb

这会把设备切换回 USB 模式。重启手机也会重置经典的 TCP 模式,无线调试则可以在开发者选项中关闭。

在 ADBKit 中通过 Wi-Fi 使用 ADB

浏览器无法建立原始 TCP 连接,所以它自己访问不了 5555 端口。ADBKit 用 ADBKit 代理程序 (ADBKit agent) 解决这个问题,这是一个运行在你电脑上的小程序,负责转发流量。完整的安装、选项和故障排查见 ADBKit 代理程序参考。

  1. 用一行安装命令启动代理程序(macOS 和 Linux 上为 curl -fsSL https://adbkit.com/install.sh | sh,Windows PowerShell 上为 irm https://adbkit.com/install.ps1 | iex)。如果已经装了 Node.js,也可以下载 adbkit-bridge.mjs 并运行 node adbkit-bridge.mjs。
  1. 在 ADBKit 工作台 中通过 USB 连接手机,打开 Wi-Fi 对话框。
  2. 点击 Turn on Wi-Fi debugging。ADBKit 会替你运行 adb tcpip 5555,并显示手机的地址。
  3. 输入 IP 地址(端口 5555)进行连接,或者用 Scan network 查找设备。

代理程序只监听 127.0.0.1,只响应 ADBKit 页面,并且只连接私有网络地址,所以它不是一个通用的开放代理。

说明: ADBKit 支持两种方法。经典的 adb tcpip 5555 方法适用于两个版本的代理程序。Android 11+ 的无线调试配对码流程(adb pair)需要通过安装脚本部署的 Go 版代理程序,Node 版不支持配对。具体步骤请看 在浏览器中通过无线调试连接 Android,选择哪种方法请看 adb tcpip 与无线调试的区别。

故障排查

  • failed to connect 或超时。 确认两台设备在同一个网络中,并且 IP 地址是最新的,因为路由器可能会改变它。有些网络会把客户端相互隔离。
  • 连接后显示 unauthorized。 解锁手机并接受调试授权弹窗。如果仍然失败,在开发者选项中撤销授权后重试。
  • 连接中断。 Wi-Fi 休眠设置和信号弱都会打断会话。用 adb connect 重新连接。
  • 设备被占用。 同一时间只能有一个程序使用连接。见 ADB 设备被占用或未授权的解决方法。

想了解为什么浏览器走 USB 可以直连,走 TCP 却需要辅助程序,请看 WebADB 是什么。