想象一下,你在服务器上运行了一个 Web 服务,预期它监听在 80 端口,但浏览器却提示“连接被拒绝”。或者,你发现某个端口被占用,却不知道是哪个“家伙”在捣乱。这时,找出端口背后的进程就成了解决问题的第一步。在 Linux 中,网络通信的核心是套接字(socket),它绑定了 IP 地址、端口号和进程。掌握如何查询这种绑定关系,不仅能帮你排除故障,还能提升对系统的掌控力。
基础知识:端口和进程是怎么回事?
在深入方法之前,先搞清楚两个关键概念:端口和进程。
-
端口:简单来说,端口是网络通信的“通道标识”。在一台主机上,多个服务可以同时运行(比如 Web 服务器、邮件服务器),它们通过不同的端口号区分彼此。端口号是一个 16 位数字,范围从 0 到 65535,其中 0-1023 是“知名端口”(如 80 用于 HTTP),1024 以上则常用于自定义服务。
-
进程:进程是 Linux 中运行中的程序实例。每个进程都有一个唯一的标识符,叫作进程 ID(PID)。比如,你启动一个 Nginx 服务,它就会以某个 PID 运行,并占用一个或多个端口。
端口和进程的关系通过套接字建立。套接字本质上是操作系统管理网络连接的“接口”,