如何解决SSH连接中的“拒绝连接”错误?


96

我家里有一个Ubuntu Server 10.10 32位。我正在通过Putty从我的PC建立SSH连接。

问题是,有时我可以无缝登录。但是,有时会给我这样的错误:Network error: Connection refused.

然后,我什么都没做,尝试再次登录几次,稍等片刻,然后重试。有时我可以登录,有时不能。对我来说似乎很随意。

我该怎么解决?

编辑:

有时,Putty Network error: Software caused connection abort在显示login as:文本后会出错。

这是ping -t输出:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

我关闭了路由器的防火墙,现在一切似乎都可以工作了。除此之外,我仍然无法通过在PC上键入外部IP来进入Web服务器。


下次像这样爬出来 再次对其执行ping操作,它仍然有效吗?有多少人使用这台机器?
myusuf3 2011年

只有我SSH这个服务器。
2011年

完全相同的问题在这里,还包括成功连接(然后工作数小时),登录或密码输入后出现“连接被拒绝”和“软件导致连接中止”的混合情况。要提供一些其他详细信息:在本例中,它是Microsoft Hyper-V主机上的64位虚拟机(运行Ubuntu Server 10.10),使用“旧网卡”仿真。
hheimbuerger 2011年

您的服务器上安装了SSH吗?
Willian Soares 2014年

Answers:


82

必须先在Linux上安装openssh-server,然后才能起作用。获取Ubuntu的内部IP地址,并使用该IP在路由器的端口22(SSH)部分上设置端口转发。尽管如果您不打算从网络外部进行SSH,则不需要这样做。

这是安装openssh-server的方法:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]

10
不能直接回答问题,但这很有用,因为Ubuntu并未预装SSH服务器。
Ostati

我最近

40

当我看到此SSH错误消息时,IP地址冲突才是根本原因。

阅读以上答案后,我怀疑IP地址冲突,但需要证明地址冲突是问题还是不是问题。

这篇出色的文章展示了如何使用arp-scan查看是否有两个硬件在声明相同的IP地址。

在我的情况下,服务器计算机的静态IP地址为192.168.1.42,我使用了arp-scan来检查该地址:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

确实有冲突,如上所示。然后我在没有grep的情况下运行arp-scan,发现.43可用,然后进行了编辑/etc/network/interfaces,并将静态ip从.42更改为.43


实际运行该命令时,我的对话框只显示了一行,除了名称是另一台设备的名称。
assylias 2012年

非常感谢您为IP地址冲突指明了正确的方向。遇到类似的问题!+1
DominikAngerer 2015年

只是节省了我太多时间...荣誉...
克里斯·巴洛

有时我的路由器只需要重新启动即可解决此问题。
加布里埃尔·斯台普斯

14

arping在存在连接问题的IP地址上使用。这将显示每个ping答复的MAC地址,并希望将对恶意MAC地址进行屏蔽。

arping 192.168.2.254

您应该检查DHCP服务器上的DHCP IP地址池,确保没有设备具有与DHCP池冲突的静态IP。

这些线索指向重复的IP:

  • ping ttl和往返时间看起来像2个不同的服务器
  • 间歇性断开连接,无需重新启动

太好了,将我指向正确的道路!能够通过第二个MAC地址跟踪它所在的端口,并更改打印机的IP
Canadian Luke

1
我需要添加-I wlan0(wlan0是我的wifi设备)
guhur

6

即使我有一个静态IP地址,我也遇到同样的问题。原来我网络上的另一台服务器已被分配了相同的(静态)IP地址。(Duh。)因此看来问题确实是由IP地址冲突引起的,但是可能有多种可能的方式发生。如果将您的计算机设置为静态,但仍然有问题,请尝试关闭计算机并ping地址。如果您收到任何答复,请开始寻找其他可能具有相同地址的邮件。


1
我遇到了相同的症状,并将其跟踪到具有与服务器相同IP地址的计算机。
SabreWolfy 2011年

4

如果这样做,您会得到什么?

grep 192.168.2.25 /etc/hosts.deny

如果返回任何内容,则需要将其删除。


10
这就是臭名昭著的“无用的用途之一cat” -你可以简单grep 192.168.2.25 /etc/hosts.deny
托比亚斯Kienzler

@TobiasKienzler解决了它
wjandrea

4

打开ssh config文件:

sudo nano /etc/ssh/ssh_config

找到港口

#port 22

删除锋利的端口选项

然后保存文件ctrl + x并重新启动服务

sudo service ssh restart

3

与服务器本身相比,这看起来更多是网络设备的问题。

检查/ var / log / messages中是否存在以太网链接打开/关闭(或在无线情况下为wlan)。如果是这样,请尝试更换电缆。


是的,我尝试并成功地从网络外部(服务器和PC位于其中)建立了ssh连接。看来运作良好。我的服务器也是Web服务器。当我尝试从PC通过端口80连接时,我会看到我的ADSL调制解调器的登录页面。但是,当我从网络之外的另一台计算机尝试相同的操作时,会看到Apache的It Works页面。
2011年

您是什么PC ip,服务器ip和内部adl路由器ip?
forcefsck

PC:192.168.2.2(从DHCP接收)服务器:192.168.2.254(静态,超出DHCP范围)ADSL路由器:192.168.2.1
2011年

我有点困惑,当您从192.168.2.2连接到192.168.2.254端口80时,您是否获得了adsl调制解调器的登录名?
forcefsck

1
除非您为服务器设置了某种Web代理,否则很明显,您的adsl调制解调器正在响应对192.168.2.254发出的请求,当您遇到Connection refusedssh错误时,可能就是这种情况。因此,您必须重新检查adsl调制解调器的设置。
forcefsck

3

我可以确认这个确切的问题:这不是一个简单的连接问题。以太网链接不会更改状态;通过ping可访问服务器;ssh偶尔会完美无缺地连接,然后看似随机地不连接或现有的ssh会话断开。这在Ubuntu 10.04和11.04上发生。按照hheimbuerger的建议,我为服务器提供了一个静态IP,这似乎可以解决该问题。

解决方法:将适配器从DHCP更改为静态。


1

我遇到了完全相同的问题,在我看来,这是一个IP地址冲突。我的Ubuntu VM具有动态地址,但是另一台计算机(在本例中为电话)具有分配给DHCP服务器不知道的静态IP。

只需更改DHCP服务器分配给Ubuntu VM的IP,即可解决所有连接问题。


1

基本上是由于以下任一原因:

  1. 网络上有太多用户试图访问服务器
  2. 网络上的多台计算机具有与服务器相同的IP,从而导致IP冲突
  3. 用户名错误或您的凭据已被撤消

0

您可能要检查iptables服务器上的规则。听起来您有限制新SSH连接的规则。

下一条规则允许每分钟5个新连接,如果超过此限制,则一段时间后新连接将被拒绝:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

请参阅IPTables / Netfilter文档,滚动直到limit


0

arp-scan显示了两个重复的设备,但是当我在Win8上运行Advanced IP扫描仪时,它们看起来都很好。所以他们并不总是同意。

我通过告诉路由器仅提供1小时的租约来设置其撤销所有租约。请给它时间看看是否可以清除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.