在 Linux 系统管理中,SSH(Secure Shell)是远程服务器管理的重要工具,默认端口为 22,但出于安全考虑,许多管理员会修改默认端口,掌握如何查看 SSH 端口的方法,对于排查连接问题、优化服务配置至关重要,本文将从多个角度介绍查看 SSH 端口的常用命令和配置文件解析方法,帮助读者全面掌握相关技能。

通过 netstat 命令查看 SSH 端口
netstat 是一款经典的网络工具,可查看网络连接、路由表、接口统计等信息,在较新的 Linux 发行版中,可能需要安装 net-tools 包(如 sudo apt install net-tools 或 sudo yum install net-tools)。
查看 SSH 监听端口的基本命令为:
sudo netstat -tuln | grep ssh
-t:显示 TCP 连接-u:显示 UDP 连接-l:仅显示监听状态的端口-n:以数字形式显示地址和端口,避免 DNS 解析
若输出类似 tcp 0 0 22.0.0.1:2222 0.0.0.0:* LISTEN 的结果,则表示 SSH 服务正在监听 2222 端口,若未显示任何内容,可能是 SSH 服务未启动或端口配置有误。
netstat -tulnp 可查看进程 ID(PID),通过 ps -ef | grep sshd 可进一步确认进程详情。
使用 ss 命令(推荐)
ss 是 netstat 的替代工具,在性能上更优,尤其在处理大量网络连接时速度更快,现代 Linux 发行版(如 Ubuntu 18.04+、CentOS 7+)通常默认安装。
查看 SSH 监听端口的命令为:
sudo ss -tuln | grep ssh
参数与 netstat 类似,-t、-u、-l、-n 含义相同,若需查看进程信息,可添加 -p 参数:
sudo ss -tulnp | grep ssh
输出结果中会包含进程名(如 sshd)和 PID,方便快速定位。LISTEN 0 128 *:2222 *:* users:(("sshd",pid=1234,fd=3)),明确显示 SSH 服务监听 2222 端口。

检查 SSH 配置文件确认端口设置
SSH 服务的端口配置存储在 /etc/ssh/sshd_config 文件中,查看该文件可确认服务器的实际监听端口,使用 cat、less 或 grep 命令均可:
sudo grep -i "Port " /etc/ssh/sshd_config
-i:忽略大小写,避免因Port和port导致遗漏- 若文件中无
Port行,则默认使用 22 端口 - 若存在多行
Port配置,最后一行生效(SSH 服务按顺序读取配置,后者覆盖前者)
输出 Port 2222 表示 SSH 服务配置为监听 2222 端口。注意:修改此文件后需重启 SSH 服务(sudo systemctl restart sshd)才能生效。
通过防火墙规则查看允许的 SSH 端口
有时 SSH 端口未被防火墙允许,会导致连接失败,不同 Linux 发行版的防火墙工具不同,需针对性检查:
firewalld(CentOS/RHEL 7+、Fedora)
sudo firewall-cmd --list-ports | grep ssh
或查看富规则:
sudo firewall-cmd --list-rich-rules | grep ssh
ufw(Ubuntu/Debian)
sudo ufw status | grep ssh
输出类似 2222/tcp (ALLOW IN) 表示允许 2222 端口的 SSH 连接。
iptables(传统防火墙)
sudo iptables -L -n | grep ssh
或直接查看规则:
sudo iptables -L INPUT -n --line-numbers | grep ssh
使用 lsof 命令查看端口占用进程
lsof(List Open Files)可查看系统打开的文件、网络连接等,通过端口可反向查找进程:
sudo lsof -i :2222
-i:指定网络地址,2222表示监听2222端口的所有进程- 若 SSH 服务在监听该端口,输出会包含
sshd进程的详细信息(如 PID、用户等)
若不确定端口,可结合 grep 搜索:

sudo lsof -i | grep ssh
通过 systemctl 查看 SSH 服务状态
systemd 是现代 Linux 系统的默认初始化系统,可通过 systemctl 检查 SSH 服务的运行状态和监听端口:
sudo systemctl status sshd
输出中会显示 Active: active (running) 表示服务正在运行,但不会直接显示端口,需结合 ss 或 netstat 命令进一步确认。
若需查看服务启动时的参数(如端口配置),可检查服务文件:
sudo systemctl cat sshd | grep -i "port"
常见问题排查
-
端口已配置但无法连接
- 检查防火墙是否允许该端口(见第四部分)
- 确认服务是否监听所有地址(
0.0.0)或仅限特定 IP(如168.1.100) - 使用
telnet或nc测试端口连通性:telnet <服务器IP> <端口>
-
多个 SSH 服务冲突
- 若系统中运行多个 SSH 实例,需通过
ps -ef | grep sshd查看进程,确保只有一个sshd进程监听目标端口。
- 若系统中运行多个 SSH 实例,需通过
-
配置文件修改后未生效
- 确认语法正确:
sudo sshd -t - 重启服务:
sudo systemctl restart sshd
- 确认语法正确:
查看 SSH 端口是 Linux 系统管理的基础技能,可通过 netstat、ss、lsof 等命令实时获取监听信息,也可通过 /etc/ssh/sshd_config 文件确认配置,结合防火墙规则和进程状态排查,可有效解决连接问题,建议管理员定期检查 SSH 端口配置,修改默认端口并限制访问 IP,提升服务器安全性,掌握这些方法,不仅能提高工作效率,更能为系统稳定运行提供保障。


















