起因
有天,在群晖的 Web 界面,看到网络监控那里,上传速度竟然有 1-2M/s,漏油器上也看到群晖的上传很高,也就是说流量上传到了外网,卧槽,这到底是哪个进程吃我带宽的,找出来我非得杀掉不可。
可惜,群晖自带的 “资源监控” 无法查看进程对网络的占用。
过程
通常我们在 Linux 上是如何做的呢?1
Linux/Mac
- iftop
通过 iftop
,我们可以找出占用 上传/下载 最高的TCP连接
这里以 Debian 为例吧
安装 iftop
1
apt install iftop
运行 iftop
(默认是监听 eth0)1
iftop
可以通过 -i
来指定其他的网络接口,比如1
iftop -P -i en8
参数说明1
2-i interface 监听指定网络接口
-P 显示主机名及其端口
- netstat
上一步查到的 TCP 连接,包含 remote ip 和 端口。
使用 netstat
,可以定位到具体的进程。1
netstat -pantu | grep [port]
在群晖上
因为群晖的系统,虽然是基于 debian,但是默认没有包管理器,无法通过 apt/yum 安装 iftop。不过群晖支持 docker。
群晖 - 套件中心 - docker - 安装
ssh 连接群晖
janten/iftop 这个镜像为我们提供了iftop
命令1
docker run -it --rm --net host janten/iftop -P -i eth0
如果本地没有没有这个镜像,会自动进行拉取,拉取镜像完成后,就可以看到 iftop 的运行界面
- 使用
netstat
定位进程1
netstat -pantu | grep [port]
这样就能找到具体的进程了
参考: