我有一个远程设置的 Ubuntu 10.04 服务器,是我不久前设置的。当我记录用户名和密码时,我似乎很聪明,将常用的 ssh 端口从 22 更改为...其他端口。
我如何找出该端口可能是什么?
我确实可以通过托管公司的后门访问服务器,因此我可以执行所需的任何 Unix 命令 - 但我无法在我的机器上使用普通的 putty shell 登录。
答案1
首先检查配置文件配置了哪些端口:
$ sudo grep Port /etc/ssh/sshd_config
Port 22
然后重新启动ssh
以确保它加载您刚刚看到的配置或找出正在ssh
运行的端口:
$ sudo netstat -tpln | egrep '(Proto|ssh)'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 12586/sshd
这是ssh
在端口 22 上正常运行的情况。
答案2
如果您可以通过其他方式访问服务器,只需运行:
$ sudo grep Port /etc/ssh/sshd_config
Port NNN
这将返回一行如上所示的行,其中将NNN
是您选择的端口。
答案3
更简单的方法是查看 SSH 服务器配置文件:
➜ ~ sudo grep Port /etc/ssh/sshd_config
Port 22
还可以使用以下命令检查每个进程的侦听端口lsof
:
sudo lsof -Pi | grep ssh
或任何其他端口列表命令,例如netstat -lntu
.
答案4
如果您无权访问服务器的控制台,则必须探测远程主机的所有端口。这些实用程序类似于nmap
,但网络层必须将流量中继到主机(IP 地址)和端口的特定组合。