在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)sudo
bash
# Ubuntu/Debian
sudo apt install net-tools lsof
# CentOS/RHEL
sudo yum install net-tools lsof
bash
cat /etc/services | grep <端口号>
bash
sudo nethogs # 按进程查看带宽
sudo iftop # 按连接查看流量