服务器SSH 多次失败后被拒绝连接,是谁在拦?

IT 技术 9 阅读 更新于 2026-10-05 23:47

✅ 结论

fail2ban-client: command not found 基本说明服务器没有安装 fail2ban。

但也有极小概率:装了但环境变量不对、二进制不在PATH里,不过Ubuntu上几乎不会遇到。
验证是否安装:

# 查看是否有这个包
dpkg -l | grep fail2ban
  • 有输出:说明已安装(异常情况)
  • 无任何输出:没有安装 fail2ban

那你现在SSH多次失败后被拒绝连接,是谁在拦?

既然排除fail2ban,优先排查下面3个:

1. hosts.deny / hosts.allow(tcp wrappers)

cat /etc/hosts.deny
cat /etc/hosts.allow

老的IP黑名单机制,一旦写入不会自动解封。

cat /etc/hosts.deny
cat /etc/hosts.allow

如果里面有你的IP,删掉对应行才能恢复。

2. 云服务商层面的暴力破解防护(非常常见!)

阿里云/腾讯云/华为云等云服务器:
SSH多次密码错误,云平台防火墙直接拉黑你的公网IP,不是系统内部。

  • 特点:服务器系统日志看不到封禁记录;换一个IP可以正常连;
  • 恢复:看云控制台,安全防护/主机安全里手动解封,或者等待平台的封禁周期(一般几十分钟~数小时不等)。

3. PAM pam_faillock(锁定账号,不是IP)

sudo faillock

这个是锁定用户账号,不会封禁IP。
现象:同一个IP换其他账号可以登录,只有输错密码的那个账号无法登录。
查看账号失败计数:

sudo faillock

4. iptables / nftables 手动防火墙规则

# 查看iptables规则
sudo iptables -L -n
# 查看nftables
sudo nft list ruleset

有人写脚本监控ssh日志自动添加iptables黑名单。

# 查看iptables规则
sudo iptables -L -n
# 查看nftables
sudo nft list ruleset

快速定位思路

  1. 换一个公网IP(手机流量)尝试SSH连接:
    • ✅ 手机流量能连上:是某个防火墙拉黑了你当前电脑的公网IP(大概率云厂商防护)
    • ❌ 手机流量也连不上:不是IP封禁,可能端口、sshd服务、账号锁定问题
  2. 服务器上看ssh登录日志:
sudo tail -f /var/log/auth.log

连接被拒绝的时候,看日志有没有对应的记录。

  • 日志有记录:拒绝发生在服务器操作系统内
  • 日志完全没有新条目:连接根本没到达服务器,云厂商/上游防火墙拦截

补充:区分两种报错

  • Connection refused:端口没开,或者到达服务器后被本地防火墙拒绝
  • Connection timed out:数据包根本到不了服务器,大概率云平台/网络层面拦截
← 返回IT 技术 yicool 百科 · 服务器SSH 多次失败后被拒绝连接,是谁在拦?

评论 0