检查 Ubuntu 中正在运行哪些端口和进程
在连接到端口或调试之前,您必须知道哪些端口正在运行以及该端口上正在运行哪些进程。有时您可能还会遇到诸如“端口已在使用中”之类的问题,如果有必要,您必须知道哪个进程正在使用该端口,并在需要时终止它。这可以通过了解不同进程使用哪些端口来实现。我们将研究一些完成本文工作的方法。首先,让我们了解一下本文中使用的一些技术术语。
什么是端口?
端口是可以使用各种协议与应用程序进行通信的抽象。对于 TCP、UDP 和 SMTP 等传输层协议,会使用端口。不同的服务被分配一个端口号,例如HTTP使用的端口80、SSH使用的端口22等。端口号的使用使得多个系统可以通过相同的传输协议打开多个套接字。
应用程序中使用多个端口和动态端口 49152-65535。前 1024 个端口 (00-1023) 是系统端口,它们禁止用户程序干预它们,因为许多操作系统保留这些端口用于特权功能。端口可以接收和传送数据,并且位于 OSI 模型的传输层之上。
什么是流程?
本质上,进程是程序的动态实例,并且是按顺序执行的。代表系统中要实现的核心工作单元的实体被指定为进程。简单来说,我们在文本文件中创建计算机程序,当我们执行该程序时,它就成为一个执行程序中规定的所有职责的进程。
现在让我们看看检查 Ubuntu 中运行的端口和进程的方法。
方法一:使用netstat和grep命令
网络统计
netstat 命令显示网络状态和协议统计信息。根据所使用的命令行参数,netstat 显示不同类型的网络数据。 TCP 和 UDP 端点可以在表、路由表和接口信息格式中看到。
grep
grep 过滤器检查文件并显示包含特定字符模式的模式的每一行。在文件中查找的模式称为正则表达式。
使用以下命令检查端口上正在运行哪个进程。您必须在此命令中指定端口。
方法二:使用netstat列出所有监听端口
使用以下命令列出所有侦听的 TCP 或 UDP 端口,包括那些利用端口和套接字状态的端口。
方法三:使用ss命令
命令ss是一个实用程序,用于转储统计套接字并显示类似于netstat的信息。此外,与大多数其他工具相比,它还显示 TCP 和状态信息。它也比 netstat 稍快。
结论
我们已经看到了各种命令来查看您的系统使用哪些端口以及如何在特定端口上运行。这些命令在优化系统性能和各种调试任务时特别有用。例如,如果您想在端口 8000 上运行 Web 应用程序,但该端口已被占用,您可以查找在此端口上运行的进程,并在需要时终止该进程。我们讨论了三种方法来检查 Ubuntu 中运行的端口和进程,最适合您的需求。