公众号旧文

我是如何抓到每天拉我 2GB 流量的人的

作者:胖子阅读 —

我在自己的服务器上,部署了流量统计服务,近几天在一台 VPS 上,我发现了一件有意思的事情。

图片

这台机器平时基本闲着,于是我就顺手开了两个测速服务:

  • HTTP 下载(50M / 100M 文件)
  • iperf3(50001 端口)

从上图可以看到最近每天都会消耗 3GB 左右的流量,而且很规律。

显然有人在用,但我完全不知道是谁。

先用系统自带工具看了一下:

vnstat

结果很明显:

yesterday      3.00 GiB
today        337.57 MiB

流量确实存在。

但问题是:

  • 不知道是谁
  • 不知道什么时候来的
  • 不知道是 HTTP 还是 iperf3

第一步:确认“嫌疑服务”

我先查端口:

ss -ltnp | grep -E '18080|50001'

结果:

LISTEN 0 4096 *:50001 *:* users:(("iperf3",pid=538152,fd=3))

HTTP(18080)没了,只有 iperf3 在跑。

再进一步确认:

ps -fp 538152
/usr/bin/iperf3 --server -p 50001

锁定目标:流量基本来自 iperf3。

第二步:它是怎么启动的?

一开始我以为这是个“野生进程”,但查了一圈之后发现:

grep -r "50001" /etc

命中了关键文件:

/etc/systemd/system/iperf3.service.d/override.conf

再看服务状态:

systemctl status iperf3
Loaded: loaded (/lib/systemd/system/iperf3.service)
Drop-In: override.conf
Active: active (running)

这是一个 systemd 开机自启服务。

而且我自己还 override 过,只是现在忘了。

第三步:问题是之前没有日志

虽然服务在跑,但 iperf3 默认不记录连接日志。

这就导致,有人用,但我完全看不到是谁。

第四步:接管日志输出

iperf3 没有 --logfile 参数

正确做法是:用 systemd 接管 stdout

修改:

nano /etc/systemd/system/iperf3.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/iperf3 -s -p 50001
StandardOutput=append:/root/iperf3.log
StandardError=append:/root/iperf3.log

然后重启服务:

systemctl daemon-reload
systemctl restart iperf3

现在可以实时看日志:

tail -f /root/iperf3.log

第五步:统计到底是谁拿走了流量

光知道谁连接还不够,我还想知道是谁拿走了那 3GB。

于是我加了 iptables 统计:

iptables -N IPERF_MONITOR
iptables -A INPUT -p tcp --dport 50001 -j IPERF_MONITOR
iptables -A IPERF_MONITOR -j RETURN

查看:

iptables -L IPERF_MONITOR -v -n

未来就会出现:

bytes = 2147483648
source = 1.2.3.4

就能直接锁定哪个 IP 拉了多少流量

第六步:记录“作案时间”

我怀疑这是“定时行为”,于是加了一个简单监控脚本:

ss -nt | grep :50001

配合循环记录:

while true; do
  ss -nt | grep :50001 >> log
  sleep 5
done

这样就能得到“作案”时间和IP:

==== 03:21 ====
1.2.3.4 -> 50001

从被白嫖到全链路监控

我现在已经可以做到:

能力 工具
谁在用 iperf3.log
用了多少 iptables
每天总量 vnstat
什么时候来 自定义脚本

后记

我不介意有人用这台机器,反而觉得挺有意思。

欢迎使用,但我已经能看到你了。

如果你也开了测速服务,建议你至少:

  • 打开日志
  • 做流量统计

否则你可能每天都在被白嫖,而毫不知情。

请在微信客户端打开

扩展阅读:


我发现有人每天在拿我的服务器测速

我发现有人每天在拿我的服务器测速(2)

网速到底怎么测才科学?测速工具的选择