推荐使用ss和lsof命令查看端口占用,如ss -tulnp | grep :端口号或lsof -i :端口号,可快速定位占用指定端口的进程及其PID。
在Linux系统中,查看端口占用情况是系统管理和网络调试中的常见需求。当某个服务无法启动或出现连接问题时,很可能是端口被其他进程占用了。以下是几种常用的查看端口占用的方法,适用于大多数主流Linux发行版。
1. 使用 netstat 命令
netstat 是一个功能强大的网络工具,可以显示网络连接、路由表、接口统计等信息。
查看指定端口占用:
netstat -tulnp | grep :端口号
例如查看80端口的占用情况:
netstat -tulnp | grep :80
参数说明:
- -t:显示TCP连接
- -u:显示UDP连接
- -l:仅显示监听状态的端口
- -n:以数字形式显示地址和端口
- -p:显示占用端口的进程PID和名称
注意:netstat 已逐步被 ss 取代,但在多数系统中仍可用。
2. 使用 ss 命令(推荐)
ss(Socket Statistics)是现代Linux系统中更高效、更快的替代工具。
查看端口占用:
ss -tulnp | grep :端口号
例如查看443端口:
ss -tulnp | grep :443
参数与 netstat 类似,但执行速度更快,尤其在高并发环境下表现更优。
3. 使用 lsof 命令
lsof(List Open Files)可以列出系统中打开的文件,包括网络套接字。
查看特定端口的占用进程:
lsof -i :端口号
例如查看3306端口(MySQL常用端口):
lsof -i :3306
输出内容包含进程名、PID、用户、协议和连接状态,信息非常详细。
若提示命令未找到,可通过以下方式安装:
- Ubuntu/Debian:
sudo apt install lsof
- CentOS/RHEL:
sudo yum install lsof
或sudo dnf install lsof
4. 查看所有监听端口
如果想了解系统当前所有正在监听的端口,可运行:
ss -tuln
或
netstat -tulnp | grep :80
0
重点关注“Local Address:Port”列,其中“0.0.0.0”表示监听所有网卡,“127.0.0.1”表示仅本地访问。
基本上就这些方法。日常使用中,推荐优先使用 ss 和 lsof,它们响应更快、信息更清晰。掌握这些命令,排查端口冲突会变得简单高效。
mysql linux centos 端口 ubuntu 工具 路由 dnf linux系统 mysql 接口 并发 udp linux ubuntu centos debian