ADB cannot bind 'tcp:5037' ADB server didn't ACK

本文详细介绍了在系统中使用多个不同源的ADB时,遇到ADBserver端口占用问题的排查与解决方法,通过使用命令行工具netstat和adbnodaemonserver,找出占用5037端口的服务,并使用kill命令终止它们,从而恢复ADB服务的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们在系统中使用多个不同源的adb时,特别容易浮现标题所述的错误:

adb server is out of date.  killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error: 

上述错误出现的原因是说,我们的adb 所绑定的端口,被其他服务占用了,或者说有多个服务占用了5037端口,导致彼此无法正常工作.

想印证上述猜测,可通过如下命令:

w@xxx:~$ adb nodaemon server

cannot bind 'tcp:5037'

下面就是查看那些服务占用了5037端口,找到那些服务,使用kill命令杀死他们.

查看端口使用状态,可使用netstart命令:

查看已经连接的服务端口:

netstat -a
查看所有服务,使用:

netstat -ap

在使用时,可以配合grep命令,使用.例如,我们要查看5037端口对于的服务,故:

netstat -ap|grep "5037"
输入如下:

(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
tcp        0      0 localhost:5037          *:*                     LISTEN      25255/adb       
tcp        0      0 localhost:51695         localhost:5037          ESTABLISHED 23836/adb       
tcp        0      0 localhost:5037          localhost:51695         ESTABLISHED 25255/adb       
我们可以看到,有多个adb服务,占用了5037端口,导致其无法正常工作.故:使用kill命令杀死所有的adb进程,重新使用adb start-server进行重启adb.

w@xxx:~/Tools/adt-bundle-linux-x86_64-20140702/sdk/tools$ kill 23836
w@xxx:~/Tools/adt-bundle-linux-x86_64-20140702/sdk/tools$ kill 25255

上述为ubuntu系统下的处理方式,window类同.



关注我的技术公众号,查看更多优质技术文章推送

微信扫一扫下方二维码即可关注:

关注我的技术公众号,查看更多优质技术文章推送


### 解决方案 当遇到 `ADB server didn't ACK` 的错误提示时,这通常意味着 ADB 客户端无法成功连接到 ADB 服务进程。此问题可能由多种原因引起,包括权限不足、端口冲突或其他配置问题。 #### 权限设置调整 如果日志显示 `/tmp/adb.1000.log` 文件存在权限被拒绝的情况,则可能是由于当前用户缺少执行操作所需的适当权限[^3]。可以尝试通过命令行赋予必要的访问权限: ```bash sudo chmod a+w /tmp/ ``` 不过更推荐的做法是指定具体的文件夹或文件权限而非开放整个临时目录给所有用户写入的能力。 #### 终止并重启ADB服务 有时简单的终止现有实例再重新初始化可以帮助解决问题: ```bash adb kill-server adb start-server ``` 上述指令会先关闭任何正在运行的服务实例然后再创建一个新的监听于默认TCP端口5037上的守护程序[^4]。 #### 修改防火墙规则或网络参数 对于某些操作系统而言,默认情况下可能会阻止较低编号的端口号(小于1024),除非它们被列入特权列表内。可以通过修改系统级设定来允许这些特殊用途端口的工作状态正常化[^5]: ```bash sudo ndd -set /dev/tcp tcp_extra_priv_ports_add 5037 ``` 这条命令将把用于Android调试桥接器通信的标准端口加入到了受信任区间之中,从而绕过了潜在的安全限制。 #### 验证SSH密钥认证机制 另外,在少数场景下,该类报错也可能是因为本地计算机试图建立安全链接却未能找到匹配的身份验证凭据所造成的。此时应当确认`.android`隐藏文件夹下的公私钥对是否存在以及其格式是否正确无误。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hailushijie

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值