优先使用ss命令查看端口监听,它速度快、准确且系统自带;netstat适用于老系统或需兼容性场景,两者均需sudo权限才能显示完整进程信息。

查端口监听,优先用 ss,它快、准、系统自带;netstat 适合老系统或需要兼容性时用。两者核心目标一致:确认谁在监听哪个端口,是否冲突,以及能否安全释放。
ss 查端口监听(推荐首选)
现代 Linux 默认预装,响应快,尤其在高并发场景下比 netstat 稳定得多。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 查看所有监听中的 TCP/UDP 端口及进程:sudo ss -tulnp
- 精准过滤 80 端口:sudo ss -tulnp | grep :80,输出类似
users:(("nginx",pid=1234,fd=6)),直接带进程名和 PID - 只看 IPv4 的 TCP 监听(避开 IPv6 干扰):sudo ss -tlnp | grep ':3306'
- 若不关心进程名,仅快速确认端口是否在监听:ss -tuln(去掉
-p可免 root 权限运行)
netstat 查端口监听(传统但可靠)
部分最小化安装或旧容器镜像里可能未预装,需手动补装 net-tools,但参数语义清晰,调试友好。
- 查看全部监听端口及对应进程:sudo netstat -tulnp
- 检查 22 端口是否被占用:sudo netstat -tulnp | grep :22,输出形如
tcp 0 0 *:22 *:* LISTEN 1119/sshd - 如提示
command not found,按系统安装:
— Ubuntu/Debian:sudo apt install net-tools
— CentOS/RHEL:sudo yum install net-tools
关键注意事项
无论用 ss 还是 netstat,以下几点直接影响结果准确性:
-
必须加 sudo 或 root 权限,否则看不到其他用户启动的进程,PID 列会显示为
- -
-l参数只显示 监听中(LISTEN) 的端口;如果查的是客户端临时端口(如访问远程服务时分配的本地端口),要删掉-l,改用ss -tupn或netstat -tupn - 输出中看到
0.0.0.0:端口表示监听所有 IPv4 地址;127.0.0.1:端口表示仅本机可连;[::]:端口是 IPv6 全局监听










