SSH 绑定到端口 22 失败

SSH 绑定到端口 22 失败

在我将 Ubuntu 更新到 20.10 后,我开始遇到 SSH 问题。每次服务在启动时启动或当我使用 手动启动它时systemctl,它都会出错,说端口已经在使用中(无论我在 上指定哪一个sshd_conf)。虽然这表明已经有一个 ssshd 实例在运行,但这没有意义,因为systemctl status sshd返回服务启动失败。如果我nmap在有问题的主机上执行 ,端口确实是打开的,而且我没有发现其他正在使用它们的应用程序。同一网络中似乎还有另一台计算机使用相同的 IP,这与服务器冲突。我该如何解决这个问题?在这台另一台计算机上运行的 ssh 服务器实例会干扰服务器吗?

更新 输出netstat -lnp | grep :22

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      - 

输出ss -panetl | grep :22

LISTEN 0      128          0.0.0.0:22         0.0.0.0:*    ino:38210 sk:1c <->                                                  
LISTEN 0      128             [::]:22            [::]:*    ino:38212 sk:22 v6only:1 <-> 

答案1

可能是另一个服务或实例绑定到了该端口 - 不清楚具体是哪一个。请运行ss -panetlsystemctl status验证,同时向我们显示输出。

答案2

您可以使用旧netstat程序来查看端口上实际监听的内容:

# netstat -lnp | grep :22

tcp     0    0 0.0.0.0:22    0.0.0.0:*    LISTEN    639/sshd: /usr/bin/ 
tcp6    0    0 :::22         :::*         LISTEN    639/sshd: /usr/bin/ 

对我来说,它显示的sshd是使用它们作为 PID 运行的程序639。您必须以 root 用户身份运行它才能查看程序的名称(它将以普通用户身份运行,但只会显示您的用户帐户正在运行的程序的名称,而不是系统进程)。

具有相同 IP 地址的另一台机器不会影响您本地机器上的监听端口,但它可能会使实际通过 SSH 进入该机器变得困难,因为发往您计算机的数据包可能会随机发送到另一台机器,从而导致 SSH 连接不断中断或无法连接。

相关内容