这里我们列出了四种方法来查找某个端口当前正在运行的服务,如果师傅们还有什么其他好的想法欢迎交流
我们平时在测试物联网设备的时候,可能通过特殊方法获取了当前的设备的shell【如串口等等】。
这时,我们往往需要查找该设备开启端口对应的服务,再对该服务进行测试。但是在通过端口查找进程的过程中可能会遇到一些问题,因为物联网中的Linux系统往往经过精简,很多命令的参数无法使用
1 使用netstat
这是最常用的方法之一,Netstat可以用来显示显示网络连接,路由表,网络接口状态等等
Netstat在桌面版或者是服务器版的Linux上使用一般没有问题,但是该命令在嵌入式系统中往往被精简
sudo netstat -tulpn
从图中我们可以看到8000端口上运行的服务是python
解释一下每个参数的含义
-t 显示tcp连接
2 使用ss命令
ss命令可以用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
sudo ss -tulpn
如果netstat没有相关参数,建议师傅们试试这个命令
3 使用lsof
顾名思义,losf是一个列出当前系统打开文件的工具,不过该命令在一般嵌入式Linux可能没有
sudo lsof -i :8000
4 fuser
fuser命令用于报告进程使用的文件和网络套接字
sudo fuser 8000/tcp
如上图所示24254即为PID
接下来通过ps命令查找进程的详细信息
ps -p 24254
或者也可以直接使用fuser中的-v参数:
sudo fuser -v 8000/tcp
如果师傅们还有其他更好的查找方法,欢迎留言给我们哇~
你点的每个赞,我都认真当成了喜欢