在linux相关设备上经常会需要判断“进程打开了哪些端口,某端口是哪个进程打开的”相关信息,下面来看下如何获取这些信息。

注:"进程打开了哪些端口"与“某个端口属于哪个进程/线程”信息收集过程相近,只看“某个端口属于哪个进程/线程”情况。通过我们会直接通过netstat -tunlp这个命令搞定,但是嵌入式设备上却不支持-p选项。

1.netstat查看端口

嵌入式设备上netstat命令不支持-p,无法定位到端口所属进程

# busybox netstat -atnp
netstat: invalid option -- 'p'
BusyBox v1.27.2 (2018-10-09 14:13:48 CST) multi-call binary.Usage: netstat [-ral] [-tuwx] [-en]Display networking information-r Routing table-a All sockets-l   Listening socketsElse: connected sockets-t  TCP sockets-u   UDP sockets-w   Raw sockets-x   Unix socketsElse: all socket types-e    Other/more information-n    Don't resolve names

在嵌入式设备上运行netstat命令,查询开启端口信息:

# busybox netstat -atne
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN
tcp        0      0 172.16.42.197:49494     0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 172.16.42.197:40615     180.149.144.101:443     ESTABLISHED
tcp        0    208 172.16.42.197:22        172.16.42.178:54688     ESTABLISHED
tcp        0      0 172.16.42.197:40770     101.201.176.18:443      ESTABLISHED
tcp       32      0 172.16.42.197:55982     119.75.222.168:443      CLOSE_WAIT
tcp       32      0 172.16.42.197:40950     123.125.115.234:443     CLOSE_WAIT
tcp        0      0 172.16.42.197:51078     220.181.164.157:443     ESTABLISHED
tcp       32      0 172.16.42.197:40954     123.125.115.234:443     CLOSE_WAIT
netstat: /proc/net/tcp6: No such file or directory

2.如何通过端口号定位到进程pid

  • 利用 /proc/net/tcp、/proc/net/tcp6、/proc/net/udp、/proc/net/udp6来通过端口号查找socket对应的inode节点:

比如我们要查找49494端口所属进程:49494转化成16进制就是:C156

# cat /proc/net/tcpsl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                                                     0: 0100007F:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 1104 1 ffffffc005db8000 100 0 0 10 0                      1: C52A10AC:C156 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 32878 1 ffffffc003da2d00 100 0 0 10 0                     2: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 1143 1 ffffffc005db8780 100 0 0 10 0                      3: C52A10AC:9EA7 659095B4:01BB 01 00000000:00000000 00:00000000 00000000     0        0 566441 1 ffffffc003da2580 21 4 28 10 -1                   4: C52A10AC:0016 B22A10AC:D5A0 01 00000028:00000000 01:00000014 00000000     0        0 935471 4 ffffffc005dbc380 21 4 23 10 26                   5: C52A10AC:9F42 12B0C965:01BB 01 00000000:00000000 00:00000000 00000000     0        0 944582 1 ffffffc005f25a00 22 4 28 10 -1                   6: C52A10AC:9FF6 EA737D7B:01BB 08 00000000:00000020 00:00000000 00000000     0        0 565897 1 ffffffc005e1da00 20 4 28 10 -1                   7: C52A10AC:C786 9DA4B5DC:01BB 01 00000000:00000000 02:00000FF0 00000000     0        0 564003 2 ffffffc005db8f00 24 4 28 10 -1                   8: C52A10AC:9FFA EA737D7B:01BB 08 00000000:00000020 00:00000000 00000000     0        0 566435 1 ffffffc003da1e00 20 4 28 10 -1                   9: C52A10AC:DB14 A8DE4B77:01BB 08 00000000:00000020 00:00000000 00000000     0        0 964761 1 ffffffc005f26180 20 4 26 10 -1 

从上图中我们可以看到socket进程的inode节点就是32878.

  • 根据socket文件inode号关联到进程,提取出pid,相关命令如下:
# for dir in `find /proc -name "fd"`
> do
> ls -l $dir | grep "socket\:\[32878\]" && echo $dir
> done
find: /proc/1092/task/1180/fdinfo/105: No such file or directory
find: /proc/13398: No such file or directory
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1092/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1151/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1160/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1161/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1162/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1163/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1165/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1166/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1167/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1168/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1170/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1171/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1172/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1173/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1174/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1175/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1176/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1177/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1178/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1179/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1180/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1181/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1182/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1183/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1184/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1185/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1186/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1187/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1188/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1189/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1190/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1191/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1192/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1193/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1194/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1195/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1196/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1197/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1198/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1199/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1200/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1201/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1202/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1203/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1204/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1205/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1206/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1207/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1208/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1209/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1210/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1211/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1212/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1213/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1214/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1215/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1216/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1217/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1218/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1219/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1220/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1221/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1222/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1223/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1224/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1225/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1226/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1227/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1228/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1229/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1230/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1231/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1232/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1233/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1234/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1253/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1254/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1259/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1266/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1267/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1542/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1543/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1544/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1545/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1546/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1548/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1549/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1551/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/1552/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/10913/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11037/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11041/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11043/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11052/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11053/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11054/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11089/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11090/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11091/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11094/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11113/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11126/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11231/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11232/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/11996/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/12172/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/27310/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/27337/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/27378/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/27379/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/684/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/9021/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/9026/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/12261/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/12795/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/task/13255/fd
lrwx------    1 root     root            64 May  9 12:00 94 -> socket:[32878]
/proc/1092/fd
ls: /proc/13393/task/13393/fd: No such file or directory
ls: /proc/13393/fd: No such file or directory

