在非root用户的Android设备上,是否可以查看正在哪个端口上监听的应用程序列表?甚至是一种查看应用程序是否正在特定端口上监听的方法?

评论

可以从另一台计算机上跳一下吗?

@roxan的问题是我需要专门了解哪个应用程序正在使用端口。我编写了5个应用程序,它们都在同一个端口上侦听,并且某个地方以某种方式无法关闭它,我需要知道哪个(一个或多个)。

#1 楼

我可以使用标准Linux知识查看哪个应用程序具有开放端口。

安装terminal emulator或执行adb shell并执行以下命令:

shell@android:/ $ cat /proc/net/tcp                                          
 sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode  
  0: 0100007F:1C23 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1001        0 2111 1 e22cc000 300 0 0 2 -1  


上面的重要内容是:



0100007F:1C23监听IP地址:端口以十六进制表示,此处127.0.0.1:7203

00000000:0000远程地址为空(侦听)

应用程序的1001 uid

您可以通过
将uid列表映射到应用程序
如何查找应用程序名称通过UID?

评论


但是,它没有列出所有应用程序。我在wifi上扫描我的设备-它有2个开放的端口,但是在该文件中没有对应于该端口的行。

–阿列克谢·切尔尼科夫(Alexey Chernikov)
2014年4月9日在12:58

#2 楼

安装操作系统监视器。它将列出所有打开的端口。

#3 楼

如果您使用的是移动数据连接,则不必担心,因为您不应该打开端口(至少我不是)。

如果您连接到wi-fi,您可以打开端口。然后,您只需要一台连接到同一网络的计算机并在其上安装nmap并进行端口扫描,但是首先您必须找出手机的本地ip(而不是通过进入whatsmyip.com)。您应该可以从设置中找到您的IP。

要在Linux上运行端口扫描,您只需键入:nmap(您的电话ip)。