ssh错误 – 绑定到端口22失败:地址已在使用中

我正在尝试启动自己的Web服务器.我已经安装了ubuntu服务器和openSSH的新副本.

我可以使用内部IP(192.168.1.12)通过SSH连接到服务器,但无法通过我的外部IP地址访问它.我已设置端口转发但仍然从putty获得“连接被拒绝”.

我注意到的一件事是,如果我登录到我的Web服务器并输入sudo /usr/sbin / sshd -d,我会收到以下错误:

debug1: Bind to port 22 pm 0.0.0.0
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.

我猜这是我尝试使用外部地址ssh的问题的原因?我试图禁用ipv6,但是当我这样做时,只有一个错误被修复了

编辑:
netstat -tan | grep LIST给出以下结果

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

netstat -tulpn

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     620/sshd
tcp6    0       0      :::22                 :::*               LISTEN     620/sshd
udp     0       0      0.0.0.0:68            0.0.0.0:*                     604/dhclient3
最佳答案
sshd已经在运行,正如你的netstat所证明的那样.它也绑定到所有IP(netstat中的0.0.0.0),因此应该没有问题.

你的路由器上有防火墙吗?您可能已启用端口转发但防火墙可能仍在丢弃22.您的ISP甚至可能在它到达之前阻止22.我也会做一个iptables -F(放下所有的iptables规则)来确定;他们将在重新启动时返回(或者您可以使用iptables-restore恢复它们).

您可以通过检查/var/log/auth.log拒绝连接来确认sshd没有拒绝连接.

如果您已确认日志中没有拒绝连接且路由器上没有防火墙,那么我建议将SSH更改为使用22以外的端口(随机高端口> 1024).您可以通过编辑/ etc / ssh / ssh_config并将“Port 22”更改为更高版本来实现.

编辑:从评论更新以保存阅读;在这种情况下,您还应该尝试从网络外部的IP进行检查.在这种情况下,ISP阻止端口22,并且内部连接到高端口(指定外部IP)不起作用,可能是由于缺少发夹NAT.

转载注明原文:ssh错误 – 绑定到端口22失败:地址已在使用中 - 代码日志