在Linux系统中,可以通过以下几种方法查看进程占用的端口:
netstat 命令(传统工具,部分新系统可能需安装)sudo netstat -tulnp
-t:显示TCP端口-u:显示UDP端口-l:仅显示监听中的端口-n:以数字形式显示端口(不解析服务名称)-p:显示进程名/PID(需要sudo权限)ss 命令(netstat的现代替代工具,推荐)sudo ss -tulnp
netstat类似,但速度更快,输出更简洁sudo ls -l /proc/<PID>/fd/ | grep socket
或通过lsof:
sudo lsof -Pan -p <PID> -i
lsof 直接查看端口占用sudo lsof -i :<端口号> # 查看指定端口
sudo lsof -i # 查看所有网络连接
sudo ss -ltp | grep ssh
Proto Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp 0 0 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
Local Address:Port:0.0.0.0:22表示监听所有网卡的22端口Process:进程名和PID(如sshd的PID为1234)sudobash
# Ubuntu/Debian
sudo apt install net-tools lsof
# CentOS/RHEL
sudo yum install net-tools lsofbash
cat /etc/services | grep <端口号>bash
sudo nethogs # 按进程查看带宽
sudo iftop # 按连接查看流量