打开/关闭搜索
搜索
打开/关闭菜单
54
706
71
2045
md5.pw
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
登录
请求账号
查看“︁修改 SSH 端口”︁的源代码
来自md5.pw
分享此页面
更多语言
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
修改 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,也可以直接在终端中查看当前端口: {| class="wikitable" |# 查看当前 SSH 监听端口 ss -tlnp | grep sshd <nowiki>#</nowiki> 或者查看 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 等 • '''避免与搬瓦工系统服务冲突:'''搬瓦工部分端口可能被内部服务占用,选择一个不常见的高位端口即可 {| class="wikitable" |'''提示''' 建议用一个自己能记住但别人猜不到的端口,比如 5 位数的随机端口。不要使用网上教程中的示例端口(如 2222),因为这些端口同样会被扫描工具覆盖到。 |} == 1.3 了解 KiwiVM 应急通道 == 这一步很重要。在修改 SSH 端口之前,你需要确认自己知道如何通过 KiwiVM 面板进入系统。因为一旦 SSH 端口改错了或者防火墙配置有误导致连不上 SSH,KiwiVM 的 '''Root shell''' 功能就是你的救命稻草。 KiwiVM 控制面板提供了三种在线 Shell 工具: {| class="wikitable" |'''功能名称''' |'''说明''' |- |'''Root shell - basic''' |简易命令行,输入单条命令后回车执行,适合简单操作 |- |'''Root shell - advanced''' |高级命令行,支持复制粘贴,适合执行较长的命令 |- |'''Root shell - interactive''' |交互式 VNC 终端,最接近真实终端体验,支持 vi 编辑器等交互操作 |} 这三个工具都'''不依赖 SSH 连接''',直接通过网页操作 VPS。所以即使 SSH 完全连不上,也可以通过 KiwiVM 进入系统修复配置。改端口之前先试试这几个功能,确保它们能正常使用。 {| class="wikitable" |'''重要提醒''' 如果你通过 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 后,执行以下命令: {| class="wikitable" |# 备份配置文件(养成好习惯) cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak <nowiki>#</nowiki> 编辑 SSH 配置文件 vi /etc/ssh/sshd_config |} 在文件中找到 #Port 22 这一行(可能被注释掉了),去掉前面的 #,然后将 22 改成你想要的端口号。例如改成 28456: {| class="wikitable" |Port 28456 |} 如果你使用 vi 编辑器:按 '''i''' 进入编辑模式,修改完成后按 '''Esc''',然后输入 ''':wq''' 回车保存退出。 {| class="wikitable" |'''安全建议''' 在确认新端口可用之前,建议先保留 22 端口不删除,而是同时监听两个端口: Port 22 Port 28456 等新端口连接测试成功后,再回来删掉 Port 22 那行。这样可以避免把自己锁在外面。 |} == 2.2 重启 SSH 服务 == {| class="wikitable" |# 重启 SSH 服务使配置生效 systemctl restart sshd <nowiki>#</nowiki> 检查 SSH 服务状态 systemctl status sshd <nowiki>#</nowiki> 确认新端口已在监听 ss -tlnp | grep sshd |} 如果输出中能看到你设置的新端口号,说明修改成功了。 == 2.3 配置 ufw 防火墙(如果启用了的话) == 搬瓦工默认系统一般没有启用 ufw。但如果你之前手动启用了 ufw,那么必须先放行新端口,否则新端口的流量会被防火墙拦截: {| class="wikitable" |# 检查 ufw 状态 ufw status <nowiki>#</nowiki> 如果 ufw 是 active 状态,放行新端口 ufw allow 28456/tcp <nowiki>#</nowiki> 确认放行成功后,可以删除旧端口的规则 ufw delete allow 22/tcp <nowiki>#</nowiki> 重载防火墙 ufw reload |} 如果 ufw status 显示 inactive,那说明防火墙没有启用,跳过这一步即可。 = 三、CentOS 7/8 修改 SSH 端口 = CentOS 的操作比 Ubuntu 多了两个环节:SELinux 和 firewalld。搬瓦工默认安装的 CentOS 系统通常启用了 SELinux(enforcing 模式),如果只修改了配置文件而没有处理 SELinux,重启 sshd 服务时会直接报错,这是很多新手踩坑的地方。 == 3.1 修改 sshd_config == 这一步和 Ubuntu 完全一样: {| class="wikitable" |# 备份 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak <nowiki>#</nowiki> 编辑 vi /etc/ssh/sshd_config <nowiki>#</nowiki> 找到 Port 行,修改为新端口 Port 28456 |} == 3.2 处理 SELinux == 这是 CentOS/RHEL 系操作系统的关键步骤。SELinux 默认只允许 SSH 使用 22 端口,如果你改成了其他端口但没有告知 SELinux,sshd 服务将'''无法启动'''。 首先检查 SELinux 状态: {| class="wikitable" |# 查看 SELinux 当前状态 getenforce |} 如果输出是 '''Enforcing''',那么必须执行以下操作。如果输出是 Disabled 或 Permissive,可以跳过这一步。 {| class="wikitable" |# 安装 SELinux 管理工具(如果 semanage 命令不存在) yum install -y policycoreutils-python-utils <nowiki>#</nowiki> CentOS 7 使用这个包名 <nowiki>#</nowiki> yum install -y policycoreutils-python <nowiki>#</nowiki> 向 SELinux 添加新的 SSH 端口 semanage port -a -t ssh_port_t -p tcp 28456 <nowiki>#</nowiki> 验证端口是否添加成功 semanage port -l | grep ssh |} 正常情况下,输出应该包含你新增的端口号。比如:ssh_port_t tcp 28456, 22 == 3.3 配置 firewalld 防火墙 == CentOS 默认使用 firewalld 作为防火墙。同样需要放行新端口: {| class="wikitable" |# 检查 firewalld 是否运行 systemctl status firewalld <nowiki>#</nowiki> 如果正在运行,添加新端口 firewall-cmd --permanent --add-port=28456/tcp <nowiki>#</nowiki> 重载防火墙规则 firewall-cmd --reload <nowiki>#</nowiki> 验证 firewall-cmd --list-ports |} 如果 firewalld 没有运行(inactive),同样可以跳过这一步。搬瓦工的部分系统镜像默认并未启用 firewalld。 == 3.4 重启 SSH 服务 == {| class="wikitable" | colspan="2" |# 重启 sshd systemctl restart sshd <nowiki>#</nowiki> 查看状态(确认没有报错) systemctl status sshd <nowiki>#</nowiki> 确认端口监听 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/ 目录来管理配置片段。你可以选择直接修改主配置文件,也可以在该目录下创建一个新的配置文件(推荐后者,更清晰): '''方法一:创建配置片段(推荐)''' {| class="wikitable" |# 创建一个自定义配置文件 echo "Port 28456" > /etc/ssh/sshd_config.d/custom-port.conf |} '''方法二:直接修改主配置文件''' {| class="wikitable" |cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak vi /etc/ssh/sshd_config <nowiki>#</nowiki> 找到 #Port 22,去注释并修改为 Port 28456 |} == 4.2 处理 SELinux == Rocky Linux 9 默认启用 SELinux enforcing 模式,操作与 CentOS 相同: {| class="wikitable" |# 安装 SELinux 管理工具 dnf install -y policycoreutils-python-utils <nowiki>#</nowiki> 添加新端口到 SELinux 策略 semanage port -a -t ssh_port_t -p tcp 28456 <nowiki>#</nowiki> 验证 semanage port -l | grep ssh |} == 4.3 配置 firewalld == {| class="wikitable" |# 放行新端口 firewall-cmd --permanent --add-port=28456/tcp firewall-cmd --reload <nowiki>#</nowiki> 可选:如果不再使用 22 端口,移除默认的 ssh 服务 firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload |} == 4.4 重启并验证 == {| class="wikitable" |# 先检查配置是否有语法错误 sshd -t <nowiki>#</nowiki> 没有报错再重启 systemctl restart sshd systemctl status sshd ss -tlnp | grep sshd |} Rocky Linux 提供了 sshd -t 命令来预检配置文件语法,建议在重启之前先跑一下,避免因为配置错误导致服务起不来。 = 五、各系统操作对比速查 = 下面用一张表把三种系统的操作步骤做个对比,方便快速参考: {| class="wikitable" |'''操作步骤''' |'''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 会话。另外开一个终端窗口,用新端口尝试连接: {| class="wikitable" |# Linux / macOS 终端 ssh -p 28456 root@你的IP地址 <nowiki>#</nowiki> Windows 使用 PuTTY / Xshell 等工具 <nowiki>#</nowiki> 在连接设置中将端口改为 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. 执行修复命令:还原备份文件或重新修改端口 {| class="wikitable" |# 如果之前做了备份,直接还原 cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config systemctl restart sshd <nowiki>#</nowiki> 或者手动修改回正确的端口 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 能用,留好退路。 如果在操作过程中遇到问题,可以在本站评论区留言,或者加入搬瓦工交流群一起讨论。 '''[https://www.banwagong.net/ 搬瓦工中文网]''' — 做专业的搬瓦工中文教程站 [[Category:300 VPS 设置与管理 — VPS Setup and Management]]
返回
修改 SSH 端口
。
查看“︁修改 SSH 端口”︁的源代码
来自md5.pw