如何快速查看服务器SSH端口?Linux查看端口命令详解

服务器查看SSH端口命令

直接查看当前生效的SSH端口命令是:
ss -tlnp | grep sshd 或 netstat -tlnp | grep sshd,此命令列出所有监听状态的TCP端口并过滤出sshd进程使用的端口,通常显示为 0.0.0:22 或 ::22,22 即为默认SSH端口(若已修改则显示实际端口号)。


核心命令详解与验证

  1. ss -tlnp | grep sshd (推荐使用)

    • ss: 更现代且高效的 socket 统计工具,替代传统的 netstat。
    • -t: 仅显示 TCP sockets。
    • -l: 仅显示监听 (LISTEN) 状态的 sockets。
    • -n: 以数字形式显示地址和端口号 (不进行 DNS 解析和服务名转换)。
    • -p: 显示使用该 socket 的进程信息 (需要 root 权限才能查看其他用户的进程)。
    • | grep sshd: 将 ss 的输出通过管道 () 传递给 grep 命令,筛选出包含 sshd (SSH 服务进程名) 的行。
    • 输出示例:
      LISTEN 0      128          0.0.0.0:2222        0.0.0.0:    users:(("sshd",pid=1234,fd=3))
      LISTEN 0      128             [::]:2222           [::]:    users:(("sshd",pid=1234,fd=4))

      关键信息是 0.0.0:2222 和 [::]:2222,表示 SSH 服务在 IPv4 和 IPv6 上都监听在 2222 端口。

  2. netstat -tlnp | grep sshd (传统方法)

    • netstat: 网络统计工具,功能强大但性能略逊于 ss。
    • -t, -l, -n, -p: 参数含义与 ss 命令中的相同。
    • | grep sshd: 同样用于过滤出 sshd 进程相关的行。
    • 输出示例:
      tcp        0      0 0.0.0.0:2222            0.0.0.0:               LISTEN      1234/sshd: /usr/sbi
      tcp6       0      0 :::2222                 :::                    LISTEN      1234/sshd: /usr/sbi

      同样,查看 0.0.0:2222 和 ::2222 即可知 SSH 端口为 2222。

  3. 验证命令输出解读

    • 监听地址 (0.0.0 或 ): 0.0.0 表示监听所有 IPv4 地址, (或 [::]) 表示监听所有 IPv6 地址,这通常是需要的配置,表示服务器接受来自任何网络接口的 SSH 连接。
    • 端口号 (xxxx): 冒号 () 后面的数字 (xxxx) SSH 服务实际监听的 TCP 端口号,如果显示 22,说明是默认端口;如果显示如 2222、8822 等,则说明管理员已修改了默认 SSH 端口。
    • 进程信息 (sshd): 确认该监听端口确实由 sshd 进程打开,避免与其他服务混淆。

查看SSH配置文件中的端口设置

命令:grep -i port /etc/ssh/sshd_config

  • /etc/ssh/sshd_config: SSH 服务端的主配置文件。
  • grep -i port: 在配置文件中搜索包含 port 关键字的行 (-i 表示忽略大小写)。
  • 输出示例:
    #Port 22
    Port 2222
    #GatewayPorts no
  • 解读:
    • #Port 22: 以 开头的行是注释,说明默认端口是 22,但当前未生效。
    • Port 2222: 这是实际生效的配置行,明确指定 SSH 服务使用 2222 端口。
    • 配置文件中可能有多条 Port 指令(非注释),SSH 会监听所有指定的端口。
  • 重要提示:
    • 此方法显示的是 配置文件中的设定值,服务器运行时实际监听的端口以第一节的 ss 或 netstat 命令输出为准,如果修改了配置文件但未重启 sshd 服务 (sudo systemctl restart sshd),配置不会生效。

扫描服务器开放端口(外部视角)

命令示例:nmap -sT -p- <服务器IP或域名>

  • 目的: 从网络上的另一台机器扫描目标服务器,验证哪些端口(尤其是 SSH 端口)确实对外开放并可连接,这对于检查防火墙规则是否生效(是否放行了自定义 SSH 端口)非常有用。
  • 参数解释:
    • nmap: 强大的网络探测和安全扫描工具。
    • -sT: 进行 TCP Connect 扫描(建立完整 TCP 连接),结果相对准确可靠。
    • -p-: 扫描所有 65535 个 TCP 端口,范围过大时可指定如 -p 1-10000, 2222, 3389。
    • <服务器IP或域名>: 替换为目标服务器的实际 IP 地址或域名。
  • 输出解读: 在扫描结果中找到 ssh 服务对应的状态为 open 的端口,注意服务识别 (ssh) 可能不完全准确,仍需结合端口号判断。
  • 替代简单命令: nc -zv <服务器IP或域名> <端口号> (如 nc -zv example.com 2222),快速测试特定 TCP 端口是否开放。

