在 CentOS 系统中,端口占用是一个常见的问题,通常涉及到网络服务的配置和管理,以下是关于 CentOS 端口占用的详细解答:
查看端口占用情况
1、使用lsof 命令:

lsof 命令用于列出当前系统打开的文件,包括网络文件(套接字),要查看特定端口(如 80)的占用情况,可以使用以下命令:
lsof i tcp:80该命令会显示与指定端口相关的进程信息,包括进程 ID、用户、协议、本地地址和远程地址等。
2、使用netstat 命令:
netstat 命令用于显示网络连接、路由表、接口统计信息等,要查看所有正在使用的端口及其关联的进程/应用,可以使用以下命令:
netstat tuln | grep LISTEN或者更具体地查看某个端口的占用情况:
netstat tulnp | grep 80 这里的t 参数表示显示 TCP 端口,u 参数表示显示 UDP 端口,l 参数表示显示监听套接字,n 参数表示以数字形式显示地址和端口号,p 参数表示显示与每个套接字关联的进程 ID。

3、使用ss 命令:
ss 命令是netstat 的现代替代品,提供了更强大的功能和更快的性能,要查看所有监听的 TCP 端口及其进程信息,可以使用以下命令:
ss ltnp 这里的l 参数表示显示监听套接字,t 参数表示显示 TCP 端口,n 参数表示以数值形式显示地址和端口号,p 参数表示显示与每个套接字关联的进程信息。
处理端口占用问题
1、杀死占用端口的进程:
如果发现某个端口被某个不需要的进程占用,可以使用kill 命令来杀死该进程,通过lsof、netstat 或ss 命令找到占用端口的进程 ID(PID),然后使用以下命令杀死该进程:
kill PID或者强制杀死该进程:

kill 9 PID注意,强制杀死进程可能会导致数据丢失或服务中断,因此应谨慎使用。
2、修改服务配置:
如果某个服务正在使用某个端口,但需要将其更改为其他端口,可以修改该服务的配置文件,对于 Apache HTTP 服务器,可以编辑/etc/httpd/conf/httpd.conf 文件,找到Listen 指令并更改为新的端口号,然后重启 Apache 服务以使更改生效。
3、检查防火墙规则:
防火墙规则可能会阻止某些端口的使用,可以使用firewallcmd 命令来检查和修改防火墙规则,要开启某个端口(如 80),可以使用以下命令:
firewallcmd zone=public addport=80/tcp permanent
firewallcmd reloadFAQs
1、如何查看所有正在使用的端口?
可以使用netstat tuln 或ss tun 命令来查看所有正在使用的 TCP 和 UDP 端口。
2、如何查看特定端口的占用情况?
可以使用lsof i :portnumber、netstat tulnp | grep portnumber 或ss ltnp | grep portnumber 命令来查看特定端口的占用情况,其中portnumber 需要替换为实际的端口号。
