宝塔面板SSH端口修改是指通过宝塔面板的安全管理功能,将SSH远程登录服务默认使用的22端口更换为自定义端口,从而降低自动化扫描、暴力免费和恶意登录攻破的风险。
修改前的必要准备
在修改SSH端口之前,需要确认当前服务器具备以下条件:已经安装并可以正常登录宝塔面板,当前可以通过SSH工具正常连接服务器,服务器防火墙处于可控状态,云服务商安全组规则可以自行调整,如果不满足以上条件,建议先完善环境,否则修改端口后可能无法远程连接。
同时需要提前规划新端口号,端口范围通常选择1024到65535之间的未占用端口,避免使用常见服务端口,例如21、25、80、443、3306、6379、8888等,推荐使用20000以上、不与其他业务冲突的端口,例如22022、22222、50022等,可以在服务器内执行以下命令查看已占用端口:

ss-tlnp
确认新端口未被占用后再进行修改。
通过宝塔面板修改SSH端口
登录宝塔面板后,在左侧菜单中点击“安全”,进入安全设置页面,页面中可以看到“SSH管理”区域,显示当前SSH端口、运行状态以及操作按钮,默认情况下,SSH端口显示为22。
在“SSH端口”输入框中填写新的端口号,例如22022,点击“修改”按钮,宝塔面板会验证端口号是否合法,如果端口号超出范围或已被占用,页面会给出提示,保存成功后,面板会显示新的SSH端口。
修改完成后,宝塔面板可能不会自动重启SSH服务,部分版本的宝塔面板会在修改后自动重启SSH服务,使设置立即生效,如果面板没有自动处理,可以进入服务器执行以下命令重启SSH服务:
systemctlrestartsshd
CentOS 6等使用SysVinit的系统使用:
servicesshdrestart
重启完成后,当前已建立的SSH连接通常不会立即断开,但新建立的连接必须使用新端口,此时不要关闭当前SSH会话,先完成后续防火墙放行与验证步骤。
放行新端口的防火墙规则
修改SSH端口后,如果服务器开启了系统防火墙,需要放行新端口,否则即使SSH服务已经监听新端口,外部也无法连接,宝塔面板通常带有防火墙管理功能,可以在面板的“安全”页面中查看防火墙状态,并手动添加端口规则。
在“安全”页面找到“防火墙”区域,点击“添加端口规则”,协议选择TCP,端口填写新端口号,例如22022,策略选择允许,来源可以选择所有IP或特定IP,添加后保存即可。
如果服务器使用firewalld防火墙,也可以通过命令行放行:
firewall-cmd--permanent--add-port=22022/tcp firewall-cmd--reload
使用iptables的系统可以执行:
iptables-AINPUT-ptcp--dport22022-jACCEPT serviceiptablessave
如果服务器属于云服务商,例如阿里云、腾讯云、华为云等,除了系统防火墙外,还需要在云控制台的安全组中放行新端口,进入云服务器控制台,找到安全组规则,添加入方向规则,协议类型选择TCP,端口范围填写22022,授权对象根据实际需求填写,通常为0.0.0.0/0或指定IP,保存后等待规则生效。
验证新端口是否可用
完成以上步骤后,需要使用新端口测试SSH连接是否正常,不要关闭当前已连接的SSH会话,而是新开一个终端窗口,使用以下命令连接:
ssh-p22022root@服务器IP
如果提示输入密码或密钥,并且能够成功进入服务器,说明新端口已经生效,防火墙放行正确,如果连接超时或提示拒绝连接,需要检查SSH服务是否重启成功、新端口是否监听、系统防火墙和云安全组是否放行。
可以在服务器内执行以下命令检查SSH监听状态:
ss-tlnp|grepsshd
输出中应该包含类似22022的监听地址,表示SSH服务已经监听新端口,如果仍然显示22端口,说明SSH配置文件未修改成功,需要检查宝塔面板保存结果或手动修改配置文件。
通过命令行修改SSH端口
如果宝塔面板的SSH管理功能无法使用,或者希望直接修改配置文件,也可以通过命令行完成,SSH服务的主要配置文件为/etc/ssh/sshd_config,修改前建议先备份:
cp/etc/ssh/sshd_config/etc/ssh/sshd_config.bak
使用文本编辑器打开配置文件:
vi/etc/ssh/sshd_config
找到以下行:
#Port22
去掉行首的注释,并将22改为新端口,
Port22022
如果配置文件中没有Port行,可以直接在文件开头添加一行Port 22022,保存并退出后,重启SSH服务:
systemctlrestartsshd
重启后同样需要放行防火墙端口并验证连接,命令行修改与宝塔面板修改本质相同,宝塔面板最终也是通过修改SSH配置文件实现端口变更。
关闭旧端口的注意事项
在新端口验证可用后,为了进一步减少暴露面,可以关闭旧的22端口,关闭方式包括在系统防火墙中删除或禁用22端口规则,在云安全组中删除22端口入方向规则,或者在SSH配置文件中删除Port 22行并重启SSH服务。
如果使用系统防火墙,可以删除22端口规则:
firewall-cmd--permanent--remove-port=22/tcp firewall-cmd--reload
在云安全组中,删除或禁用22端口的入方向规则即可,关闭旧端口前务必确认新端口可以正常连接,并且至少保留一个活跃的SSH会话,防止因误操作导致服务器无法远程管理。
常见连接失败原因
修改SSH端口后如果无法连接,常见原因包括:SSH服务没有重启成功,配置文件语法错误,新端口被其他程序占用,系统防火墙未放行,云安全组未放行,SELinux策略限制,部分安全软件拦截等。
可以通过以下顺序排查:
在服务器内执行
ss -tlnp | grep sshd,确认SSH是否监听新端口。执行
systemctl status sshd,检查SSH服务运行状态。执行
firewall-cmd --list-ports,确认新端口已在防火墙放行列表。登录云控制台检查安全组入方向规则是否包含新端口。
检查
/etc/ssh/sshd_config中是否存在多个Port行,如果有,SSH会同时监听多个端口,需确保新端口配置正确。
端口修改后的安全建议
修改SSH端口能够减少大量自动化扫描流量,但并不能完全替代其他安全措施,建议同时启用SSH密钥认证,禁止root账号直接登录,限制登录IP范围,安装fail2ban等防暴力免费工具,定期更新系统和SSH服务版本,如果业务允许,还可以使用梯子或跳板机进一步隐藏SSH入口。
宝塔面板自身也需要设置安全入口、绑定域名、开启面板SSL、限制登录IP等,避免面板本身成为攻破目标,修改SSH端口只是服务器安全加固的第一步,配合其他措施才能构建更完整的防护体系。
完成以上配置后,新建立的SSH连接应使用自定义端口,默认22端口不再开放,原有会话断开前,请务必确保已保存所有必要配置,并记录新端口号,避免遗忘导致无法登录服务器。