Linux系统默认SSH端口22易受攻击,修改为非标准端口(如2222)是基础安全加固手段,需依次修改sshd_config、同步防火墙规则、验证新端口连通性后再停用旧端口。

Linux系统默认SSH端口是22,直接暴露容易被暴力扫描和攻击。修改SSH端口是基础但有效的安全加固手段,操作简单,但需注意配置顺序和防火墙同步,否则可能锁死远程连接。
一、编辑sshd配置文件修改端口
SSH服务配置由/etc/ssh/sshd_config控制。使用root或sudo权限打开该文件:
- 运行sudo nano /etc/ssh/sshd_config(或vim)
- 找到#Port 22这一行,去掉注释符号#,将22改为目标端口(如2222)
- 建议保留Port 22和新端口并存(即写两行:Port 22 和 Port 2222),验证新端口可用后再删旧端口
- 保存退出后,执行sudo systemctl restart sshd(或sudo service ssh restart)使配置生效
二、开放新端口并关闭旧端口(防火墙)
仅改SSH配置还不够,系统防火墙必须放行新端口,否则连接会被拦截。根据使用的防火墙工具操作:
- UFW(Ubuntu常用):sudo ufw allow 2222/tcp;若不再需要22端口,再执行sudo ufw deny 22/tcp
- firewalld(CentOS/RHEL 7+):sudo firewall-cmd --permanent --add-port=2222/tcp,然后sudo firewall-cmd --reload;禁用22端口可加--remove-port=22/tcp
- iptables(传统方式):添加规则sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT,并删除原22端口允许规则(慎用,建议先备份iptables-save > iptables.bak)
三、测试新端口连通性(关键步骤)
切勿直接关闭22端口或重启前未验证——这是导致失联的最常见原因:
- 新开一个终端窗口,用新端口尝试连接:ssh -p 2222 username@your_server_ip
- 确认登录成功、命令执行正常、会话稳定后再回到原终端操作后续步骤
- 如果失败,检查sshd日志:sudo tail -f /var/log/auth.log(Debian/Ubuntu)或/var/log/secure(RHEL/CentOS),看是否报错“invalid port”或“connection refused”
- 若连不上,立即回退:恢复sshd_config中Port设置,重启sshd,并检查防火墙规则
四、可选但推荐的安全增强项
改端口只是第一层防护,配合以下措施效果更佳:
- 禁用密码登录,改用密钥认证:在sshd_config中设PasswordAuthentication no,确保PubkeyAuthentication yes
- 限制登录用户:添加AllowUsers yourname或AllowGroups sshusers
- 启用Fail2ban:自动封禁多次失败登录的IP,大幅降低暴力破解风险
- 定期更新OpenSSH版本,避免已知漏洞










