我是怎么降低阿里云十倍流量消耗的

5 天前
 phpfpm

我是怎么降低阿里云十倍流量消耗的

先讲一个老笑话。

年轻牧师去外地教堂借宿,总觉得老牧师和修女有点不对劲。走后老牧师给他写信:

我有一把很漂亮的银汤匙,但自从你走后就找不到了。我不是说一定是你偷的,但事实是你走后它就没了。

年轻牧师回信:

我不是说你和修女睡在一起,但如果你睡在自己的床上,你早就找到汤匙了。

我这次排查阿里云 ECS 流量,也有点这个味道。

我不是说谁偷了我的银汤匙。
但我确实得自己回床上找。

我的 ECS 是按公网流量计费,一年大概 500 块钱的低配机器,不是什么大业务。正常情况下,公网流量一个月也就十来块钱的量级。

但最近一两个月很神奇:阿里云开始密集提醒我,几乎每天都有电话和短信进来,其中还有人工电话。

这就让我很困惑。

我一个一年 500 块的破 ECS ,流量一个月十来块钱的主儿,你天天给我打电话、发短信,找我干甚?

于是我去看账单,发现确实不太对:

2026-05:
流出流量 89.7 GB
费用 71.78 元

2026-06 排查时:
流出流量约 33.4 GB
费用约 26.7 元

阿里云这边先说清楚:账单本身是透明的,公网流量用了多少、多少钱,都能查。后来我问 HBR 云备份的问题,人工工单也给了解释,这点没问题。

问题是:账单告诉你钱花了,但不一定告诉你钱具体怎么花掉的。

于是我开始查本机。

先看 sar,发现封禁前 eth0 出流量有一个很高的持续基线:

200 - 400 Kbit/s

对这个站来说不正常。

然后翻 nginx access log ,发现一批 IP 很规律地拉静态资源:

/assets/*/jquery.js
/assets/*/bootstrap.css
/assets/*/bootstrap.js
/assets/*/yii.js
/css/site.css

特征也很一致:

空 Referer
老 Chrome UA
反复拉静态资源
行为克制、规律

主要集中在这些网段:

221.229.173.0/24
221.229.197.0/24
221.229.202.0/24
221.229.210.0/24

这种请求不一定会打爆机器,但对按流量计费的 ECS 很有效:你回多少静态文件,就产生多少公网出流量。

我先用 iptables 封掉这些网段。效果立刻出来了:

封禁前:
200 - 400 Kbit/s

封禁后:
30 - 50 Kbit/s

继续观察后:
1.5 - 4 KB/s

后来按新基线粗算:

约 6 GB / 月
约 5 元 / 月

也就是从 70 多元/月的量级,回到个位数或十元以内的量级。

后面我又写了个小脚本,每 10 分钟跑一次,看 nginx 日志,自动封类似行为:

大量拉 /assets/
空 Referer
旧 Chrome UA
探测 /.git 、/.env
借 /site/login?r=... 探测资源

为了避免误伤,只自动封单个 IP ,不自动封整个 /24

脚本上线后,又抓到一些典型 IP:

23.19.44.232
通过 /site/login?r=... 探测 .git/assets

64.89.163.50
连续请求 /.env

之后再看 nginx ,静态资源滥拉基本没了,剩下就是一些低频互联网噪声,比如 robots.txt/.git/config/.env、wp 插件路径扫描。

还有一个插曲:每天凌晨 2 点左右有上行峰值。查下来是阿里云 HBR / Cloud Backup 。它是本机常驻客户端等云端下发备份任务,不是 cron 。账单里 HBR 当前是 0 元,人工工单也解释了,这部分不是主要费用来源。

这次真正麻烦的地方不是“封 IP”本身,而是把这些东西串起来:

账单
sar
nginx access log
iptables
cron
HBR 日志
阿里云账单 API

说实话,如果没有 Codex / AI / Agent 在旁边一起查,这事对非专业运维非常不友好。
就算是专业运维来搞,也要掉不少头发。

省下来的几十块钱,可能还不够买米诺地尔。

最后总结一下:

账单是透明的。
HBR 工单解释也是正常的。
但流量来源不透明,排查成本很高。

我的解决方式很土:
看日志,找规律,封 IP ,写脚本,继续观察。

结果是:
出流量基线大概降了一个数量级。

还是那个笑话:

我不是说谁偷了我的银汤匙。
但我睡回自己的床上以后,确实把汤匙找到了。

335 次点击
所在节点    全球工单系统
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1220175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX