嵌入式设备上如何通过端口号定位到进程
在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
嵌入式设备上如何通过端口号定位到进程相关推荐
- 嵌入式设备上SystemTap调试工具使用
SystemTap调试工具简介 SystemTap调试器常用于Linux内核的动态调试,不过该工具集也可用于应用的跟踪调试.随着Linux内核及其应用程序的复杂度不断加深,使用一些在功能上区别于传统的 ...
- TensorFlow Lite:TensorFlow在移动设备与嵌入式设备上的轻量级跨平台解决方案 | Google 开发者大会 2018...
Google 开发者大会 (Google Developer Days,简称 GDD) 是展示 Google 最新开发者产品和平台的全球盛会,旨在帮助你快速开发优质应用,发展和留住活跃用户群,充分利用 ...
- 嵌入式linux支持python,【python】嵌入式设备上python的使用
在嵌入式设备上已经安装了SDK等一些相关环境 使用登陆后台的账号登陆后台 BusyBox v1.25.1 (2020-02-17 18:53:37 CST) built-in shell (ash) ...
- Local Binary Convolutional Neural Networks ---卷积深度网络移植到嵌入式设备上?
前言:今天他给大家带来一篇发表在CVPR 2017上的文章. 原文:LBCNN 原文代码:https://github.com/juefeix/lbcnn.torch 本文主要内容:把局部二值与卷积神 ...
- 机器学习 部署 嵌入式_如何在移动和嵌入式设备上部署机器学习模型
机器学习 部署 嵌入式 介绍 (Introduction) Thanks to libraries such as Pandas, scikit-learn, and Matplotlib, it i ...
- 深度学习在嵌入式设备上的应用
下面来探讨一下深度学习在嵌入式设备上的应用,具体如下: 1.深度学习的概念源于人工神经网络的研究,包含多个隐层的多层感知器(MLP) 是一种原始的深度学习结构.深度学习通过组合低层特征形成更加抽象的高 ...
- lua怎么嵌入php,在嵌入式设备上使用lua实现cgi的方法
在嵌入式设备上使用lua实现cgi的方法 [技术领域] [0001]本发明涉及httpweb服务领域,具体涉及一种在嵌入式设备上使用Iua实现cgi的方法. [背景技术] [0002]1.在嵌入式we ...
- Linux通过端口号杀死指定进程
前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...
- centos7根据端口查进程_linux下根据端口号查询对应进程
linux下根据端口号查询对应进程 我们经常使用netstat -lnp可以查询对应端口跟进程,但是有些端口是在netstat -lnp里却没显示对应的进程pid,如果我们使用某个端口已经被占用,需要 ...
最新文章
- c语言循环控制答案,C语言程序设计 实四 循环控制 答案 《西北民大 电气院》.doc...
- PermissionError: [Errno 13] Permission denied: ‘name.pdf‘
- Require.js
- 如何在windows下安装cygwin
- angularjs 1.3 综合学习 (one way bind , ng-if , ng-switch , ng-messages, ng-form ,ng-model )
- 学会使用svn:externals
- 上传文件到服务器的Linux命令
- java i o教程_Java I/O系统
- 编程实现提取点云数据的树的中心和提取山区的DEM
- 高仿爱鲜蜂购物应用源码
- 安装工程造价课程设计_安装工程造价课程设计心得体会及建议
- 使用cloudFlare实现动态DNS解析
- 全球四大卫星导航系统年鉴
- word删除页眉线,添加第几页共几页
- 容器亲和、反亲和、污点、容忍以及驱逐的介绍
- 【详细】阿里云Accesskey创建步骤记录
- 第七章(五)—主动信息收集—端口扫描(基于TCP全连接扫描、隐蔽扫描、僵尸扫描、UDP的端口扫描)
- imx8mqevk OPTEE 全系统构建
- 【§炫彩苹果win7主题§】
- 二级域名 文件服务器,自建DNS服务器使用二级域名转发内网服务器
热门文章
- python中的逻辑判断与循环
- package、folder和source folder的区别
- YTU 3837问题 E: 一道老卢题
- 玫瑰线 matlab,如何用MATLAB画玫瑰线
- HttpClient 爬取百度图片
- yolov7的export.py转换时显存报错 If reserved memory is >> allocated memory try setting max_split_size_mb to a
- iimap服务器没有响应,解决imap被vimIM和谐掉的问题
- 模拟豆机、高尔顿瓶【java】
- 50个开机进BIOS按键查询
- 怎么把JAVA32位改成64位_win732位改成64位教程