nethogs 报 Creating socket failed / are you root?升级即可

root 下跑 nethogs 仍提示 Creating socket failed、are you root 时,多为旧版 bug;源码升级到 0.8.1 可解决。

客户服务器带宽跑满,我上去装了 nethogs 想看是哪个进程在吃流量。用 root 启动:

[root@zploo~]# nethogs

结果却提示:

Creating socket failed while establishing local IP - are you root?

明明已经是 root,还问你是不是 root——很气人。

原因

查下来这是旧版 nethogs 的 bug,并不是权限真的不够。发行版仓库里的包版本偏老时,容易踩中:创建本地 IP 相关 socket 失败,却误报成「你不是 root」。

解决:升级到 0.8.1

从源码装较新的 0.8.1(当时验证可用):

wget -c https://github.com/raboof/nethogs/archive/v0.8.1.tar.gz
tar xf v0.8.1.tar.gz
cd ./nethogs-0.8.1/
make && sudo make install

编译前若缺依赖,按系统补齐(常见如 libncurses-dev、libpcap-dev 等)。装完再执行 nethogs,应能正常按进程显示流量。

使用提示

  • 仍建议用 root 或具备抓包权限的用户运行;
  • 指定网卡:nethogs eth0(网卡名按 ip a 实际为准);
  • 看完带宽归属,再决定是限速、杀进程还是查被入侵。

为何记下

一人公司做运维支持,带宽异常是高频告警。工具报「are you root?」时先别被带偏——先确认版本是不是旧到有 bug。把「nethogs + Creating socket failed → 升到 0.8.1」写进备忘,下次不用再搜一轮。

No comments yet