在发生时记录传出连接

Ric*_*ich 26 tcp netstat

有没有办法记录进程创建的所有传出连接?我知道,netstat但这似乎更像是一个时间点的快照,而不是在一段时间内运行和记录信息的东西。

我只需要 IP 或主机名、端口和建立连接的过程。

Gil*_*il' 18

在 Linux 上,您可以设置审计子系统来记录每一次建立网络连接的尝试。有关审计子系统的信息,请阅读auditctl手册页本教程此站点上的其他示例auditd如有必要,安装您的发行版软件包,然后

auditctl -A exit,always -S connect
Run Code Online (Sandbox Code Playgroud)

日志在/var/log/audit/audit.log我知道的所有发行版中。您还可以搜索他们ausearch

  • 我需要确定哪个进程正在进行传出连接。这立即做到了。为避免泛滥日志,请在之后删除规则:`auditctl -d exit,always -S connect` (3认同)

Lar*_*off 5

如果您能够安装自定义内核,则应该查看SystemTap。有很多示例如何跟踪网络活动。


Sea*_* C. 3

在 Linux 上,您可以使用ip_conntrack来完成此操作。它是一个连接跟踪模块,通常用于监视由防火墙/NAT 盒管理的异常行为协议(如 FTP)的连接。

modprobe ip_conntrack
cat /proc/net/ip_conntrack
Run Code Online (Sandbox Code Playgroud)

您可以 grep 伪文件来查看已建立的连接,并进一步 grep 源 IP 以查看它何时源自您的盒子。