可以看到49494端口是1092进程开启的,下面就可以通过/proc/pid/目录下的相关信息来获取进程名和进程路径了。

3.参考文章

https://blog.csdn.net/Morphad/article/details/16867851

嵌入式设备上如何通过端口号定位到进程相关推荐

  1. 嵌入式设备上SystemTap调试工具使用

    SystemTap调试工具简介 SystemTap调试器常用于Linux内核的动态调试,不过该工具集也可用于应用的跟踪调试.随着Linux内核及其应用程序的复杂度不断加深,使用一些在功能上区别于传统的 ...

  2. TensorFlow Lite:TensorFlow在移动设备与嵌入式设备上的轻量级跨平台解决方案 | Google 开发者大会 2018...

    Google 开发者大会 (Google Developer Days,简称 GDD) 是展示 Google 最新开发者产品和平台的全球盛会,旨在帮助你快速开发优质应用,发展和留住活跃用户群,充分利用 ...

  3. 嵌入式linux支持python,【python】嵌入式设备上python的使用

    在嵌入式设备上已经安装了SDK等一些相关环境 使用登陆后台的账号登陆后台 BusyBox v1.25.1 (2020-02-17 18:53:37 CST) built-in shell (ash) ...

  4. Local Binary Convolutional Neural Networks ---卷积深度网络移植到嵌入式设备上?

    前言:今天他给大家带来一篇发表在CVPR 2017上的文章. 原文:LBCNN 原文代码:https://github.com/juefeix/lbcnn.torch 本文主要内容:把局部二值与卷积神 ...

  5. 机器学习 部署 嵌入式_如何在移动和嵌入式设备上部署机器学习模型

    机器学习 部署 嵌入式 介绍 (Introduction) Thanks to libraries such as Pandas, scikit-learn, and Matplotlib, it i ...

  6. 深度学习在嵌入式设备上的应用

    下面来探讨一下深度学习在嵌入式设备上的应用,具体如下: 1.深度学习的概念源于人工神经网络的研究,包含多个隐层的多层感知器(MLP) 是一种原始的深度学习结构.深度学习通过组合低层特征形成更加抽象的高 ...

  7. lua怎么嵌入php,在嵌入式设备上使用lua实现cgi的方法

    在嵌入式设备上使用lua实现cgi的方法 [技术领域] [0001]本发明涉及httpweb服务领域,具体涉及一种在嵌入式设备上使用Iua实现cgi的方法. [背景技术] [0002]1.在嵌入式we ...

  8. Linux通过端口号杀死指定进程

    前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...

  9. centos7根据端口查进程_linux下根据端口号查询对应进程

    linux下根据端口号查询对应进程 我们经常使用netstat -lnp可以查询对应端口跟进程,但是有些端口是在netstat -lnp里却没显示对应的进程pid,如果我们使用某个端口已经被占用,需要 ...

最新文章

  1. c语言循环控制答案,C语言程序设计 实四 循环控制 答案 《西北民大 电气院》.doc...
  2. PermissionError: [Errno 13] Permission denied: ‘name.pdf‘
  3. Require.js
  4. 如何在windows下安装cygwin
  5. angularjs 1.3 综合学习 (one way bind , ng-if , ng-switch , ng-messages, ng-form ,ng-model )
  6. 学会使用svn:externals
  7. 上传文件到服务器的Linux命令
  8. java i o教程_Java I/O系统
  9. 编程实现提取点云数据的树的中心和提取山区的DEM
  10. 高仿爱鲜蜂购物应用源码
  11. 安装工程造价课程设计_安装工程造价课程设计心得体会及建议
  12. 使用cloudFlare实现动态DNS解析
  13. 全球四大卫星导航系统年鉴
  14. word删除页眉线,添加第几页共几页
  15. 容器亲和、反亲和、污点、容忍以及驱逐的介绍
  16. 【详细】阿里云Accesskey创建步骤记录
  17. 第七章(五)—主动信息收集—端口扫描(基于TCP全连接扫描、隐蔽扫描、僵尸扫描、UDP的端口扫描)
  18. imx8mqevk OPTEE 全系统构建
  19. 【§炫彩苹果win7主题§】
  20. 二级域名 文件服务器,自建DNS服务器使用二级域名转发内网服务器

热门文章

  1. python中的逻辑判断与循环
  2. package、folder和source folder的区别
  3. YTU 3837问题 E: 一道老卢题
  4. 玫瑰线 matlab,如何用MATLAB画玫瑰线
  5. HttpClient 爬取百度图片
  6. yolov7的export.py转换时显存报错 If reserved memory is >> allocated memory try setting max_split_size_mb to a
  7. iimap服务器没有响应,解决imap被vimIM和谐掉的问题
  8. 模拟豆机、高尔顿瓶【java】
  9. 50个开机进BIOS按键查询
  10. 怎么把JAVA32位改成64位_win732位改成64位教程