如何查看我的应用正在使用的端口?已尝试adb shell netstat -n但存疑
定位Android应用使用的端口
adb shell netstat -n确实能显示系统所有网络连接,但直接输出太杂,没法直接关联到你的应用——它只显示进程ID(PID),不显示应用包名。你可以按以下步骤精准定位:
第一步:获取应用的PID
- 如果你知道应用包名,直接执行:
输出结果里的数字列(通常是第二列)就是该应用的PID。adb shell ps | grep 你的应用包名 - 不知道包名的话,先打开目标应用,再执行:
输出里的adb shell dumpsys window | grep mCurrentFocuscom.xxx.xxx就是当前前台应用的包名,再用上面的命令查PID。
- 如果你知道应用包名,直接执行:
第二步:过滤出应用的网络连接
拿到PID后,用它过滤netstat结果:adb shell netstat -n | grep 你的PID查看输出里的
Local Address列,:xxxx部分就是应用正在使用的端口。更高效的替代方案:使用ss命令
ss是netstat的升级版,能直接关联进程和端口,执行:adb shell ss -tulpn | grep 你的PID参数说明:
-t:显示TCP连接-u:显示UDP连接-l:仅显示监听状态的端口(如果你的应用是服务端,比如内置HTTP服务,这部分就是它的监听端口)-p:显示进程信息-n:用数字格式显示地址和端口
注意:如果你的应用是作为客户端发起连接(比如调用API),它使用的是系统分配的临时端口;如果是服务端角色,会有处于LISTEN状态的固定监听端口。
内容的提问来源于stack exchange,提问作者Mr. Thanks a lot
相关产品推荐
相关产品推荐

