打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
Root留言 | 贡献2026年2月17日 (二) 08:46的版本 (创建页面,内容为“= 前言 = 搬瓦工的 VPS 在购买并安装系统后,SSH 端口号是随机分配的,并不是常见的默认 22 端口。虽然随机端口本身已经比固定 22 端口更安全一些,但在实际使用中,我们仍然会遇到需要修改 SSH 端口的情况。 最常见的场景有两个:一是 SSH 端口被封,导致无法连接 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

Port 28456

等新端口连接测试成功后,再回来删掉 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 / Debian CentOS 7/8 Rocky Linux 9
配置文件 /etc/ssh/sshd_config /etc/ssh/sshd_config sshd_config.d/ 或主配置
SELinux 无需处理 semanage port -a ... semanage port -a ...
防火墙 ufw allow 端口/tcp firewall-cmd ... firewall-cmd ...
重启服务 systemctl restart sshd systemctl restart sshd systemctl restart sshd
预检命令 sshd -t sshd -t sshd -t
包管理器 apt yum dnf

六、验证与连接测试

修改完成后,先不要关闭当前的 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 修复

5.     登录搬瓦工官网,进入 KiwiVM 控制面板

6.     点击左侧菜单的 Root shell - interactive,然后点击 Launch

7.     在弹出的 VNC 窗口中用 root 账号登录

8.     执行修复命令:还原备份文件或重新修改端口

# 如果之前做了备份,直接还原

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 能用,留好退路。

如果在操作过程中遇到问题,可以在本站评论区留言,或者加入搬瓦工交流群一起讨论。

搬瓦工中文网 — 做专业的搬瓦工中文教程站