![列出一段时间内的活动网络端口和协议](https://linux22.com/image/788908/%E5%88%97%E5%87%BA%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E5%86%85%E7%9A%84%E6%B4%BB%E5%8A%A8%E7%BD%91%E7%BB%9C%E7%AB%AF%E5%8F%A3%E5%92%8C%E5%8D%8F%E8%AE%AE.png)
是否有一个 Linux 服务器实用程序可以列出在给定时间段内处于活动状态的网络端口和协议?
例如,我想知道上周哪些端口和协议至少活跃过一次。答案可能是这样的:TCP/80、TCP/443、UDP/5678...
答案1
您可以安装并激活auditd
。在审计配置中添加规则:
-a always,exit -F arch=b64 -S connect -F key=CONNECT
-a always,exit -F arch=b64 -S bind -F key=BIND
-a always,exit -F arch=b64 -S socket -F key=SOCKET
-a always,exit -F arch=b64 -S listen -F key=LISTEN
-a always,exit -F arch=b64 -S shutdown -F key=SHUTDOWN
-a always,exit -F arch=b64 -S close -F key=CLOSE
您将可以在审计日志中监控与套接字相关的系统调用。
如果您想查找现在的旧信息(并且没有audit
),我不认为您会在 Linux 中找到相关信息。
答案2
主机网络堆栈内跟踪的替代方法是跟踪线路上的流量。
对相关接口进行数据包捕获。在该主机上或路径中的某个位置。
有各种工具可以解析这些信息,当然还有 TCP 和 UDP 信息,以及一些应用程序的见解。Wireshark 是免费的,但它远非唯一的数据包分析工具。