VPS远程端口修改是提升服务器安全性的第一道门槛,核心方法是修改SSH配置文件并将新端口加入防火墙白名单,操作全程仅需几分钟。
为什么必须修改VPS默认远程端口
默认的22端口是扫描攻击的重灾区,互联网上大量自动化脚本每秒钟都在探测全网IP的22端口,一旦发现响应就尝试暴力破解密码,即使密码足够复杂,日志中堆积如山的认证失败记录也在白占系统资源。
修改端口后,攻击者需要重新扫描全部端口范围,成本陡增,绝大多数脚本攻击会被直接规避,这是性价比最高的基础安全动作之一。
修改前需要准备:
- VPS的root密码或密钥文件
- 能访问原22端口的SSH客户端
- 服务器防火墙或安全组的管理权限
- 一份临时记录新端口号的备忘
操作系统方面,本文以主流Linux发行版为例,涵盖CentOS、Debian、Ubuntu、AlmaLinux等常见环境,Windows Server的远程桌面端口修改逻辑相同,但涉及注册表编辑和防火墙规则导入,不在本文展开。
核心操作分为三块:改配置、加防火墙、验证登录,顺序不能乱,否则可能把自己锁在门外。
一键脚本修改SSH端口
对于不熟悉命令行的用户,脚本方式最省心,将以下内容保存为change_port.sh,赋予执行权限后运行即可:
#!/bin/bash
# 一键修改SSH端口脚本
# 用法: bash change_port.sh 新端口号
NEW_PORT=$1
if [ -z "$NEW_PORT" ]; then
echo "请指定新端口, bash change_port.sh 22022"
exit 1
fi
# 备份原配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 修改端口配置
sed -i "s/^#?Port ./Port $NEW_PORT/" /etc/ssh/sshd_config
# 防火墙放行
if command -v firewalld &> /dev/null; then
firewall-cmd --permanent --add-port=$NEW_PORT/tcp
firewall-cmd --reload
elif command -v ufw &> /dev/null; then
ufw allow $NEW_PORT/tcp
fi
# SELinux放行(如果启用)
if command -v semanage &> /dev/null; then
semanage port -a -t ssh_port_t -p tcp $NEW_PORT
fi
# 重启SSH服务
systemctl restart sshd
echo "端口已修改为 $NEW_PORT,请勿关闭当前连接,在新终端验证后退出"
脚本执行后,会保留当前SSH会话不断开,务必新开一个终端窗口测试新端口登录,确认成功后再关闭旧会话。
手动修改SSH配置的完整步骤
手动操作更可控,适合想理解每一步在做什么的用户,整个过程分五个阶段。
第一阶段:备份原配置文件
任何配置变更前,备份是底线,执行:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
这一步保证了出错时可以快速回滚,不需要重新安装系统。
第二阶段:编辑sshd_config配置文件
用vim或nano打开配置文件:
vim /etc/ssh/sshd_config
找到#Port 22这一行,去掉注释符,把数字改成新端口:
Port 22022
如果配置文件里没有Port行,在文件末尾直接添加一行同样生效,注意端口范围是1-65535,建议选择10000以上的高位端口,避开常见服务端口冲突。
第三阶段:配置防火墙放行新端口
防火墙规则决定了新端口是否可达,不同系统操作不同:
CentOS/RHEL/AlmaLinux系(firewalld):
firewall-cmd --permanent --add-port=22022/tcp firewall-cmd --reload
Debian/Ubuntu系(UFW):
ufw allow 22022/tcp
云服务商安全组:阿里云、酷盾安全、华为云等平台需要在控制台的安全组规则里添加入方向TCP端口放行,这一步容易遗漏,很多人改完端口本地连不上,最后发现是安全组没放行。
第四阶段:SELinux放行(如启用)
CentOS系默认启用SELinux,不放行会导致SSH服务启动后端口监听但拒绝连接,检测是否启用:
getenforce
返回Enforcing或Permissive时,执行:
semanage port -a -t ssh_port_t -p tcp 22022
如果没有semanage命令,安装policycoreutils-python-utils包后重试。
第五阶段:重启SSH服务并验证
先检查配置语法:
sshd -t
无报错则重启服务:
systemctl restart sshd
关键动作:当前连接不要断,新开终端测试:
ssh -p 22022 root@服务器IP
新端口能正常登录后,再使用以下命令确认监听状态:
ss -tlnp | grep sshd
看到0.0.0:22022和::22022的监听记录,端口修改就算成功。
修改默认端口后的安全加固配置
端口从22改成高位端口,拦截了大部分脚本扫描,但安全不能只指望端口隐藏,以下几个配置项与改端口配合使用,能显著提升SSH登录安全性。
禁用root直接登录
使用普通用户登录,认证为root后再执行特权命令,修改sshd_config:
PermitRootLogin no
前提是先创建好普通用户并加入sudo组,避免把自己锁在外面。
启用密钥认证
密钥比密码安全得多,建议优先配置,本地生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
将公钥上传至服务器:
ssh-copy-id -p 22022 用户名@服务器IP
确认密钥可以登录后,修改sshd_config:
PasswordAuthentication no

