问题描述
我家有一台Ubuntu Server 10.10 32位。我正在通过Putty从PC上建立SSH连接。
问题是,有时我可以无缝登录。但是,有时它会给我一个这样的错误:Network error: Connection refused.
然后,我不会更改任何内容,尝试多登录几次,稍等片刻,然后重试。有时我可以登录,有时候我不能。这对我来说似乎很随意。
我能做些什么来解决这个问题?
编辑:
有时,在显示login as:
文本后,腻子会出现Network error: Software caused connection abort
错误。
这是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
我关掉了路由器的防火墙,现在一切似乎都奏效了。除此之外,通过在我的电脑上输入外部IP,我仍然无法进入我的网络服务器。
最佳解决办法
在这之前,您必须在Linux上安装openssh-server。获取Ubuntu的内部IP地址,并使用该IP在路由器的端口22(SSH)部分设置端口转发。虽然如果您不打算从网络外部进行SSH连接,这不是必需的。
以下是如何安装openssh-server:
sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]
次佳解决办法
当我看到这个SSH错误信息时,IP地址冲突是我的根本原因。
在阅读上面的答案后,我怀疑IP地址冲突,但需要证明地址冲突是或不是问题。
这个great article展示了如何使用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)
如上所示,果然存在冲突。然后,我运行arp-scan而没有grep,发现.43可用,去编辑/etc/network/interfaces
并将静态IP从.42更改为.43
第三种解决办法
在出现连接问题的IP地址上使用arping
。这将显示每个ping回复的MAC地址,并希望揭露恶意MAC地址。
arping 192.168.2.254
您应该检查DHCP服务器上的DHCP IP地址池,确保没有设备具有与DHCP池冲突的静态IP。
这些线索指出重复IP:
-
ping ttl和往返时间看起来像2个不同的服务器
-
断断续续而无需重新启动
第四种办法
即使我有一个静态IP地址,我也遇到了同样的问题。原来我的网络上的另一台服务器被分配了相同的(静态)IP地址。 (Duh。)所以看起来问题是由IP地址冲突引起的,但可能有各种可能的方式发生。如果您将自己设置为静态并仍然存在问题,请尝试关闭计算机并ping地址。如果您收到任何回复,请开始寻找还有其他地址可以使用的地址。
第五种办法
与服务器本身相比,这看起来更像是网络设备的问题。
检查/var /log /消息以查看以太网链路的up /down(或无线情况下的wlan)。如果是这样,请尝试更换电缆。
第六种办法
我可以确认这个确切的问题:这不是一个简单的连接问题。以太网链路不改变状态;服务器通过ping可达; ssh连接完美无暇,然后看似随机不连接或现有的SSH会话下降。这发生在Ubuntu 10.04和11.04上。根据Hheimbuerger的建议,我给了服务器一个静态IP,这似乎解决了这个问题。
解决方法:将适配器从DHCP更改为静态。
第七种办法
如果你这样做,你会得到什么?
grep 192.168.2.25 /etc/hosts.deny
如果返回任何东西,那么你需要删除它。