启用Cisco AnyConnect VPN后ADB服务器无法启动的解决咨询
问题场景
MacBook(Sonoma 14.6.1)通过Homebrew安装ADB版本35.0.2-12147458,正常状态下可正常运行;但启用公司Cisco AnyConnect VPN后,执行adb start-server报错,核心错误日志为:
F adb : udp_socket.cpp:447 Check failed: static_cast<size_t>(num_bytes_sent) == length (static_cast<size_t>(num_bytes_sent)=12, length=33)
临时解决方案为先启动ADB服务器再连接VPN,但需要更通用的解决办法。
可行解决方案
1. 强制ADB仅使用IPv4
VPN环境下IPv6的UDP流量可能被拦截,通过环境变量限制ADB仅用IPv4:
- 临时生效(当前终端会话):
export ADB_MDNS_IP_VERSION=4 adb kill-server && adb start-server - 永久生效(添加到shell配置):
编辑~/.zshrc或~/.bash_profile,加入:
执行export ADB_MDNS_IP_VERSION=4source ~/.zshrc(对应你的shell配置文件)使设置生效。
2. 指定ADB绑定到本地非VPN接口
先获取本地非VPN网络接口的IP(比如Wi-Fi接口en0):
ipconfig getifaddr en0
然后指定ADB绑定该IP启动:
adb kill-server && adb -a -P 5037 nodaemon server --adb-local-host <你的本地IP> &
可以将命令封装为shell别名,方便使用:
alias adb-start-local='adb kill-server && adb -a -P 5037 nodaemon server --adb-local-host $(ipconfig getifaddr en0) &'
3. 禁用ADB的mDNS自动发现
如果不需要无线ADB调试,关闭mDNS广播避免UDP流量冲突:
- 临时生效:
export ADB_MDNS_DISABLE=1 adb kill-server && adb start-server - 永久生效:
在shell配置文件中添加:export ADB_MDNS_DISABLE=1
4. 调整VPN路由规则(需IT支持)
联系公司IT团队修改Cisco AnyConnect的路由配置,仅将公司内网地址路由到VPN,排除本地子网及ADB相关端口(5037、5353),避免本地ADB流量被VPN拦截。
内容的提问来源于stack exchange,提问作者Anton Avtamonov
相关产品推荐
相关产品推荐

