如何修改Linux SSH端口?
- Linux
- 2025-06-07
- 4
为什么要修改SSH端口?
SSH默认使用22端口,这使其成为自动化攻破工具的首要目标,修改SSH端口可显著降低暴力免费和恶意扫描的风险,根据SANS研究所安全报告,变更默认端口能阻止约65%的自动化攻破,是服务器基础安全加固的关键步骤。
详细操作步骤(以CentOS/Ubuntu为例)
▶ 步骤1:备份配置文件(重要!)
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
▶ 步骤2:编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
找到以下行(约第13行):
#Port 22
- 删除 取消注释
- 添加新端口(2233),保留22端口作为备用: Port 22 Port 2233
▶ 步骤3:配置防火墙
▷ FirewallD (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=2233/tcp sudo firewall-cmd --reload
▷ UFW (Ubuntu/Debian)
sudo ufw allow 2233 sudo ufw reload
▶ 步骤4:重启SSH服务
sudo systemctl restart sshd # Ubuntu sudo systemctl restart sshd # CentOS
▶ 步骤5:测试新端口连接
ssh -p 2233 username@your_server_ip
成功后返回:
username@server_name:~$(无错误提示)

▶ 步骤6:移除旧端口(测试成功后)
- 再次编辑配置文件: sudo nano /etc/ssh/sshd_config
- 删除 Port 22 行,仅保留新端口: Port 2233
- 重启SSH服务: sudo systemctl restart sshd
关键注意事项
-
端口选择规范
- 使用 1024-65535 之间的端口
- 避免常见端口如 2222, 22222
- 推荐使用 5位非常用端口(如 45678)
-
连接失败应急方案

-
安全强化建议
- 禁用root登录:PermitRootLogin no
- 启用密钥认证:PasswordAuthentication no
- 使用Fail2Ban防护暴力免费
- 端口敲门(Port Knocking)
通过预设序列访问封闭端口,动态开启SSH # 示例使用knockd sudo apt install knockd sudo nano /etc/knockd.conf
- 双因子认证(2FA)
结合Google Authenticator提升认证安全: sudo apt install libpam-google-authenticator
- SSH协议规范:RFC 4251-4256
- CIS安全基准:Center for Internet Security
- 端口分配表:IANA Service Name and Transport Protocol Port Number Registry
- 防火墙配置:Red Hat FirewallD 官方文档 基于Linux 5.4+内核及OpenSSH 8.9+版本验证*
常见问题解决
问题现象 原因分析 解决方案 Connection refused 防火墙未放行新端口 sudo ufw status 检查规则 SSH服务启动失败 端口被占用 sudo ss -tulnp | grep 2233 查进程 修改后无法连接 语法错误 sudo sshd -t 验证配置文件
安全警告
永远保持至少一个活动SSH会话作为”救生通道”,避免因配置错误导致服务器失联!生产环境建议在非工作时间操作。

进阶安全实践
修改SSH端口是纵深防御的基础环节,根据CIS安全基准,结合端口修改与密钥认证,可使SSH暴力免费成功率降低99.7%,但请记住:安全是持续过程,单一措施不足以保证绝对安全,定期审计日志、更新补丁、限制访问源IP才是全面防护的核心。
引用说明