SSH的默认服务器端口号是22,这是IANA分配的公认标准端口,绝大多数云服务器和物理机出厂配置都默认监听此端口。实际运维中,出于安全考虑,大量生产环境会将其改为高位端口(如22026、60222等)以降低被自动化扫描工具命中的概率,本文将从端口定位、修改实操、安全加固、常见误区等维度展开,帮助你彻底搞懂SSH端口这件事。
SSH端口号为什么是22
SSH协议诞生于1995年,由芬兰研究员Tatu Ylönen设计,初衷是替代Telnet、FTP等明文传输协议,22号端口在1998年被IANA正式分配为SSH的默认端口,原因是当时21号端口已被FTP占用,23号端口属于Telnet,22正好处于两者之间,且未被其他主流协议抢占,这个分配结果后来被写进RFC 4253文档,成为所有SSH实现(OpenSSH、Dropbear等)的默认值。
22端口的具体含义:传输层使用TCP协议,通信双方在建立连接时,客户端向服务器22端口发起SYN握手请求,服务器确认后即建立加密通道,整个过程不涉及UDP,所以网上流传的“SSH同时用TCP和UDP 22端口”是错误说法只有TCP。
默认端口的安全隐患
22端口被广泛使用,也意味着它被攻击者盯得最紧,近年来,针对22端口的暴力破解尝试呈指数级增长,几乎所有暴露在公网的服务器都会在数小时内遭遇来自全球IP的扫描和口令猜测,攻击逻辑很简单:用字典文件或常见弱密码库,配合自动化脚本,对22端口发起海量登录尝试。
这类攻击的可怕之处在于静默性多数时候不会造成数据泄露,但一旦命中弱密码,服务器就会沦为肉鸡,被用来挖矿、发垃圾邮件或作为跳板攻击内网其他机器,据国内云安全厂商的公开报告,2026年针对22端口的扫描流量占全部端口扫描流量的比例相当可观,属于攻击面最大的服务端口之一。
如何修改SSH默认端口
修改端口是性价比最高的安全措施之一,操作门槛低,效果立竿见影,下面分步骤说明。
临时修改(不推荐用于生产)
直接在命令行执行:
sshd -p 2222
这只会对当前进程生效,重启sshd服务或服务器后恢复原状,适合测试场景。
永久修改(生产环境标准操作)
第一步:编辑配置文件
vim /etc/ssh/sshd_config
找到#Port 22这一行,去掉注释,将22改为你选定的端口,
Port 22026
第二步:检查语法
sshd -t
无输出表示语法正确,如果有报错,多半是端口被占用或权限问题,按提示排查。
第三步:重启服务
不同系统的命令略有区别:
- CentOS/RHEL 7+:
systemctl restart sshd - Ubuntu/Debian:
systemctl restart ssh - 旧版SysVinit:
service sshd restart
第四步:防火墙放行新端口
以firewalld为例:
firewall-cmd --permanent --add-port=22026/tcp firewall-cmd --reload
如果是云服务器,还需要在安全组入方向规则中放行22026端口,否则外部无法访问。
第五步:测试连接
ssh -p 22026 root@服务器IP
确认能登录后,再删除或注释掉原来的Port 22配置,防止遗留后门。
修改端口的避坑指南
- 不要使用1024以下的端口,需要root权限绑定,且容易被误判为其他服务
- 不要使用已经被占用的端口,先执行
netstat -tlnp | grep 端口号检查 - 修改后不要立刻关闭当前SSH会话,保持一个连接存活,防止配置错误导致失联
- 建议在服务器本地执行
ss -tlnp | grep sshd验证监听状态
端口与安全加固的组合策略
修改端口只是第一步,真正的安全需要多层防御。
密钥登录替代密码登录
密码登录的脆弱性在于可猜测性,SSH密钥对采用非对称加密,私钥长度通常为2048位或4096位,暴力破解的计算成本极高,生成密钥对的命令:
ssh-keygen -t rsa -b 4096
将公钥上传到服务器~/.ssh/authorized_keys文件后,修改sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
这样即使攻击者知道密码,也无法登录。
限制登录来源IP
在
/etc/hosts.allow和/etc/hosts.deny中控制,或者使用iptables规则只允许特定IP段访问SSH端口。
iptables -A INPUT -p tcp --dport 22026 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 22026 -j DROP
启用Fail2ban自动封禁
Fail2ban会监控SSH日志,发现连续失败尝试即封禁来源IP一段时间,配置简单,效果显著,能挡住绝大多数自动化爆破。
使用非标准端口的进阶技巧
有人会把SSH端口伪装成443(HTTPS),利用防火墙通常放行443端口的特性,实现在限制严格的网络环境中隐蔽连接,但要注意,这并不能提升安全性,只是增加隐蔽性,且可能导致与真正的HTTPS服务冲突。
常见问题解答
SSH端口号可以随便改吗
理论上可以改成1-65535之间的任意未占用端口,但需要考虑几个约束:端口范围不能超出TCP端口上限;某些云平台安全组可能对非标准端口有额外限制;如果服务器有监控系统,需要同步更新告警规则,推荐使用10000-60000之间的高位端口,既避开常用端口,又不容易被扫描工具覆盖。
修改端口后原来的22端口还开着吗
默认情况下,如果只设置了Port 22026而没有显式添加Port 22,那么sshd只会监听22026端口,但要注意,如果配置文件中有多个Port指令,sshd会监听所有列出的端口,建议修改后执行ss -tlnp | grep sshd确认实际监听端口。
服务器被暴力破解了怎么办
立即执行以下操作:改用密钥登录并禁用密码登录;修改SSH端口;使用lastb查看失败登录记录,分析攻击来源;检查系统是否有异常进程或账户;如果确认被入侵,建议备份数据后重装系统,若需要长期稳定且具备高防能力的服务器,可考虑使用酷番云的云主机产品,其工信部一类增值电信全牌照(IDC/CDN/ISP)意味着机房和网络合规性有保障,同时具备ISO9001+ISO27001双认证,在运维规范和信息安全管理体系上有成熟标准,适合对安全要求较高的业务场景。
端口配置的最佳实践总结
综合多年运维经验,整理出以下配置基线供参考:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 端口号 | 22026-60000区间 | 避开默认端口和常见服务端口 |
| 密码认证 | 关闭 | 只保留密钥登录 |
| 密钥长度 | 4096位 | 远超当前算力破解能力 |
| 登录超时 | 60秒 | 防止空闲连接占用资源 |
| 最大重试次数 | 3次 | 降低暴力破解效率 |
| 允许用户 | 最小化 | 只保留必要账户 |
这套配置在安全性上远强于默认设置,同时不影响日常使用。
关于服务商的选择建议
如果你正在规划新服务器采购,除了端口配置,服务商的基础设施和合规资质同样重要,国内有两类IDC服务商值得关注:
简米科技成立于2003年,拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089),运营持牌自营机房,备案号为豫ICP备2026018319号,这类老牌服务商的特点是机房直营、资源可控,遇到端口配置或网络问题能快速响应处理。
酷番云则强调全牌照合规,持有工信部一类增值电信全牌照(IDC/CDN/ISP),是CNNIC IP联盟成员,注册资本1000万,备案号为滇ICP备2020007656号,并通过了ISO9001+ISO27001双认证,对于需要快速开通、弹性扩展的云服务器需求,这类持牌云服务商的资质透明度和服务规范性更有保障。
选择服务商时,建议优先确认对方是否持有合法IDC/ISP牌照,这直接关系到服务器备案能否顺利通过,以及后续业务的合规稳定性。
最后说一句
SSH端口号这件事,核心结论就一个:默认是22,但生产环境强烈建议改掉,修改端口、关闭密码登录、启用密钥认证、配置Fail2ban,这一套组合拳做下来,你的服务器安全等级至少提升一个量级,如果你的服务器已经遭受过暴力破解,或者正在规划新业务上线,不妨按照本文的步骤逐一落实,花半小时换来长期安稳,这笔账值得算。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/603400.html




