惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
B
Blog
博客园 - Franky
H
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
云风的 BLOG
云风的 BLOG
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
V
V2EX
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队

记录生活,精彩一刻 - 生活

拿到检查报告,压在心头的石头终于落地 人到中年,小事与心事 周末骑行日记:风景挺好,状态不行,好在有碗面 享受 AI 给的错觉,也别丢了清醒 DeepSeek 涨价之后,普通个人开发者有点难受 一树“剃头”两树生,养盆景就是养心态 自己泡的茉莉蜜茶,甜不甜我说了算 正规备案,基于S3存储,免费开放注册 收拾车库、降薪、律师费,普通人的周末实录 平台迁移擅自改动定价,IDC 服务商不能把成本转嫁到老用户 忙里偷闲,给盆景“善后”的一晚 打工人的快乐,就藏在这十几分钟的晚霞里 外地支援这事,从帮忙变成了义务 我又没忍住,又去找AI帮忙了,这次还好没翻车 当探店吃播撞上《网络测评规范》 留一个烂员工,毁掉整个团队,你怎么看? 牙齿治疗决策,还是想保住这颗牙 极为罕见的闪电画面,“上行闪电”又称“逆闪” 到现在不知道怎么介绍自己 十年之约走到一半,2026年我们还在 手痒没忍住,把家里的珍珠柏给剪了 听劝!博客背景持续优化,缓解视觉疲劳 半路登机,市值冲上5.5万亿:黄仁勋这趟访华值了 博客首页调整,更简洁,菜鸟借助 AI 搞定 手机电视都能用的追剧神器,OK影视 - 让你躺着看大片 公众号规则改变运营挑战 每年如此的过敏性鼻炎,痛苦 日本红枫树的种植方法与管理技巧 推荐一款干净好用的安卓听书工具,还能自己加源,用起来太省心了
服务器 SSH 老提示 connection is closed by foreign host,...
Huo · 2026-09-11 · via 记录生活,精彩一刻 - 生活

xk59syxa

今天打算给手里这几台服务器更新一下系统,并清理一下系统垃圾,但是这台服务器今天抽风,SSH 时好时坏,连不上的时候就报 connection is closed by foreign host。你说气不气人,它又不是一直坏,ping 是通的,端口也开着,过几分钟再试,嘿,又好了。这种毛病最磨人,我第一反应就是网络不行,或者机房抽风。

一开始我还怀疑是不是自己 IP 被 fail2ban 给封了,或者路上哪台设备在捣鬼。折腾半天才发现,跟网络半毛钱关系没有。服务器好着呢,负载几乎为零,大半年没重启过,稳得一批。

后来我好不容易挤进服务器,翻了一眼 sshd 日志,傻眼了。有一个 IP 是 5.231.242.201,同时挂着十几个连接,在那儿一个劲试 root 密码,短短两小时失败了两千多次。旁边还有一整个网段的机器在轮着爆破,主要是 77.83.39.x 这一段,什么 77.83.39.60、77.83.39.89、77.83.39.101、77.83.39.118、77.83.39.235、77.83.39.239 这些,十几个地址换来换去地试。另外还冒出个 92.118.39.59,也在那儿跟着凑热闹。量太大了,直接把 sshd 的一个保护开关给顶爆了。

这个开关叫 MaxStartups,默认值是 10:30:100,意思就是同时没认证的连接一旦超过 10 个,新进来的连接就会被随机踢掉。人家攻击者把这个额度占满以后,我这个正常用户的连接也跟着遭殃,随机就被丢了,客户端看着就是 connection is closed by foreign host。等攻击缓一缓,额度空出来,我又能连上了。所以才是这么个时好时坏的鬼样子。

找到病根,剩下就好办了。先把攻击来源在防火墙里手动封了,5.231.242.201 这个单 IP,还有 77.83.39.0/24 整个网段,加上 92.118.39.59,全给它关进去。然后就是把 fail2ban 修好,让机器以后自己会封,省得每次都得我手动来。

修 fail2ban 的时候又踩了个坑,这里多说两句。这机器是 Debian 12,日志走的是 systemd 的 journald,默认压根没有 /var/log/auth.log 这个文件,fail2ban 默认配置找不到日志,服务一直就是挂着的。更坑的是,sshd 日志在 journal 里的单元名是 ssh.service,不是 fail2ban 默认匹配的 sshd.service。这俩地方不改对,fail2ban 永远读不到日志,封 IP 更是没门。

改完配置重新把 fail2ban 拉起来,它当场就从历史日志里揪出十几个攻击 IP,全给自动封了。再回头看日志,攻击直接清零,SSH 也老实了,连着试了几十次都不带掉线的。

最后把这次碰到的可疑 IP 贴出来,看到的兄弟自己服务器里留意一下,能封就早点封:
5.231.242.201

77.83.39.0/24 这一整段(里面 77.83.39.17、60、89、95、99、101、112、118、119、122、147、217、226、235、238、239、240 都在轮着扫)

92.118.39.59

回头想想就一句话,SSH 报 connection is closed by foreign host,先别急着怪自己网络,看看服务器是不是正被爆破。防护工具光装没用,得确认它真在跑。再有余力,密码登录换成密钥,默认端口改一改,这两下能挡掉一多半的麻烦。

好吧,我承认这一次是 AI(DeepSeek) 的功劳。