当前位置:首页 > Linux > 正文

如何检查Linux SSH端口占用?

使用 netstat -tuln | grep ':22'ss -tuln | grep ':22'命令查看22端口(默认SSH端口)的占用状态,若端口处于”LISTEN”状态,表示SSH服务正在运行。

如何查看 Linux SSH 端口占用

在 Linux 系统中,SSH 服务默认使用 22 端口,但实际环境中,端口可能被修改或占用,以下是四种专业方法,帮助您快速检查 SSH 端口占用情况:


方法 1:使用 ss 命令(推荐)

ssnetstat 的现代替代工具,效率更高,执行以下命令:

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

如何检查Linux SSH端口占用?  第1张

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 端口的占用(替换命令中的端口号)。


️ 注意事项

  1. 权限要求
    • 必须使用 sudo 查看系统级进程(避免遗漏关键信息)。
  2. 端口冲突
    • 若端口被其他进程(如 Apache、Nginx)占用,SSH 将无法启动。
    • 使用 sudo kill -9 PID 终止冲突进程(谨慎操作)。
  3. 防火墙干扰
    • 检查防火墙是否放行 SSH 端口:
      sudo ufw status | grep 22  # Ubuntu
      sudo firewall-cmd --list-ports | grep 22  # CentOS

场景 推荐命令
快速检查端口占用 ss -tulpn | grep :端口号
查看进程详细信息 lsof -i :端口号
确认 SSH 配置端口 grep Port /etc/ssh/sshd_config

通过以上方法,您可精准定位 SSH 端口占用问题,确保服务正常运行,建议优先使用 ss 命令,兼顾效率与准确性。

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

0