我家里有一个 Ubuntu Server 10.10 32 位。我正在通过 Putty 从我的 PC 建立到它的 SSH 连接。
问题是,有时我可以无缝登录。但是,有时它会给我这样的错误:Network error: Connection refused.
然后,我什么都不做,尝试多登录几次,稍等片刻再试一次。有时能登录,有时不能。对我来说似乎很随机。
我能做些什么来解决这个问题?
编辑:
有时,PuttyNetwork 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
Run Code Online (Sandbox Code Playgroud)
我关闭了路由器的防火墙,现在似乎一切正常。除此之外,我仍然无法通过从我的 PC 输入外部 IP 来进入我的网络服务器。
Jus*_*ful 103
您必须在 Linux 上安装 openssh-server 才能运行。获取 Ubuntu 的内部 IP 地址并使用该 IP 在路由器的端口 22 (SSH) 部分设置端口转发。尽管如果您不打算从网络外部使用 SSH,则这不是必需的。
以下是安装 openssh-server 的方法:
sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]
Run Code Online (Sandbox Code Playgroud)
Ria*_*son 50
当我看到此 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)
Run Code Online (Sandbox Code Playgroud)
果然有冲突,如上图。然后我在没有 grep 的情况下运行 arp-scan,发现 .43 可用,去编辑/etc/network/interfaces并将静态 ip 从 .42 更改为 .43
小智 20
arping在有连接问题的 IP 地址上使用。这将显示每个 ping 回复的 MAC 地址,并有望揭开流氓 MAC 地址的掩码。
arping 192.168.2.254
Run Code Online (Sandbox Code Playgroud)
您应该检查 DHCP 服务器上的 DHCP IP 地址池,确保没有设备具有与 DHCP 池冲突的静态 IP。
这些线索指向重复的 IP:
Ami*_*ali 16
打开ssh配置文件:
sudo nano /etc/ssh/ssh_config
Run Code Online (Sandbox Code Playgroud)
找到端口
#port 22
Run Code Online (Sandbox Code Playgroud)
删除尖锐的端口选项
然后保存文件ctrl + x并重新启动您的服务
sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)
DLo*_*osc 10
我有同样的问题,即使我有一个静态 IP 地址。结果发现我网络上的另一台服务器被分配了相同的(静态)IP 地址。(呃。)所以看起来问题是由IP地址冲突引起的,但可能有多种可能的方式发生。如果您将您的设备设置为静态但仍有问题,请尝试关闭您的机器并 ping 地址。如果您收到任何回复,请开始寻找可能具有相同地址的其他内容。
小智 7
如果你这样做,你会得到什么?
grep 192.168.2.25 /etc/hosts.deny
Run Code Online (Sandbox Code Playgroud)
如果返回任何内容,则您需要将其删除。
这看起来更像是您的网络设备的问题,而不是服务器本身的问题。
检查 /var/log/messages 是否有以太网链路开启/关闭(如果是无线,则检查 wlan)。如果是这样,请尝试更换电缆。
您可能想检查iptables服务器上的规则。听起来您有限制新 SSH 连接的规则。
下一条规则每分钟允许 5 个新连接,如果超过此限制,一段时间后您的新连接将被拒绝:
-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
请参阅IPTables/Netfilter 文档,滚动一点直到limit。