怎么用 Nmap 快速找回改过的 SSH 端口?

话题来源: 搬瓦工忘记 SSH 端口怎么办?Nmap 扫描与 VNC 找回端口教程

我以前改 SSH 端口时总觉得“肯定记得住”,结果客户端里只保存了 22,过一段时间再登录,私钥明明还在,服务器也没坏,就是怎么都连不上。遇到这种情况,我不会第一时间重装 VPS:只要 IP、私钥或 root 密码还在,通常都能把端口找回来。

先用 Nmap 找开放端口

如果 SSH 服务仍在运行,最省事的办法是在自己的电脑上扫描这台 VPS:

nmap -Pn -p- --open -T4 VPS_IP

这里的 -Pn 是不依赖 ping 判断主机状态,-p- 扫描 TCP 的 1 到 65535 端口,--open 只显示开放端口,-T4 则让扫描速度更快。扫出来的结果里,除了网页服务端口,还可以重点留意高位、状态为 open、服务显示为 unknown 的端口。

比如发现 38652/tcp open unknown,可以再单独确认:

nmap -Pn -p 38652 -sV VPS_IP

如果识别为 OpenSSH,就用原来的私钥连接:

ssh -i 私钥文件路径 -p 38652 root@VPS_IP

这里要注意,扫描自己的 VPS 没问题,但不要拿这套方法去扫无关主机。若结果大量显示 filtered,或者根本找不到 SSH,就别继续和 Nmap 较劲了。

Nmap 找不到,就进 KiwiVM

搬瓦工的 KiwiVM 网页控制台不依赖 SSH 端口。进入对应 VPS 后打开网页控制台,找到 Root Shell Interactive 一类的入口,用 root 和系统密码登录,然后执行:

sshd -T | grep '^port '

它显示的是当前真正生效的 SSH 配置,比只翻 /etc/ssh/sshd_config 更可靠,因为其他配置文件可能覆盖主文件。还可以执行 ss -lntp | grep sshd,确认 sshd 是否确实监听在这个端口。

如果忘了 root 密码,可以先在 KiwiVM 面板重设。要记住,重设密码不会自动开启 SSH 密码登录;如果 PasswordAuthentication 仍是 no,外部 SSH 依旧要使用私钥。VNC 和 SSH 是两套登录方式,私钥不能直接拿来登录网页控制台。

找回端口后,记得同步检查防火墙是否放行新端口。以后我会把端口、IP 和密钥位置一起保存,省得下次再和自己的 VPS 玩“猜猜我在哪”。

12 条评论

发表回复