修改 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
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
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
systemctl status sshd
ss -tlnp | grep sshd |
如果输出中能看到你设置的新端口号,说明修改成功了。
2.3 配置 ufw 防火墙(如果启用了的话)
搬瓦工默认系统一般没有启用 ufw。但如果你之前手动启用了 ufw,那么必须先放行新端口,否则新端口的流量会被防火墙拦截:
| # 检查 ufw 状态
ufw status
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 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
# yum install -y policycoreutils-python
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
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
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地址
# 在连接设置中将端口改为 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 能用,留好退路。
如果在操作过程中遇到问题,可以在本站评论区留言,或者加入搬瓦工交流群一起讨论。
搬瓦工中文网 — 做专业的搬瓦工中文教程站