关键注意事项与安全最佳实践

  1. 权限要求: 使用 ss -tlnp 或 netstat -tlnp 查看进程信息 (-p 选项) 通常需要 root 权限 (sudo),不加 -p 可看到端口但无法关联进程名,降低准确性。
  2. 默认端口与安全: SSH 默认端口 22 是自动化攻击的主要目标。强烈建议修改为 1024-65535 范围内的非默认端口。 这是服务器安全加固的基本步骤(但非唯一措施)。
  3. 配置 vs 运行时: 务必区分 sshd_config 中的配置和 ss/netstat 显示的实际运行状态,修改配置后必须重启 SSH 服务 (sudo systemctl restart sshd) 才能生效。
  4. 防火墙协同: 修改 SSH 端口后,必须同步更新服务器防火墙(如 iptables, nftables, firewalld, 云平台安全组)规则,允许新端口的入站连接,并拒绝旧端口(通常是默认 22),否则会导致 SSH 无法连接。
  5. 多端口监听: sshd_config 支持配置多个 Port 行(如 Port 22 和 Port 2222),服务会同时监听这些端口,生产环境通常建议只保留一个自定义端口。

常用命令对比与选择建议

命令/方法 主要用途 优势 劣势/注意 推荐度
ss -tlnp \| grep sshd 查看当前实际监听的SSH端口 高效、现代、输出清晰 需要 root 权限查看进程信息 ⭐⭐⭐⭐⭐
netstat -tlnp \| grep sshd 查看当前实际监听的SSH端口 (传统方法) 广泛可用、熟悉度高 性能稍逊于 ss,未来可能被弃用 ⭐⭐⭐⭐
grep -i port /etc/ssh/sshd_config 查看SSH服务配置文件中设定的端口 明确显示配置意图 仅显示配置,不一定反映当前运行状态 ⭐⭐⭐⭐
nmap -sT -p- <server> 从外部网络扫描验证SSH端口开放性 真实反映外部可连接性,验证防火墙规则 需要额外机器,扫描所有端口耗时 ⭐⭐⭐⭐ (特定场景)
nc -zv <server> <port> 快速测试特定端口是否开放 简单、快速 只能测试单个指定端口 ⭐⭐⭐ (特定场景)

总结与安全加固建议

准确查看服务器 SSH 端口的核心在于 ss -tlnp | grep sshd 命令,它能直接反映 sshd 进程当前实际监听的 TCP 端口,结合查看配置文件 /etc/ssh/sshd_config 可以理解管理员的设置意图,而使用 nmap 进行外部扫描则是验证端口对外开放性和防火墙配置有效性的关键步骤。

专业的SSH安全加固建议:

  1. 修改默认端口: 立即将默认的 22 端口改为 1024-65535 范围内的高位端口。
  2. 禁用root登录: 在 sshd_config 中设置 PermitRootLogin no,强制使用普通用户登录后再 su/sudo。
  3. 使用密钥认证: 彻底禁用密码登录 (PasswordAuthentication no),强制使用更安全的 SSH 密钥对认证。
  4. 限制用户与IP: 使用 AllowUsers/AllowGroups 限制可登录的用户/组,利用 DenyUsers/DenyGroups 封禁特定用户,结合防火墙或 sshd_config 的 Match Address 限制来源 IP。
  5. 保持更新: 定期更新操作系统和 openssh-server 软件包以修复安全漏洞。
  6. 使用Fail2ban: 部署 Fail2ban 工具自动封锁多次尝试失败的 IP 地址。
  7. 限制协议版本: 在 sshd_config 中明确指定 Protocol 2,禁用老旧不安全的 SSHv1。

您通常使用哪些策略来进一步加强服务器的SSH访问安全?是否有遇到过因端口或配置问题导致的连接故障?欢迎在评论区分享您的实战经验和解决方案。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/30644.html

赞 (0)
上一篇 2026年2月14日 05:53
下一篇 2026年2月14日 05:55

