上一篇
如何检查Linux SSH端口占用?
- Linux
- 2025-06-12
- 3493
使用
netstat -tuln | grep ':22'或
ss -tuln | grep ':22'命令查看22端口(默认SSH端口)的占用状态,若端口处于”LISTEN”状态,表示SSH服务正在运行。
如何查看 Linux SSH 端口占用
在 Linux 系统中,SSH 服务默认使用 22 端口,但实际环境中,端口可能被修改或占用,以下是四种专业方法,帮助您快速检查 SSH 端口占用情况:
方法 1:使用 ss 命令(推荐)
ss 是 netstat 的现代替代工具,效率更高,执行以下命令:
sudo ss -tulpn | grep -E ':(22|SSH_PORT)'
- 参数说明:
-t:查看 TCP 连接-u:查看 UDP 连接-l:仅显示监听端口-p:显示进程信息-n:禁用域名解析(显示数字端口)
- 输出示例:
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=1234,fd=3))关键信息:
22端口被sshd进程占用(PID=1234)。
方法 2:使用 netstat 命令(传统方式)
若系统未安装 ss,可使用 netstat:

sudo netstat -tulnp | grep -E ':(22|SSH_PORT)'
- 输出示例:
tcp6 0 0 :::22 :::* LISTEN 1234/sshd
可见
22端口由sshd(PID=1234)监听。
方法 3:使用 lsof 命令(检查进程详情)
通过进程名直接定位:
sudo lsof -i :22 -s TCP:LISTEN
- 输出示例:
sshd 1234 root 3u IPv4 2876543 0t0 TCP *:ssh (LISTEN)
明确显示
sshd正在监听22端口(IPv4)。
方法 4:检查 SSH 配置文件(确认配置端口)
若端口被修改,查看 SSH 服务配置:
sudo grep -i Port /etc/ssh/sshd_config
- 输出示例:
Port 2222 # 若此处自定义了端口,则检查新端口
若输出
Port 2222,则需检查2222端口的占用(替换命令中的端口号)。
️ 注意事项
- 权限要求:
- 必须使用
sudo查看系统级进程(避免遗漏关键信息)。
- 必须使用
- 端口冲突:
- 若端口被其他进程(如 Apache、Nginx)占用,SSH 将无法启动。
- 使用
sudo kill -9 PID终止冲突进程(谨慎操作)。
- 防火墙干扰:
- 检查防火墙是否放行 SSH 端口:
sudo ufw status | grep 22 # Ubuntu sudo firewall-cmd --list-ports | grep 22 # CentOS
- 检查防火墙是否放行 SSH 端口:
| 场景 | 推荐命令 |
|---|---|
| 快速检查端口占用 | ss -tulpn | grep :端口号 |
| 查看进程详细信息 | lsof -i :端口号 |
| 确认 SSH 配置端口 | grep Port /etc/ssh/sshd_config |
通过以上方法,您可精准定位 SSH 端口占用问题,确保服务正常运行,建议优先使用 ss 命令,兼顾效率与准确性。

引用说明基于 Linux 核心工具手册(
man ss、man netstat、man lsof)及 OpenSSH 官方文档,遵循系统管理最佳实践。
