现象
你原本能正常 SSH 连接服务器,突然连接超时或提示 Permission denied。在本地电脑 ping 服务器公网 IP 可能通,但 SSH 端口(默认 22)不通。如果使用了 fail2ban,可能是因多次密码错误触发封禁;如果是手动修改 iptables/nftables,可能是规则写错或顺序错误导致自身 IP 被拦截。
原因
fail2ban 检测到短时间内多次认证失败,自动将你的源 IP 加入黑名单。或者,你在配置 iptables 时,将 DROP 或 REJECT 规则放置在了 ACCEPT 规则之前,或者错误地限制了所有流量而未排除 SSH 端口。Linux 内核防火墙是即时生效的,一旦规则应用,非法连接立即被丢弃,导致会话中断。
先自查(3 分钟)
首先确认网络层是否通。在本地终端执行 ping 命令,如果 ping 通但 SSH 不通,说明是端口被拦截。如果 ping 也不通,可能是安全组或公网 IP 问题。检查本地网络是否正常,排除自身断网可能。同时,确认服务器是否处于运行状态,若服务器宕机,需先通过控制台重启。
解决步骤
由于 SSH 已断开,必须通过图形化控制台进入系统。登录奇异互动会员中心,进入云服务器详情页,点击「VNC 控制台」。使用管理员账号密码登录系统(若忘记密码,先在详情页点击「重置密码」并重启服务器)。
登录后,首先检查 fail2ban 状态。执行以下命令查看是否被封禁:
sudo fail2ban-client status
如果看到你的 IP 在 banned 列表中,执行以下命令解封:
sudo fail2ban-client set sshd unbanip <你的公网IP>
如果 fail2ban 未运行或问题出在 iptables,先查看当前规则。执行以下命令查看 INPUT 链规则:
sudo iptables -L -n -v
找到拦截你 IP 或 DROP 所有流量的规则。假设第 N 条规则是错误的 DROP 规则,删除该规则。注意:删除规则前请确认行号,避免误删。执行以下命令删除指定行的规则:
sudo iptables -D INPUT <行号>
如果不确定具体哪条规则,可以清空所有自定义规则(保留默认 ACCEPT 策略),但此举会暂时开放所有端口,存在风险。执行以下命令清空规则:
sudo iptables -F
或者,直接添加一条允许你 IP 访问 22 端口的规则,并置于规则链首:
sudo iptables -I INPUT -p tcp --dport 22 -s <你的公网IP> -j ACCEPT
如果使用的是 nftables(Debian 12/CentOS 8+),命令有所不同。查看规则:
sudo nft list ruleset
删除错误规则或添加允许规则。例如添加允许规则:
sudo nft add rule inet filter input tcp dport 22 ip saddr <你的公网IP> accept
修改完规则后,建议保存当前规则到配置文件,防止重启后失效。对于 iptables:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
对于 nftables,通常修改 /etc/nftables.conf 后执行 sudo nft -f /etc/nftables.conf 加载。请根据系统发行版选择对应命令。
验证
在 VNC 控制台内,执行以下命令测试本地回环连接,确保服务正常:
ssh -p 22 root@127.0.0.1
若本地连接成功,关闭 VNC 窗口,在本地电脑重新尝试 SSH 连接服务器。如果连接成功,说明问题已解决。若仍失败,检查服务器安全组(云平台层面的防火墙)是否放行 22 端口。
预防
修改防火墙规则前,务必备份当前规则。使用 sshd 配置中的 AllowUsers 或 AllowGroups 限制可登录用户,减少误操作风险。配置 fail2ban 时,设置合理的 maxretry 和 bantime,避免过于敏感。建议在测试新规则时,先使用 ssh -o ServerAliveInterval=60 命令保持会话活跃,或开启第二个 SSH 会话(不同端口或不同 IP)作为“逃生通道”,以便在主会话断开时仍能通过备用通道修正错误。
在奇异互动如何最快处理
在奇异互动会员中心,进入「云服务器」详情页,直接点击「VNC 控制台」即可进入系统排障,这是解决此类问题的最快途径。若 VNC 无法连接或系统完全无响应,请点击「重启」按钮尝试恢复。若重启后仍无法通过 VNC 登录,或怀疑硬件故障,请立即提交工单。提交工单时,请在描述中附上:服务器实例 ID、故障发生时间、已执行的排查步骤(如 ping 结果、VNC 截图)、以及你修改过的防火墙配置文件内容(如有),以便工程师快速定位问题。

