新闻资讯

如何在 CentOS 中检查端口是否被占用

2025-03-16

在 CentOS 系统的日常运维与管理过程中,确定端口是否被占用是一项基础且关键的操作。无论是部署新的网络服务,还是排查网络连接故障,都需要准确知晓端口的占用状态。下面将详细介绍在 CentOS 系统里检查端口是否被占用的多种方法。

使用 netstat 命令

netstat 命令是 Linux 系统中用于查看网络状态的强大工具,通过它可以获取端口的占用情况。具体使用方式为:在终端中输入netstat -tunlp命令,该命令会展示所有已建立的 TCP 和 UDP 连接,以及对应的监听端口和相关进程信息。其中,-t参数用于显示 TCP 连接,-u显示 UDP 连接,-n以数字形式显示地址和端口号,避免进行 DNS 解析,从而加快命令执行速度,-l仅列出处于监听状态的端口,-p则显示占用端口的进程 ID 和名称。例如,若想查看 80 端口(常用于 HTTP 服务)是否被占用,可在终端输入netstat -tunlp | grep 80。执行后,若有输出结果,说明 80 端口已被占用,输出内容会包含占用该端口的进程 ID 和进程名称等信息。假设输出为tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx,这表明 80 端口正被进程 ID 为 1234 的 nginx 程序占用,且处于监听状态,等待接收来自客户端的 HTTP 请求。

使用 lsof 命令

lsof(list open files)命令用于列出当前系统中所有打开的文件。在 Linux 系统里,网络连接也被视为一种文件,所以可以借助 lsof 命令来查看端口占用情况。具体命令格式为lsof -i :端口号。例如,要检查 22 端口(用于 SSH 远程连接服务)的占用情况,在终端输入lsof -i :22。如果该端口已被占用,命令执行结果会显示占用端口的进程相关信息,如COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME这一行标题下,会列出类似sshd 1235 root 3u IPv4 12345 0t0 TCP :ssh (LISTEN)的内容,其中sshd是进程名称,1235是进程 ID,root是进程所有者,3u表示文件描述符,IPv4表明是基于 IPv4 协议的连接,12345是网络连接的相关标识,TCP :ssh (LISTEN)则清晰显示该进程正在通过 TCP 协议监听 22 端口(即ssh服务端口)。

使用 ss 命令

ss 命令是新一代的网络状态查看工具,相比 netstat,它具有更高的性能和更丰富的功能,尤其在处理大量连接时优势明显。使用ss -tunlp | grep 端口号命令可检查端口占用情况,参数含义与 netstat 类似。例如,查看 UDP 协议的 53 端口(DNS 服务常用端口)是否被占用,在终端输入ss -tunlp | grep 53。若该端口已被占用,输出结果会呈现占用端口的本地地址、外部地址、连接状态以及占用进程等信息,其格式简洁明了,有助于快速判断端口状态。例如输出udp 0 0 0.0.0.0:53 0.0.0.0:* users:(("named",pid=1236,fd=10)),表明 UDP 协议的 53 端口被名为named(通常是 DNS 服务进程)、进程 ID 为 1236 的进程占用。
熟练掌握在 CentOS 系统中检查端口占用情况的方法,能够帮助系统管理员及时发现端口冲突,确保网络服务的正常运行,有效提升系统的稳定性和可靠性。


拓展阅读:

1、 进程管理深入:了解更多关于 Linux 系统进程管理的知识,如进程的启动、停止、优先级调整等操作,能更好地理解占用端口的进程行为,在必要时对进程进行合理管理,避免因进程异常导致端口占用问题影响系统运行。
2、 网络协议详解:深入学习 TCP 和 UDP 协议的工作原理、特点及应用场景,有助于更准确地分析端口占用情况与网络通信之间的关系,理解不同协议端口在网络中的作用,提升网络故障排查能力。
3、 端口扫描技术:学习端口扫描的原理和常用工具,了解如何利用端口扫描技术发现系统潜在的安全隐患,以及如何防范非法的端口扫描行为,保障系统网络安全。

新闻资讯
热门专题
最新专题
友情链接