有没有可以通过进程和域名记录网络流量的程序?

use*_*636 8 networking monitoring

我想弄清楚在一段时间内哪些进程正在与哪些网站进行通信。我发现的所有程序(例如 ss)都会列出此时打开然后退出的连接。

实际上,我想要的是像wireshark这样的东西,但它会记录进程名称。

真的没有这样的程序吗?

meu*_*euh 6

如果您有最新的内核(最好至少是 4.9,但显然有些功能可以在 4.2 上运行),那么您可以利用新的dtrace工具,它允许您拦截connect()内核中的每个 tcp 调用并显示进程 id、远程 ip地址和端口。

由于这不会轮询,因此您不会错过任何短暂的连接。来自 2016 年 Brendan Gregg博客的典型输出是

# tcpconnect
PID    COMM    IP SADDR            DADDR            DPORT
1479   telnet  4  127.0.0.1        127.0.0.1        23
1469   curl    4  10.201.219.236   54.245.105.25    80
1469   curl    4  10.201.219.236   54.67.101.145    80
1991   telnet  6  ::1              ::1              23
2015   ssh     6  fe80::2000:bff:fe82:3ac fe80::2000:bff:fe82:3ac 22
Run Code Online (Sandbox Code Playgroud)

更多示例位于bcc-tools包源代码中。要安装的构建包可用于多个发行版,或者您可以按照编译说明进行操作。