我已经运行这个脚本几天了:
while [ true ]; do ssh USER@SERVER echo -n . || date +"%s"; done
显然,我的终端充满了点,但有时(很少)我得到这个
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
..............ssh: connect to host SERVER port 22: Connection refused
1323454879
ssh: connect to host SERVER port 22: Connection refused
1323454879
ssh: connect to host SERVER port 22: Connection refused
[snip]
1323454879
ssh: connect to host SERVER port 22: Connection refused
1323454879
ssh: connect to host SERVER port 22: Connection refused
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
我尝试了不同的服务器提供商、源服务器、目标服务器、时间、地理位置。迟早都会出现这个错误,持续一两秒。
这是预料之中的事吗或者我遇到了问题?
答案1
这可能不是异常行为,而是可以预料到的。
您可能需要检查:
防火墙规则
反暴力破解工具
ssh 配置
防火墙规则可以限制 SSH 连接速率。我在许多基于 iptables 的防火墙中都使用此功能来阻止暴力 SSH 攻击。这些规则会限制到指定端口的新连接数量。
有一些工具,例如 fail2ban、denyhosts 和其他工具,可能会在多次尝试后阻止访问。
最后,SSH 的配置(sshd_config)可能指定了最大服务器数量。如果您快速使用 SSH,则可能会达到此限制。
答案2
此错误意味着目标服务器可以访问,但端口 22 已关闭(SSH 守护程序未运行或在非默认端口上运行)。
另一种可能性是,您与目标服务器之间有一个防火墙,该防火墙将端口 22 转换为目标服务器上未打开的其他端口。
您没有说明是否在同一台服务器上总是遇到此错误。