外贸站宝塔面板修改SSH端口拦截扫描
外贸网站服务器经常被扫描工具盯上,默认的22端口每小时可能收到几百次暴力破解尝试。
修改SSH端口是阻断大部分扫描的有效方法。
宝塔面板提供了图形化修改入口,但很多人不知道改完就断连。
这篇教程从准备到验证一步到位,零基础也能操作。
操作前先确认这三项
- 你有服务器的root或sudo权限,并且当前通过SSH远程连接正常。
- 宝塔面板已经安装并可以登录后台。
- 你记得云服务商(如阿里云、腾讯云)安全组的登录方式,因为后面可能需要手动放行端口。
注意:如果你是通过云平台的安全组管理端口,只改服务器的防火墙没用,两边都要放行。
分步操作:面板+命令行双保险
第一步:在宝塔面板里修改SSH端口
登录宝塔面板,依次点击左侧菜单栏的 安全 → SSH管理(部分版本叫“SSH配置”)。
- 找到“SSH端口”输入框,把22改成你想用的端口号,比如2222。
- 点击“修改”或“保存”。
- 面板会自动修改服务器端的
/etc/ssh/sshd_config文件,但为了保险,我们还是手动检查一下。
第二步:手动修改SSH配置文件(防止面板遗漏)
用SSH连接服务器(此时端口还是22),执行:
sudo vi /etc/ssh/sshd_config
找到 #Port 22 这一行,去掉注释并改成:
Port 22
Port 2222
注意:先保留旧端口,等新端口验证成功后再删除。 保存退出。
第三步:重启SSH服务并添加防火墙放行规则
重启SSH服务:
sudo systemctl restart sshd
添加防火墙放行新端口(以firewalld为例):
sudo firewall-cmd --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
如果你用的是宝塔面板的安全防火墙,去 安全 → 防火墙规则 里添加一条允许2222端口TCP入站的规则。
第四步:云安全组放行
登录你的云服务器控制台,找到安全组或防火墙,添加入方向规则:
- 协议:TCP
- 端口:2222
- 来源:0.0.0.0/0(或者只允许你的IP)
这一步不能省,否则新端口仍然无法连接。
避坑指南:改完别把自己锁外面
- 先测试新端口:不要马上删除旧端口22。新开一个终端窗口,用
ssh -p 2222 用户名@服务器IP测试,能连接成功再回配置文件里注释或删除Port 22,然后重启sshd。 - 不要同时改多个配置:有些用户会同时改端口、禁用密码登录、修改PermitRootLogin,一旦某个参数出错,所有SSH连接都进不去。建议一步步来,每一步验证通过后再继续。
- 保持一个SSH会话:在修改过程中,始终保留一个已经连接的SSH窗口不要关闭,万一新的端口连不上,还能通过旧会话恢复配置。
验证效果:确认端口已变更,扫描被拦截
检查端口监听状态
运行以下命令查看sshd是否在监听新端口:
sudo netstat -tlnp | grep sshd
输出应该同时显示22和2222(如果还没删除旧端口)或只有2222。
检查外部连接是否正常
从另一台机器执行:
ssh -v -p 2222 用户名@服务器IP
出现 Authentication succeeded 说明成功。
查看扫描拦截情况
宝塔面板的“安全” → “SSH日志”可以查看最近失败的登录尝试。
如果之前22端口每分钟有几条failed password记录,改端口后应该骤降。
也可以直接看系统日志:
sudo tail -f /var/log/auth.log | grep 'Failed password'
如果新端口几乎没有失败记录,说明拦截扫描生效了。
常见问题(改端口后连不上怎么办)
- 紧急恢复:通过云服务商的VNC控制台或救援模式连接服务器,将
/etc/ssh/sshd_config里的端口改回22,重启sshd,然后放行安全组端口。 - 防火墙没放行:检查
firewall-cmd --list-all或宝塔防火墙列表,2222端口是否在允许列表。 - SELinux干扰:执行
sudo setenforce 0临时关闭SELinux看能否连接,如果能,再修改SELinux策略。
修改SSH端口是外贸站安全加固的第一步,建议配合fail2ban或宝塔的SSH防爆破插件进一步提升防护能力。
如果你在操作中遇到其他报错,可以对照本文的步骤逐条排查。