VPS如何修改22端口?_详细脚本与安全配置指南
如何安全修改VPS的22端口?有哪些脚本和注意事项?
| 步骤 | 操作说明 | 使用工具 | 命令示例 |
|---|---|---|---|
| 1. 备份配置文件 | 修改前备份SSH配置文件 | cp命令 | cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.backup |
| 2. 编辑配置文件 | 修改sshdconfig文件,添加新端口 | vi/vim编辑器 | vi /etc/ssh/sshdconfig 添加 Port 12345 |
| 3. 配置防火墙 | 放行新端口 | iptables/firewalld | iptables -A INPUT -p tcp --dport 12345 -j ACCEPT |
| 4. 重启SSH服务 | 使配置生效 | systemctl/init.d | systemctl restart sshd |
| 常见问题 | 原因 | 解决方案 | |
| ———- | —— | ———- | |
| 端口绑定失败 | SELinux限制 | 使用semanage port -a -t sshportt -p tcp 新端口 |
|
| 无法连接新端口 | 防火墙未放行 | 检查防火墙规则firewall-cmd --list-ports |
|
| 服务启动失败 | 端口冲突 | 检查netstat -tuln确认端口占用 |
VPS修改22端口的完整操作指南
为什么要修改默认SSH端口?
默认的22端口是SSH服务的标准端口,也是恶意扫描和暴力破解的主要目标。通过修改默认端口,可以显著提高服务器的安全性,减少不必要的登录尝试。修改前的准备工作
- 确保当前SSH连接正常:建议在修改前保持当前SSH连接不中断,直到确认新端口可用。
- 选择新端口号:建议使用1024-65535之间的端口,避免常见服务端口(如80、443等)。
- 备份配置文件:这是关键步骤,防止配置错误导致无法连接。
详细操作步骤
1. 备份SSH配置文件
cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.backup
2. 编辑配置文件
使用vi或vim编辑器打开配置文件:vi /etc/ssh/sshdconfig
找到#Port 22行,取消注释并添加新端口:
Port 22
Port 12345
3. 配置防火墙
根据系统防火墙类型选择相应命令: iptables防火墙:iptables -A INPUT -p tcp --dport 12345 -j ACCEPT
service iptables save
firewalld(CentOS7+):
firewall-cmd --permanent --zone=public --add-port=12345/tcp
firewall-cmd --reload
4. 重启SSH服务
systemctl restart sshd
或旧版系统
/etc/init.d/sshd restart
5. 验证新端口
在新终端窗口测试连接:ssh -p 12345 username@yourserverip
确认连接成功后,可以返回配置文件删除Port 22行,彻底禁用默认端口。
常见问题解决方案
- 端口绑定失败(Permission denied)
- 原因:SELinux限制
- 解决:
semanage port -a -t sshportt -p tcp 12345
- 无法连接新端口
- 检查防火墙规则:
firewall-cmd --list-ports - 确认安全组/云控制台已放行端口
- 服务启动失败
- 检查端口冲突:
netstat -tuln - 查看错误日志:
journalctl -xe
自动化脚本示例
以下是一个简单的bash脚本,可自动完成端口修改过程:#!/bin/bash
NEWPORT=$1
if [ -z "$NEWPORT" ]; then
echo "Usage: $0 "
exit 1
fi
备份配置文件
cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.bak
修改配置
sed -i "/^#Port 22/a Port $NEWPORT" /etc/ssh/sshdconfig
防火墙配置
if [ -x "$(command -v firewall-cmd)" ]; then
firewall-cmd --permanent --zone=public --add-port=$NEWPORT/tcp
firewall-cmd --reload
elif [ -x "$(command -v iptables)" ]; then
iptables -A INPUT -p tcp --dport $NEWPORT -j ACCEPT
service iptables save
fi
重启服务
systemctl restart sshd
echo "SSH端口已修改为 $NEWPORT"
使用方式:chmod +x modifysshport.sh && ./modifysshport.sh 12345
安全建议
- 保留原端口一段时间:确保新端口正常工作后再禁用22端口
- 使用密钥认证:比密码更安全
- 限制访问IP:通过防火墙或/etc/hosts.allow限制特定IP访问
- 定期检查日志:
tail -f /var/log/secure监控异常登录尝试
发表评论