可使用netstat、ss、lsof、fuser等命令查看端口占用情况:netstat需安装net-tools,ss为现代替代工具,lsof可反查进程,fuser支持快速终止,组合使用可精准定位监听端口及对应服务。

如果您需要确认某个端口是否被占用,或想了解当前系统中哪些进程正在监听特定端口,则需执行针对性的网络状态查询操作。以下是查看端口占用情况的多种实用方法:
一、使用 netstat 命令查看端口占用
netstat 是传统且广泛支持的网络统计工具,可列出所有监听中的 TCP/UDP 端口及其对应进程信息,适用于大多数 Linux 发行版(部分需安装 net-tools 包)。
1、执行命令显示全部监听端口及进程:sudo netstat -tulnp
2、过滤查看指定端口(例如 8080)的占用情况:sudo netstat -tulnp | grep ':8080'
3、若提示 command not found,先安装工具:sudo yum install -y net-tools(CentOS/RHEL)或 sudo apt install -y net-tools(Ubuntu/Debian)
二、使用 ss 命令替代 netstat
ss 是现代 Linux 系统推荐的高性能替代方案,运行更快、输出更简洁,且默认多数发行版已预装。
1、列出所有监听的 TCP 和 UDP 端口:sudo ss -tuln
2、精确匹配某端口(如 3306):sudo ss -tuln | grep ':3306'
3、同时显示进程名(需 root 权限):sudo ss -tulnp
三、使用 lsof 命令定位占用进程
lsof 可以直接按端口号反查进程详情,对调试服务冲突尤为直观,但需具备 root 权限才能显示其他用户进程。
1、检查特定端口(如 6379)被哪个进程占用:sudo lsof -i :6379
2、列出所有监听 TCP 端口的进程:sudo lsof -iTCP -sTCP:LISTEN
3、若提示未安装,执行:sudo yum install -y lsof 或 sudo apt install -y lsof
四、使用 fuser 快速终止端口占用
fuser 能直接根据端口识别并操作关联进程,适合快速释放端口场景,常与 kill 配合使用。
1、查看占用某端口(如 8000)的进程 PID:sudo fuser 8000/tcp
2、强制杀掉该端口所有相关进程:sudo fuser -k 8000/tcp
3、若需安装,运行:sudo yum install -y psmisc(RHEL/CentOS)或 sudo apt install -y psmisc(Debian/Ubuntu)
五、组合排查:从端口到进程再到服务
当单一命令无法明确归属时,可采用分步交叉验证法,提升定位准确性。
1、先用 ss 获取监听端口列表:sudo ss -tuln | grep LISTEN
2、选取可疑端口(如 :5000),用 lsof 查进程详情:sudo lsof -i :5000
3、若仅显示 PID 无进程名,补充执行:ps -p PID -o pid,ppid,cmd,%mem,%cpu(将 PID 替换为实际数值)