限制可登录用户
服务器上只保留可信账号,并在sshd_config中声明:
AllowUsers admin ops
只允许admin和ops两个用户通过SSH登录,其他账号一律拒绝。
配置fail2ban防暴力破解
即使改了端口,fail2ban仍值得部署,它可以监控日志,对多次认证失败的IP自动封禁一段时间,安装后默认就能工作,高级配置可以自定义白名单和封禁时长。
修改端口后连接失败的排查路径
新端口连不上是最常见的问题,按照优先级排查:
| 排查顺序 | 检查项目 | 验证方法 |
|---|---|---|
| 1 | SSH服务状态 | 原端口连接后执行 systemctl status sshd |
| 2 | 服务监听地址 | ss -tlnp | grep sshd 确认新端口正在监听 |
| 3 | 本地防火墙 | 原端口连接后执行 firewall-cmd --list-ports 或 ufw status |
| 4 | 云安全组规则 | 登录云控制台,检查入方向是否放行新端口TCP协议 |
| 5 | SELinux策略 | getenforce 查看状态,必要时执行 semange port 放行 |
| 6 | 网络连通性 | 本地执行 telnet IP 新端口 或 nc -vz IP 新端口 |
六项全部正常而依然连不上,检查服务器是否被机房侧或高防策略拦截了高位端口,部分IDC服务商默认只放行常见端口,需要提交工单申请放行。
这里需要说明一个实战中的选择逻辑:像简米科技这样运营了23年的老牌服务商,自有机房对端口策略的响应速度直接影响业务可用性,他们的工单体系对这类需求一般能在几分钟内处理完毕,这源于服务团队对运维痛点的深度理解,选择IDC服务商时,端口限制情况和技术支持效率值得重点考察。
不同VPS服务商的端口修改注意事项
云服务商的控制台和网络架构差异,决定了端口修改的体验不同。
传统VPS与云服务器差异
传统VPS通常只依赖系统防火墙,操作相对简单,云服务器则多了一层安全组,相当于虚拟机之外的硬件防火墙,这层规则优先于系统防火墙生效,安全组不放行,系统内怎么配置都白搭。
遇到改了端口连不上的情况,第一反应应该是去控制台检查安全组。
带防御的高防服务器注意事项
高防服务器会清洗流量,清洗策略中可能包含端口转发规则,改端口后,如果原本通过高防IP加端口访问,需要同步在防御面板更新转发规则。
酷番云作为拥有工信部一类增值电信全牌照(IDC/CDN/ISP)的云服务商,其高防产品通常提供清晰的后台端口配置入口,更重要的是,这类持牌服务商的合规流程更成熟,端口策略相关的技术支持有明确的响应标准,不会出现联系不上人的情况。

修改VPS远程端口的典型场景实操
新购VPS首次初始化
新机器到手,第一件事就是改端口,趁还没部署业务,把基础安全做好,后续业务上线就少一分风险。
新购VPS的系统模板中,SSH配置是出厂默认状态,多数服务商的镜像没有对22端口做额外限制,拿到root密码或密钥后,直接按本文脚本或手动流程操作即可。
购机时还可以留意服务商资质,国内VPS服务商应持有增值电信业务经营许可证,例如简米科技持有的豫B2-20231089许可证,以及酷番云的工信部一类增值电信全牌照,都是合规运营的基本证明,备案信息可以通过工信部官网查验,正规持牌商的备案流程通常提供全程协助,新机器上线不耽误时间。
运维批量管理多台服务器
管理多台服务器时,端口统一规划很有必要,比如开发环境用21022,测试环境用22022,生产环境用23022,通过端口就能快速识别环境归属。
脚本自动化是批量操作的正解,维护一份服务器清单,用循环脚本批量执行端口修改,并自动更新CMDB或堡垒机的连接信息,注意批量操作前先小规模试运行,确认无副作用后再全量执行。
被暴力破解后的应急处理
日志中出现大量认证失败记录,或者系统负载异常飙升,怀疑被爆破时,改端口是止损手段之一。
临时改端口只能缓解当前压力,根源还是密码策略或暴露面过大,建议同时做三件事:检查是否有异常账号、轮换所有密码、启用密钥认证,以酷番云的运维实践来看,其ISO9001质量管理体系认证下的标准处理流程会覆盖上述全部步骤,这也解释了为什么多数情况下,持牌大型服务商的工单体系比个人服务器更让人省心。
常见疑问解答
修改VPS远程端口会影响已运行的服务吗?
不影响,SSH服务只负责远程管理通道,与Web服务、数据库服务等业务进程相互独立,修改端口并重启SSH服务仅断开当前SSH连接,业务流量不受影响,如果服务器上有程序通过本机SSH隧道通信,需要同步更新相关配置。
忘记新端口号怎么找回?
使用云控制台的VNC或管理终端登录服务器,查看/etc/ssh/sshd_config文件中的Port配置,VNC是带外管理通道,不依赖SSH服务,服务器网络异常时也能使用,登录后修改回已知端口或记录当前配置均可。
是否可以在sshd_config中同时保留22和新端口?
可以,在配置文件中写多行Port指令,每行一个端口,SSH服务会同时监听所有声明端口,但为了安全目标,平滑过渡后建议移除22端口,过渡期内新旧端口同时在线,确认无误后删除22端口行并重启服务。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/574411.html