VPS的22端口被墙后如何更换SSH端口?
| 步骤 |
操作说明 |
使用工具提示 |
| 1 |
备份SSH配置文件 |
cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.bak |
| 2 |
编辑配置文件修改端口 |
vi /etc/ssh/sshdconfig (查找并修改Port 22行) |
| 3 |
重启SSH服务使配置生效 |
systemctl restart sshd (CentOS7) 或 service ssh restart (旧版) |
| 4 |
更新防火墙规则放行新端口 |
firewall-cmd --add-port=新端口/tcp --permanent |
VPS的22端口被墙后的SSH端口更换指南
当VPS的22端口被墙时,SSH连接将无法正常使用。这种情况下,更换SSH端口是最直接的解决方案。以下是详细的操作步骤和注意事项:
一、更换SSH端口的详细步骤
- 备份SSH配置文件
在修改任何配置文件前,务必先进行备份:
cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.bak
- 编辑SSH配置文件
使用文本编辑器(如vi或nano)打开配置文件:
vi /etc/ssh/sshdconfig
找到
#Port 22这一行,删除行首的
#符号,并将端口号修改为您想要使用的新端口号(建议选择1024-65535之间的高位端口):
Port 2222
- 重启SSH服务
修改完成后,需要重启SSH服务使更改生效:
systemctl restart sshd # CentOS7及以上版本
# 或
service ssh restart # 旧版Linux系统
- 更新防火墙规则
确保新端口在防火墙中已放行:
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --reload
- 测试新端口连接
在确保新端口可以正常连接后,建议删除配置文件中的
Port 22行,彻底关闭默认端口。
二、常见问题及解决方案
| 问题 |
原因 |
解决方案 |
| 修改后无法连接SSH |
防火墙未放行新端口 |
检查防火墙规则,确保新端口已放行 |
| 连接被拒绝 |
SSH服务未正确重启 |
确认SSH服务已重启且无报错 |
| 端口冲突 |
新端口被其他服务占用 |
使用netstat -tuln检查端口占用情况 |
| SELinux阻止连接 |
SELinux安全策略限制 |
使用semanage port添加新端口到白名单 |
三、注意事项
- 端口选择建议
- 避免使用常见服务端口(如80、443等)
- 建议选择5位数的随机端口(如10000-65535之间)
- 不要立即删除默认22端口,确保新端口可用后再关闭
- 安全增强建议
- 同时禁用root登录(
PermitRootLogin no)
- 启用密钥认证(
PasswordAuthentication no)
- 配置fail2ban防止暴力破解
- 多端口配置
如果需要同时保留多个SSH端口,可以在配置文件中添加多行:
Port 22
Port 2222
四、工具推荐
- 端口扫描工具
- SSH客户端
- 防火墙管理工具
- firewalld(CentOS7+)
- ufw(Ubuntu)
- iptables(传统Linux系统)
通过以上步骤,您可以成功更换VPS的SSH端口,解决22端口被墙的问题。操作时请务必谨慎,建议先在测试环境中验证后再应用到生产环境。
发表评论