PHP原生WebSocket实时通信骨架设计与实战
2026/9/5 10:55:34
在 Linux 系统中,根据端口查看对应进程的常用命令有ss、netstat、lsof三种,以下是具体操作步骤和示例,优先推荐ss(性能更优)和lsof(信息更全)。
ss命令(推荐,替代netstat)ss是 Linux 下查看套接字信息的工具,速度快、占用资源少,默认系统一般自带。
ss -tulnp | grep 端口号-t:显示 TCP 协议端口-u:显示 UDP 协议端口-l:仅显示监听状态的端口-n:以数字形式显示端口号(不解析服务名)-p:显示端口对应的进程 PID 和程序名(需要 root 权限,否则不显示进程信息)# 普通用户执行(可能无进程信息) ss -tulnp | grep 8080 # root 用户执行(完整信息) sudo ss -tulnp | grep 8080LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("java",pid=1234,fd=42))说明:8080 端口由java程序占用,进程 PID 为1234。
lsof命令(信息最全面)lsof是List Open Files的缩写,可列出系统中打开的文件和端口关联的进程,部分系统需手动安装。
lsof(如未安装)# CentOS/RHEL sudo yum install lsof -y # Ubuntu/Debian sudo apt install lsof -ylsof -i:端口号-i:显示网络相关的文件 / 端口:端口号:指定要查询的端口sudo lsof -i:80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 5678 root 6u IPv4 12345 0t0 TCP *:http (LISTEN) nginx 5679 www 6u IPv4 12345 0t0 TCP *:http (LISTEN)说明:80 端口由nginx程序占用,有两个进程,PID 分别为5678和5679。
netstat命令(传统工具,部分系统已弃用)netstat是传统的网络状态查看工具,功能与ss类似,但性能稍弱,部分系统需安装net-tools包。
netstat(如未安装)# CentOS/RHEL sudo yum install net-tools -y # Ubuntu/Debian sudo apt install net-tools -ynetstat -tulnp | grep 端口号与ss命令参数完全一致:
-tTCP 端口-uUDP 端口-l监听状态-n数字端口-p进程信息sudo netstat -tulnp | grep 3306根据 PID 查看进程详情查到 PID 后,可通过ps命令查看进程的详细信息:
ps -ef | grep 进程PID示例:ps -ef | grep 1234
查看所有监听端口及进程
sudo ss -tulnp # 或 sudo netstat -tulnp-p参数)需要root 权限,普通用户执行可能无法显示 PID 和程序名。