use*_*636 8 networking monitoring
我想弄清楚在一段时间内哪些进程正在与哪些网站进行通信。我发现的所有程序(例如 ss)都会列出此时打开然后退出的连接。
实际上,我想要的是像wireshark这样的东西,但它会记录进程名称。
真的没有这样的程序吗?
如果您有最新的内核(最好至少是 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包源代码中。要安装的构建包可用于多个发行版,或者您可以按照编译说明进行操作。
归档时间: |
|
查看次数: |
5419 次 |
最近记录: |