搬瓦工VPS 修改 SSH 端口教程
前言
搬瓦工的 VPS 在购买并安装系统后,SSH 端口号是随机分配的,并不是常见的默认 22 端口。虽然随机端口本身已经比固定 22 端口更安全一些,但在实际使用中,我们仍然会遇到需要修改 SSH 端口的情况。
最常见的场景有两个:一是 SSH 端口被封,导致无法连接 VPS;二是出于安全考虑,想要自定义一个特定的端口。不管是哪种原因,修改 SSH 端口的操作本身并不复杂,但不同操作系统之间存在一些细节差异,稍不注意可能会把自己锁在门外。
本文将分别介绍在 CentOS、Rocky Linux、Ubuntu 等搬瓦工常用系统上修改 SSH 端口的完整步骤,同时也会讲解如何配合 KiwiVM 控制面板进行操作,确保即使改错了也有办法补救。
一、准备工作
1.1 确认当前 SSH 端口
搬瓦工 VPS 的 SSH 连接信息(IP 地址、端口号)可以在 KiwiVM 控制面板中查看。登录方法如下:
1. 登录搬瓦工官网,进入 Client Area
2. 点击 Services → My Services,找到你的 VPS 套餐
3. 点击 Open KiwiVM 进入 KiwiVM 控制面板
4. 在面板首页即可看到 IP Address 和 SSH Port 信息
如果你已经能通过 SSH 客户端连接到 VPS,也可以直接在终端中查看当前端口:
# 查看当前 SSH 监听端口
ss -tlnp | grep sshd
# 或者查看 sshd 配置文件中的端口设置
grep -i "^Port" /etc/ssh/sshd_config
1.2 选择新端口号
端口号的有效范围是 1 到 65535。选择新端口时,需要注意以下几点:
- 避免使用常见服务端口:如 22(SSH 默认)、80(HTTP)、443(HTTPS)、3306(MySQL)、8080 等
- 建议选择高位端口:1024 到 65535 之间的端口,且尽量选择 10000 以上的随机数字,如 28456、39721 等
- 避免与搬瓦工系统服务冲突:搬瓦工部分端口可能被内部服务占用,选择一个不常见的高位端口即可
提示:建议用一个自己能记住但别人猜不到的端口,比如 5 位数的随机端口。不要使用网上教程中的示例端口(如 2222),因为这些端口同样会被扫描工具覆盖到。
1.3 了解 KiwiVM 应急通道
这一步很重要。在修改 SSH 端口之前,你需要确认自己知道如何通过 KiwiVM 面板进入系统。因为一旦 SSH 端口改错了或者防火墙配置有误导致连不上 SSH,KiwiVM 的 Root shell 功能就是你的救命稻草。
KiwiVM 控制面板提供了三种在线 Shell 工具:
功能名称说明
Root shell - basic简易命令行,输入单条命令后回车执行,适合简单操作
Root shell - advanced高级命令行,支持复制粘贴,适合执行较长的命令
Root shell - interactive交互式 VNC 终端,最接近真实终端体验,支持 vi 编辑器等交互操作
这三个工具都不依赖 SSH 连接,直接通过网页操作 VPS。所以即使 SSH 完全连不上,也可以通过 KiwiVM 进入系统修复配置。改端口之前先试试这几个功能,确保它们能正常使用。
重要提醒:如果你通过 Root shell - interactive(VNC)登录,请注意:用户名输入 root,密码是你的 root 密码(输入时不会显示任何字符,这是正常的)。如果忘记了 root 密码,可以在 KiwiVM 左侧菜单的 Root password modification 中重置。
二、Ubuntu / Debian 修改 SSH 端口
Ubuntu 和 Debian 是搬瓦工上最常用的操作系统之一,操作也相对简单。这两个系统默认不启用 SELinux,防火墙工具一般是 ufw(如果安装了的话)。搬瓦工默认安装的系统通常没有启用 ufw,所以在大多数情况下只需要修改配置文件并重启服务即可。
2.1 修改 sshd_config
通过 SSH 或 KiwiVM Root shell 登录 VPS 后,执行以下命令:
# 备份配置文件(养成好习惯)
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑 SSH 配置文件
vi /etc/ssh/sshd_config
在文件中找到 #Port 22 这一行(可能被注释掉了),去掉前面的 #,然后将 22 改成你想要的端口号。例如改成 28456:
Port 28456
如果你使用 vi 编辑器:按 i 进入编辑模式,修改完成后按 Esc,然后输入 :wq 回车保存退出。
安全建议:在确认新端口可用之前,建议先保留 22 端口不删除,而是同时监听两个端口。等新端口连接测试成功后,再回来删掉 Port 22 那行。这样可以避免把自己锁在外面。
2.2 重启 SSH 服务
# 重启 SSH 服务使配置生效
systemctl restart sshd
# 检查 SSH 服务状态
systemctl status sshd
# 确认新端口已在监听
ss -tlnp | grep sshd
如果输出中能看到你设置的新端口号,说明修改成功了。
2.3 配置 ufw 防火墙(如果启用了的话)
搬瓦工默认系统一般没有启用 ufw。但如果你之前手动启用了 ufw,那么必须先放行新端口,否则新端口的流量会被防火墙拦截:
# 检查 ufw 状态
ufw status
# 如果 ufw 是 active 状态,放行新端口
ufw allow 28456/tcp
# 确认放行成功后,可以删除旧端口的规则
ufw delete allow 22/tcp
# 重载防火墙
ufw reload
如果 ufw status 显示 inactive,那说明防火墙没有启用,跳过这一步即可。
三、CentOS 7/8 修改 SSH 端口
CentOS 的操作比 Ubuntu 多了两个环节:SELinux 和 firewalld。搬瓦工默认安装的 CentOS 系统通常启用了 SELinux(enforcing 模式),如果只修改了配置文件而没有处理 SELinux,重启 sshd 服务时会直接报错,这是很多新手踩坑的地方。
3.1 修改 sshd_config
这一步和 Ubuntu 完全一样:
# 备份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑
vi /etc/ssh/sshd_config
# 找到 Port 行,修改为新端口
Port 28456
3.2 处理 SELinux
这是 CentOS/RHEL 系操作系统的关键步骤。SELinux 默认只允许 SSH 使用 22 端口,如果你改成了其他端口但没有告知 SELinux,sshd 服务将无法启动。
首先检查 SELinux 状态:
# 查看 SELinux 当前状态
getenforce
如果输出是 Enforcing,那么必须执行以下操作。如果输出是 Disabled 或 Permissive,可以跳过这一步。
# 安装 SELinux 管理工具(如果 semanage 命令不存在)
yum install -y policycoreutils-python-utils
# CentOS 7 使用这个包名
# yum install -y policycoreutils-python
# 向 SELinux 添加新的 SSH 端口
semanage port -a -t ssh_port_t -p tcp 28456
# 验证端口是否添加成功
semanage port -l | grep ssh
正常情况下,输出应该包含你新增的端口号。比如:ssh_port_t tcp 28456, 22
3.3 配置 firewalld 防火墙
CentOS 默认使用 firewalld 作为防火墙。同样需要放行新端口:
# 检查 firewalld 是否运行
systemctl status firewalld
# 如果正在运行,添加新端口
firewall-cmd --permanent --add-port=28456/tcp
# 重载防火墙规则
firewall-cmd --reload
# 验证
firewall-cmd --list-ports
如果 firewalld 没有运行(inactive),同样可以跳过这一步。搬瓦工的部分系统镜像默认并未启用 firewalld。
3.4 重启 SSH 服务
# 重启 sshd
systemctl restart sshd
# 查看状态(确认没有报错)
systemctl status sshd
# 确认端口监听
ss -tlnp | grep sshd
四、Rocky Linux 9 / AlmaLinux 9 修改 SSH 端口
Rocky Linux 是 CentOS 停止维护后的主流替代方案,搬瓦工的系统模板中也已经提供了 Rocky Linux。操作方法与 CentOS 基本一致,但有一些小区别值得注意。
4.1 修改配置文件
Rocky Linux 9 引入了 /etc/ssh/sshd_config.d/ 目录来管理配置片段。你可以选择直接修改主配置文件,也可以在该目录下创建一个新的配置文件(推荐后者,更清晰):
# 方法一:创建一个自定义配置文件(推荐)
echo "Port 28456" > /etc/ssh/sshd_config.d/custom-port.conf
# 方法二:直接修改主配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vi /etc/ssh/sshd_config
# 找到 #Port 22,去注释并修改为 Port 28456
4.2 处理 SELinux
Rocky Linux 9 默认启用 SELinux enforcing 模式,操作与 CentOS 相同:
# 安装 SELinux 管理工具
dnf install -y policycoreutils-python-utils
# 添加新端口到 SELinux 策略
semanage port -a -t ssh_port_t -p tcp 28456
# 验证
semanage port -l | grep ssh
4.3 配置 firewalld
# 放行新端口
firewall-cmd --permanent --add-port=28456/tcp
firewall-cmd --reload
# 可选:如果不再使用 22 端口,移除默认的 ssh 服务
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload
4.4 重启并验证
# 先检查配置是否有语法错误
sshd -t
# 没有报错再重启
systemctl restart sshd
systemctl status sshd
ss -tlnp | grep sshd
Rocky Linux 提供了 sshd -t 命令来预检配置文件语法,建议在重启之前先跑一下,避免因为配置错误导致服务起不来。
五、各系统操作对比速查
操作步骤Ubuntu / DebianCentOS 7/8Rocky Linux 9
配置文件/etc/ssh/sshd_config/etc/ssh/sshd_configsshd_config.d/ 或主配置
SELinux无需处理semanage port -a -t ssh_port_t -p tcpsemanage port -a -t ssh_port_t -p tcp
防火墙ufw allow 端口/tcpfirewall-cmd ...firewall-cmd ...
重启服务systemctl restart sshdsystemctl restart sshdsystemctl restart sshd
预检命令sshd -tsshd -tsshd -t
包管理器aptyumdnf
六、验证与连接测试
修改完成后,先不要关闭当前的 SSH 会话。另外开一个终端窗口,用新端口尝试连接:
# Linux / macOS 终端
ssh -p 28456 root@你的IP地址
# Windows 使用 PuTTY / Xshell 等工具
# 在连接设置中将端口改为 28456 即可
如果能成功连接,说明修改生效了。此时可以安全地关闭旧会话,并在配置文件中删掉旧端口(如果之前保留了两个端口的话)。
如果连接失败,不要慌。保持旧会话不关闭,回去检查以下几点:
- 配置文件语法是否正确:运行 sshd -t 检查
- SELinux 是否放行了新端口:运行 semanage port -l | grep ssh 确认
- 防火墙是否放行了新端口:运行 firewall-cmd --list-ports 或 ufw status 确认
- sshd 服务是否正常运行:运行 systemctl status sshd 查看
七、改坏了连不上怎么办
如果你不幸把自己锁在了门外(SSH 完全连不上),别急,这种情况在搬瓦工上是完全可以救回来的。
7.1 通过 KiwiVM Root shell 修复
1. 登录搬瓦工官网,进入 KiwiVM 控制面板
2. 点击左侧菜单的 Root shell - interactive,然后点击 Launch
3. 在弹出的 VNC 窗口中用 root 账号登录
4. 执行修复命令:还原备份文件或重新修改端口
# 如果之前做了备份,直接还原
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
systemctl restart sshd
# 或者手动修改回正确的端口
vi /etc/ssh/sshd_config
7.2 终极方案:重装系统
如果实在搞不定,KiwiVM 面板还提供了一键重装系统的功能(Install new OS)。重装后所有数据会被清空,但至少 VPS 能恢复到可用状态。所以如果 VPS 上有重要数据,建议在修改端口之前先用快照(Snapshots)功能做一个备份。
八、额外安全建议
修改 SSH 端口只是服务器安全的第一步,建议在此基础上进一步加固:
- 使用 SSH 密钥登录,禁用密码认证:在 sshd_config 中设置 PasswordAuthentication no,搭配密钥对登录,安全性大幅提升
- 禁止 root 直接登录:创建普通用户,设置 PermitRootLogin no,通过 sudo 提权
- 安装 fail2ban:自动封禁多次尝试暴力破解的 IP,减少被攻击风险
- 定期更新系统:及时修补安全漏洞
- 使用搬瓦工快照功能:定期备份,出问题可快速恢复
以上就是搬瓦工 VPS 修改 SSH 端口的完整教程。总结一下核心要点:Ubuntu 最简单,改配置重启服务即可;CentOS 和 Rocky Linux 需要额外处理 SELinux 和 firewalld;改之前一定先确认 KiwiVM Root shell 能用,留好退路。
如果在操作过程中遇到问题,可以在本站评论区留言,或者加入搬瓦工交流群一起讨论。
页:
[1]