nethogs启动
- 安装nethogs
sudo apt install nethogs
- 流量检测
sudo nethogs
- 效果如下:
- 可以看到收发流量的进程PID,进程目录,发送设备,以及收发速率;
- 但这里有个unkown TCP进程是什么呢?
- 可以用ps -e 列出操作前后的进程名,相减极为发起该连接的进程;
- 用netstat查看已经足够
sudo netstat -tulnp
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 9027/systemd-resolv
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 9027/systemd-resolv
udp 0 0 0.0.0.0:38776 0.0.0.0:* 1330/avahi-daemon:
udp 0 0 127.0.0.54:53 0.0.0.0:* 9027/systemd-resolv
udp 0 0 127.0.0.53:53 0.0.0.0:* 9027/systemd-resolv
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1330/avahi-daemon:
udp6 0 0 :::5353 :::* 1330/avahi-daemon:
udp6 0 0 :::38350 :::* 1330/avahi-daemon:
- 理论上,netstat检测不到的进程,nethogs也检测不到
- 应该是系统解析进程systemd-resolv,nethogs没有权限访问
破案
- link:https://askubuntu.com/questions/401197/how-can-i-close-a-root-process-unknown-tcp-that-shows-up-in-nethogs
- 善用搜索引擎,这是nethogs程序自己添加的进程~~
查看进程访问资源—lsof
lsof(List Open Files)是一个用于列出当前系统中已打开文件的工具。它可以显示所有已打开文件的相关信息,包括文件的名称、文件标识符(file descriptor)、文件类型、文件的访问模式、占用的存储空间,以及该文件被哪个进程打开等等。通过使用lsof命令,可以帮助用户查找到占用文件的进程,进一步定位和解决相关问题。
- 查看进程号=6573访问的所有资源
lsof -p 6573