服务器测评网
我们一直在努力

Linux 查看 SSH 端口命令有哪些?如何修改 SSH 默认端口?

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

Linux 查看 SSH 端口命令有哪些?如何修改 SSH 默认端口?

通过 netstat 命令查看 SSH 端口

netstat 是一款经典的网络工具,可查看网络连接、路由表、接口统计等信息,在较新的 Linux 发行版中,可能需要安装 net-tools 包(如 sudo apt install net-toolssudo 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 命令(推荐)

ssnetstat 的替代工具,在性能上更优,尤其在处理大量网络连接时速度更快,现代 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 端口。

Linux 查看 SSH 端口命令有哪些?如何修改 SSH 默认端口?

检查 SSH 配置文件确认端口设置

SSH 服务的端口配置存储在 /etc/ssh/sshd_config 文件中,查看该文件可确认服务器的实际监听端口,使用 catlessgrep 命令均可:

sudo grep -i "Port " /etc/ssh/sshd_config
  • -i:忽略大小写,避免因 Portport 导致遗漏
  • 若文件中无 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 搜索:

Linux 查看 SSH 端口命令有哪些?如何修改 SSH 默认端口?

sudo lsof -i | grep ssh

通过 systemctl 查看 SSH 服务状态

systemd 是现代 Linux 系统的默认初始化系统,可通过 systemctl 检查 SSH 服务的运行状态和监听端口:

sudo systemctl status sshd

输出中会显示 Active: active (running) 表示服务正在运行,但不会直接显示端口,需结合 ssnetstat 命令进一步确认。

若需查看服务启动时的参数(如端口配置),可检查服务文件:

sudo systemctl cat sshd | grep -i "port"

常见问题排查

  1. 端口已配置但无法连接

    • 检查防火墙是否允许该端口(见第四部分)
    • 确认服务是否监听所有地址(0.0.0)或仅限特定 IP(如 168.1.100
    • 使用 telnetnc 测试端口连通性:telnet <服务器IP> <端口>
  2. 多个 SSH 服务冲突

    • 若系统中运行多个 SSH 实例,需通过 ps -ef | grep sshd 查看进程,确保只有一个 sshd 进程监听目标端口。
  3. 配置文件修改后未生效

    • 确认语法正确:sudo sshd -t
    • 重启服务:sudo systemctl restart sshd

查看 SSH 端口是 Linux 系统管理的基础技能,可通过 netstatsslsof 等命令实时获取监听信息,也可通过 /etc/ssh/sshd_config 文件确认配置,结合防火墙规则和进程状态排查,可有效解决连接问题,建议管理员定期检查 SSH 端口配置,修改默认端口并限制访问 IP,提升服务器安全性,掌握这些方法,不仅能提高工作效率,更能为系统稳定运行提供保障。

赞(0)
未经允许不得转载:好主机测评网 » Linux 查看 SSH 端口命令有哪些?如何修改 SSH 默认端口?