相关推荐

  • 坑爹酷跑有哪些服务器,哪个服务器人最多?

    坑爹酷跑服务器主要分为国内节点和海外节点,分别由简米科技和酷番云提供技术支撑,确保不同地区玩家的流畅体验,坑爹酷跑服务器架构概览坑爹酷跑作为一款全球热门的跑酷游戏,其服务器部署直接影响玩家的操作响应和游戏体验,游戏团队采用分布式架构,将服务器按地理位置划分为两大集群:面向国内玩家的国内服务器群,以及针对海外玩家……

    2026年8月24日
    300
  • 如何架设域名服务器?新手需注意哪些事项?

    架设域名服务器对于新手来说,核心就是三件事:选对软件、配好解析记录、守住安全底线, 先别急着敲命令,搞清楚自己是要做权威解析、递归解析,还是内网DNS,否则后面会绕很大弯路,架设域名服务器前先分清使用场景很多新手把“域名服务器”和“云解析”混为一谈,你需要的可能是两种完全不同的东西:权威DNS:自己管理域名A记……

    2026年9月6日
    300
  • web服务器需要安装哪些软件,有哪些功能?

    搭建一个生产级Web服务器,核心需要安装操作系统、Web服务软件(如Nginx或Apache)、数据库(MySQL/PostgreSQL)、脚本语言解释器(PHP/Python/Node.js)、以及安全与监控工具,这些组件缺一不可,它们共同决定了网站的响应速度、并发能力与数据可靠性,下面从功能拆解到选型场景……

    2026年8月13日
    500
  • 个人服务器怎么搭建教程?个人服务器搭建详细步骤

    搭建个人服务器的核心在于明确需求场景,通过选择轻量级VPS或闲置硬件,配合Docker容器化部署,即可低成本实现数据私有化、家庭媒体中心及自动化监控等功能,很多人提到“个人服务器”,脑海中浮现的往往是机房里嗡嗡作响的大型机柜,或者每月高昂的托管费用,对于绝大多数普通用户而言,个人服务器更像是一个住在云端的“数字……

    2026年5月29日
    5600
  • 服务器异常关闭网络连接怎么回事,如何快速解决服务器断开问题

    服务器异常关闭网络连接的核心诱因集中于资源耗尽、软件缺陷、网络攻击及配置错误四大维度,解决之道在于建立监控体系、优化系统参数及构建高可用架构,当服务器主动断开连接时,通常意味着系统触发了保护机制或遭遇了不可恢复的错误,运维人员需从系统日志、资源状态及网络链路三个层面快速定位,通过标准化运维流程恢复服务并预防复发……

    2026年3月25日
    10800
  • 一套服务器需要哪些

    一套服务器需要硬件、软件、网络、运维、安全这五大核心要素,缺一不可,无论是自建机房还是选择托管服务,忽略其中任何一个环节,都会在业务扩展中埋下隐患,下面从实际部署角度拆解每个要素,并给出可验证的操作建议,硬件:服务器的骨架核心组件服务器硬件不是高端PC的简单堆叠,CPU、内存、硬盘、RAID卡、电源、风扇、机箱……

    2026年8月24日
    500
  • 个人开发真的需要买云服务器吗?个人开发网站需要云服务器吗

    个人开发者通常不需要购买云服务器,除非你有部署独立应用、搭建个人博客或进行长期技术实验的具体需求;对于简单的静态页面或学习阶段,免费或低成本的替代方案更为合适,在2026年的技术环境下,云计算的门槛已经降到了前所未有的低水平,很多刚入行的开发者都会纠结这个问题:到底要不要掏钱买一台云服务器?这不仅仅是几块钱或几……

    2026年5月29日
    5000
  • 如何快速查看访问日志记录,有哪些常用方法

    访问日志记录是网站运营的基石,它详细记录了每一次请求的来龙去脉,是诊断问题、优化性能和保障安全的第一手资料,几乎所有服务器都默认开启访问日志,但多数人只在出问题时才想起翻看,从日常运维到SEO策略制定,这份原始数据都能提供无可替代的参考,下面从工具选择、解读方法到实际应用,逐一拆解,为什么访问日志记录如此重要……

    2026年7月22日
    1100
  • Python强化学习怎么入门?python强化学习教程

    Python 强化并非单纯增加代码量,而是通过重构底层逻辑、深入 CPython 源码及掌握异步并发机制,将编程思维从“脚本编写者”升级为“系统架构师”,从而实现性能与可维护性的双重飞跃,很多开发者在掌握基础语法后容易陷入瓶颈,觉得 Python 只是简单的胶水语言,这种认知偏差导致代码运行缓慢、内存泄漏频发……

    2026年7月8日
    16200
  • 服务器服务端口是什么问题,服务器端口不通怎么解决?

    服务器服务端口本质上是网络通信的逻辑通道,是服务器与外部世界进行数据交换的必经关口,当出现连接失败、服务无响应或遭受攻击时,核心往往归结于端口的配置错误、冲突或安全策略限制,理解并解决端口问题,是保障服务器稳定性和安全性的基石,深入解析:服务端口的本质与分类在网络技术中,IP地址定位了具体的设备,而端口则定位了……

    2026年2月21日
    13200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注