要修改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 服务已迁移到新端口,安全性提升。
