要修改SSH服务使用的端口,请按以下步骤操作(务必谨慎,修改错误可能导致无法远程登录服务器):
步骤 1:选择新端口
- 端口范围:选择介于
1024
到65535
之间的端口(避免22
、80
、443
等常见端口)
📌 示例:本次使用**2222**
(请替换为你的实际端口)
步骤 2:修改 SSH 配置文件
- 打开配置文件(使用管理员权限):
sudo nano /etc/ssh/sshd_config
- 找到
#Port 22
行(通常在文件顶部),取消注释并添加新端口:Port 22 # 保留旧端口(暂时不删除) Port 2222 # 添加新端口(确保无空格)
📌 关键提示:- 同时保留旧端口
22
和新端口2222
,避免当前会话被断开后无法连接! - 完成后按
Ctrl + X
→ 输入Y
保存。
- 同时保留旧端口
步骤 3:配置防火墙放行新端口
根据你的防火墙类型操作:
- firewalld(CentOS/RHEL):
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
- ufw(Ubuntu/Debian):
sudo ufw allow 2222 sudo ufw reload
- iptables:
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT sudo service iptables save # 保存规则(系统需支持)
步骤 4:重启 SSH 服务生效
sudo systemctl restart sshd # Ubuntu/Debian
# 或
sudo systemctl restart ssh # CentOS/RHEL
步骤 5:测试新端口连接
- 新建终端窗口,尝试通过新端口连接服务器:
ssh -p 2222 username@服务器IP
- 确认新端口连接成功后,返回服务器修改配置:
- 重新编辑
/etc/ssh/sshd_config
- 删除旧端口行
Port 22
,只保留Port 2222
- 再次重启 SSH 服务
- 重新编辑
⚠️ 关键注意事项
- 避免立即删除旧端口:确保新端口测试成功后再关闭
22
,防止被锁在服务器外! - 端口冲突检查:使用
ss -tunlp | grep ':2222'
确认端口未被占用。 - SELinux 影响(CentOS/RHEL):
sudo semanage port -a -t ssh_port_t -p tcp 2222
- 云服务器安全组:在阿里云/AWS等平台需手动开放新端口(登录控制台配置)。
最终:关闭旧端口(可选)
新端口稳定后,可在防火墙中关闭 22
端口:
sudo ufw delete allow 22 # Ubuntu
sudo firewall-cmd --remove-port=22/tcp --permanent # CentOS
✅ 修改完成! SSH 服务已迁移到新端口,安全性提升。