如何监控一段时间内的 TCP 连接

如何监控一段时间内的 TCP 连接

我有一个应用程序,它是 Windows 服务。它使用 TCP/IP 访问许多其他服务。例如 SQL Server 数据库、Informix 数据库、邮件服务器等。

例如,它还将访问不同服务器上的多个 SQL 服务器实例。

如果我想在一天的时间里记录它所连接的所有不同的服务,我该怎么做?

如果我使用 TCPView,我可以看到我想要的所有信息,例如远程地址、端口,但它是一个实时视图,因此数据不会被保存。

答案1

进程监控会做你正在寻找的事情

在此处输入图片描述

设置好过滤器后,请务必选择File->Backing Files...一个文件来保存日志,否则一旦虚拟内存耗尽或关闭程序,它将开始删除旧日志。

一旦设置了新的支持源,请务必重新启动程序,直到您关闭并重新打开程序,更改才会生效!

答案2

我认为Wireshark会做你想做的事。

您可以使用其强大的过滤器来仅选择来自特定端口或 IP 的 TCP 流量。简而言之,您可以让它运行并仅收集对您重要的数据。您可以看到通过网络适配器的所有内容的数据包级通信。

答案3

如果您正在运行 Windows,您可以设置运行脚本的计划作业:

netstat -t > C:\your_output_path

your_output_path 文件可以包含变量 %time% 和 %date%,以便每次脚本运行时,它都会将数据输出到名称中带有时间和日期的文件中。

如果你安装类似的工具Unix实用程序您可以使用 grep 和 gawk 命令过滤掉不需要的记录,只留下需要的记录。例如,要获取 PostgreSQL 连接,您可以执行

netstat -t | grep 5432

按照您想要的频率运行此脚本,您将获得一堆文件,其中包含您在该时间段内的连接运行记录。

答案4

我刚刚注意到一个较旧的 SysInternals 实用程序名为TCP视图显然它附带一个控制台版本...就像是增强版的 TCP netstat。

相关内容