如何使用 ADB shell 查找进程正在使用的端口?

Posted

技术标签:

【中文标题】如何使用 ADB shell 查找进程正在使用的端口?【英文标题】:How to use ADB shell to find the ports which a process is using? 【发布时间】:2012-12-23 04:21:09 【问题描述】:

例如,在 android 中,进程 1234 的 PID 使用端口 2222,2223,2224。现在我有一个 PID 1234。我想知道如何找出进程正在使用的端口号 2222、2223、2224?

我曾尝试像在 Linux 中那样使用 netstat -anp,但没有奏效。 ADB shell 中的 netstat -anp 与 netstat 的效果相同,没有任何命令参数。

【问题讨论】:

查看这篇文章:***.com/a/70120258/445908 【参考方案1】:

您可以使用busybox netstat -ptcat /proc/1234/net/tcp

【讨论】:

假设安装了busybox。 @Alex cat /proc/1234/net/tcp 列出系统上的所有 tcp 套接字,而不仅仅是进程 1234 打开的套接字。【参考方案2】:

尝试检查我的 github 存储库,https://github.com/LipiLee/netstat。

我在 Android 源代码中更新了工具箱的 netstat(https://android.googlesource.com/platform/system/core/+/master/toolbox/netstat.c)。

更新:在 Android M 版本中,工具箱的 netstat 已替换为 toybox 的 netstat。所以工具箱中的 netstat 在 Android 源码树中被移除了。

【讨论】:

以上是关于如何使用 ADB shell 查找进程正在使用的端口?的主要内容,如果未能解决你的问题,请参考以下文章

【Adb】使用时报错unknown host devices

如何在 unix 中查找特定进程 ID 的端口号? [关闭]

adb shell 命令总结

adb shell 端口占用

adb shell 杀进程 杀包名

Android 中常用的 adb shell 命令