有些人买了搬瓦工 VPS 后,会把默认的 SSH 端口改掉,再配合密钥登录使用。平时用 Termius、Xshell 这类客户端保存好连接信息,基本不用自己输入端口,时间长了还真有可能把改过的端口忘掉。
更麻烦的是,客户端保存的还是原来的 22 端口,本地 SSH 私钥虽然还在,但服务器已经关闭密码登录。这时候密钥没有丢,VPS 也正常运行,就是不知道搬瓦工 SSH 端口到底改成了多少,结果 SSH 无法登录。
遇到这种情况先别重装系统。本文介绍两种比较实用的方法:先用 Nmap 扫描 VPS 开放的端口,如果还是找不到,再进入搬瓦工 KiwiVM 控制台,从服务器里面把 SSH 端口查出来。
一、使用 Nmap 扫描并确认 SSH 端口
如果 VPS 的 IP 地址知道,SSH 服务也还在正常运行,只是自己忘记 SSH 端口,这种情况很适合直接使用 Nmap。
有人看到 SSH 端口范围是 1-65535,第一反应可能是:6 万多个端口,这得试到什么时候?
这里不是让我们一个端口一个端口执行 SSH 登录。Nmap 扫描端口会自动探测服务器开放的 TCP 端口,一台 VPS 正常情况下并不需要等很久。
如果电脑已经安装 Nmap,可以执行:
nmap -Pn -p- --open -T4 VPS_IP
把最后的 VPS_IP 换成自己的搬瓦工 IP,例如:
nmap -Pn -p- --open -T4 104.XXX.XXX.XXX
这里简单说一下几个参数:
-Pn:不先通过 Ping 确认 VPS 是否在线,直接开始扫描。-p-:扫描 TCP 的1-65535端口。--open:主要显示已经开放的端口。-T4:加快扫描速度,普通网络下比较合适。
完成这次 SSH 端口扫描以后,结果可能类似:
PORT STATE SERVICE
80/tcp open http
443/tcp open https
38652/tcp open unknown
前面的 80 和 443 一般是网站使用的端口,而 38652 这种自己以前改过的高位端口就比较可疑。
不过这里先不要认定它就是 SSH,再让 Nmap 检查一下这个端口运行的服务:
nmap -sV -p 38652 VPS_IP
如果返回类似:
38652/tcp open ssh OpenSSH
那就找到了,现在这台 VPS 的 SSH 端口就是 38652。
本地私钥还在的话,重新连接:
ssh -p 38652 root@VPS_IP
需要手动指定密钥文件时可以使用:
ssh -i 私钥文件路径 -p 38652 root@VPS_IP
这样原来的 SSH 密钥登录仍然可以继续使用,不需要重新生成密钥。
如果已经找回 SSH 端口,但使用正确的端口和密钥还是连不上,那就不是忘记端口的问题了。可以参考:搬瓦工 SSH 连不上排查与修复教程,继续检查 SSH 服务、防火墙和网络连接等问题。
二、Nmap 无法确认时使用 KiwiVM 控制台
Nmap 并不是任何情况下都一定能找到。
例如 VPS 防火墙对很多端口直接丢弃数据包,或者 SSH 服务已经停止,扫描结果可能出现大量 filtered,甚至根本找不到 OpenSSH。
这类问题并不只会出现在搬瓦工 VPS。如果确认端口没有记错,但 SSH 还是连接超时,也可以参考:Linux VPS SSH 连接失败或超时的排查方法,里面整理的是比较通用的 Linux SSH 故障处理步骤。
如果 Nmap 没有找到 SSH 服务,可以进入搬瓦工后台,通过 KiwiVM 控制台继续处理。第一次使用 KiwiVM 面板,不清楚入口在哪里,可以参考:怎么进入搬瓦工后台:KiwiVM 控制面板登录教程,进入对应 VPS 后再打开网页控制台。
搬瓦工自带 KiwiVM 管理面板,即使 SSH 连接不上,也可以通过网页控制台操作 VPS。很多老用户习惯把这个功能叫搬瓦工 VNC,在 KiwiVM 里可以找到 Root Shell Interactive 一类的控制台入口。
进入KiwiVM 控制台后,不需要知道 SSH 端口,因为这里并不是通过 SSH 连接服务器。
控制台出现登录界面后,输入:
root
然后输入 VPS 的 root 密码。
成功进入系统以后,就不用猜端口了,执行:
sshd -T | grep '^port '
如果返回:
port 38652
说明当前 SSH 配置使用的是 38652。
还可以再执行:
ss -lntp | grep sshd
例如:
LISTEN 0 128 0.0.0.0:38652 0.0.0.0:* users:(("sshd",pid=785,fd=3))
这里就能确认 SSH 服务确实正在监听 38652 端口。
有些教程会让大家查看:
/etc/ssh/sshd_config
这个方法也能用,但现在部分系统还会从其他 SSH 配置文件加载设置。本文更建议使用 sshd -T 查看当前真正生效的配置,省得找到旧参数以后再次弄错。
三、关闭 SSH 密码登录是否影响 VNC
这个地方很容易搞混。
不少人在设置 SSH 密钥登录以后,会修改 SSH 配置:
PasswordAuthentication no
它的意思是关闭SSH 密码登录,以后从 Termius、Xshell 或命令行连接 SSH 时,不能再使用 root 密码认证。
但这并不等于把 Linux 系统里的 root 密码删除了。
所以只要当时只是关闭 SSH 的密码认证,使用搬瓦工 VNC 或 KiwiVM 网页控制台时,仍然可以输入 root 密码进入系统。
简单来说就是:
SSH + root密码:不能登录
SSH + 私钥:可以登录
KiwiVM/VNC + root密码:仍然可以登录
另外,SSH 私钥不能拿来登录 VNC。
VNC 和 SSH 不一样,本地保存的私钥文件只用于 SSH 认证。进入搬瓦工网页控制台时,需要的还是系统 root 密码。
四、VNC 无法登录时重置 root 密码
还有一种更尴尬的情况:SSH 端口忘了,准备进 KiwiVM 查一下,结果连 root 密码也想不起来了。
如果是 root 密码已经忘记,可以先在后台 KiwiVM 面板里重新设置。本站之前整理过搬瓦工忘记 root 密码的重置教程,按照里面的步骤设置新密码以后,再回来登录网页控制台。
这种情况还是没必要重装系统。
可以进入 KiwiVM 面板,找到 root 密码修改功能,重新设置 VPS 的 root 密码,然后再回到 Root Shell Interactive 登录系统。
需要注意,修改 root 密码不会自动重新开启 SSH 密码登录。
如果 SSH 配置中仍然是:
PasswordAuthentication no
那么即使刚刚给 root 设置了一个新密码,从外面连接 SSH 时仍然不能使用密码认证。
这个新密码主要是让我们先通过 KiwiVM 控制台进入服务器,然后把忘记的 SSH 端口找回来。
登录后还是执行:
sshd -T | grep '^port '
确认端口以后,再回到自己的电脑使用原来的 SSH 私钥连接即可。
如果已经确认 SSH 端口没有问题,但连接时还是出现超时、拒绝连接或者认证失败,那就不是单纯忘记端口了。可以继续参考:搬瓦工 SSH 连接失败和超时的解决方法,再检查 SSH 服务、防火墙和登录信息。
五、忘记 SSH 端口是否需要重装 VPS
不需要。
如果服务器里还有网站、程序或者其他数据,只因为忘记一个 SSH 端口就重装系统,代价有点大。
这种问题可以按下面的顺序处理:
- VPS IP 知道、私钥还在,先使用 Nmap 扫描开放端口。
- 找到可疑端口以后,用
nmap -sV确认是不是 OpenSSH。 - Nmap 找不到,再进入搬瓦工后台的 VNC 或网页控制台。
- root 密码忘了,就先在 KiwiVM 面板重新设置。
- 进入系统以后使用
sshd -T查看当前 SSH 端口。
只有 VPS 本身没有需要保留的数据,同时系统还有其他问题,自己也懒得继续排查时,才有必要考虑重装系统。
六、总结
自己修改过搬瓦工 SSH 端口,Termius、Xshell 又没有把新端口保存下来,看起来挺麻烦,但只要 SSH 私钥还在,正常情况下都能处理。
SSH 服务仍然正常时,先执行:
nmap -Pn -p- --open -T4 VPS_IP
把开放端口扫出来,再用 nmap -sV 找到运行 OpenSSH 的端口。
如果 Nmap 也找不到,就进入搬瓦工 KiwiVM 控制台,通过 VNC 登录服务器,然后执行:
sshd -T | grep '^port '
这样可以查到当前使用的搬瓦工 SSH 端口。
所以遇到 SSH 无法登录,同时又记不起自己改过的端口时,不用急着去重装 VPS 系统。Nmap 扫描和 KiwiVM 控制台这两种办法,基本已经能处理大多数忘记 SSH 端口的情况。
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 机房 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|---|
| KVM (最便宜) | 2核 | 1GB | 20GB | 1TB | 1Gbps | 9个 | $49.99/年 | 立即选购 |
| 3核 | 2GB | 40GB | 2TB | 1Gbps | 9个 | $52.99/半年 | 立即选购 | |
| CN2 GIA-E (最推荐) | 2核 | 1GB | 20GB | 1TB | 2.5Gbps | 15个 | $49.99/季度 | 立即选购 |
| 3核 | 2GB | 40GB | 2TB | 2.5Gbps | 15个 | $89.99/季度 | 立即选购 | |
| SLA (SLA 保障) | 2核 | 1GB | 20GB | 1TB | 2.5Gbps | 1个 | $65.89/季 | 立即选购 |
| 3核 | 2GB | 40GB | 2TB | 2.5Gbps | 1个 | $116.99/季 | 立即选购 | |
| 香港 (高端) | 2核 | 2GB | 40GB | 0.5TB | 1Gbps | 15个 | $89.99/月 | 立即选购 |
| 4核 | 4GB | 80GB | 1TB | 1Gbps | 15个 | $155.99/月 | 立即选购 | |
| 大阪 (高性价比) | 2核 | 2GB | 40GB | 0.5TB | 1.5Gbps | 15个 | $49.99/月 | 立即选购 |
| 4核 | 4GB | 80GB | 1TB | 1.5Gbps | 15个 | $86.99/月 | 立即选购 | |
选择建议 入门使用KVM 套餐价格最低,适合建站、学习 Linux、简单测试和预算有限的新手用户。 综合推荐CN2 GIA-E 套餐线路更好、可选机房更多,适合长期使用,也是多数用户优先考虑的方案。 高端需求香港、东京、大阪等高端线路价格更高,适合对国内访问速度、低延迟和稳定性要求较高的用户。 |
||||||||
套餐汇总:搬瓦工在售方案汇总 | 购买教程:搬瓦工注册与购买教程 | 优惠码:最新搬瓦工优惠码 |
||||||