当前位置: 首页 > 科技观察

TCPflow:Linux中分析和调试网络流量的强大工具_0

时间:2023-03-13 21:15:04 科技观察

【.com快译】TCPflow是一个功能强大的、基于命令行的免费开源工具,用于Linux等类Unix系统分析网络流量。它捕获通过TCP连接接收或传输的数据,并将其存储在一个文件中,以便以后以有助于协议分析和调试的格式进行分析。它实际上是一个类似于tcpdump的工具,因为它处理来自网络或存储文件的数据包。它还支持tcpdump支持的强大的过滤器表达式。唯一的区别是tcpflow保持所有TCP数据包的顺序并将每个流组装在单独的文件中(每个流方向一个)以供以后分析。功能包括用于解压缩压缩的HTTP连接、撤销MIME编码或调用第三方程序进行后处理等的高级插件系统。TCPflow有很多使用场景,包括了解网络数据包流,还支持执行网络取证分析和窃取HTTP会话的内容。如何在Linux系统中安装TCPflow?TCPflow可以在主流GNU/Linux发行版的官方代码库中找到,可以使用包管理器安装,如下所示。$sudoaptinstalltcpflow#Debian/Ubuntu$sudoyuminstalltcpflow#CentOS/RHEL$sudodninstalltcpflow#Fedora22+安装TCPflow后,可以用超级用户权限运行,否则使用sudo命令。注意:它侦听活动网络接口(例如enp0s3)。$sudotcpflowtcpflow:listeningonenp0s3默认情况下,TCPflow将所有捕获的数据存储在一个文件中,文件名的格式为(如果您使用某些选项,这可能会有所不同,例如时间戳)。sourceip.sourceport-destip.destport192.168.043.031.52920-216.058.210.034.00443现在不妨列出目录并查看是否已在任何文件中捕获TCP流量。$ls-1total20-rw-r--r--.1rootroot808Sep1912:49192.168.043.031.52920-216.058.210.034.00443-rw-r--r--.1rootroot59Sep1912:49216.058.210.034.0044136,120如上所述每个TCP流量都存储在自己的文件中。从上面的输出可以看出,有3个抄本文件,说明TCPflow有两个截然不同的方向,源IP在第一个文件,目的IP在第二个文件,反之亦然。第一个文件192.168.043.031.52920-216.058.210.034.00443包含从主机192.168.043.031(运行TCPflow的本地主机,通过端口52920)传输到主机216.058.210.034(远程主机,通过端口443)的数据。第二个文件216.058.210.034.00443-192.168.043.031.52920包含从主机216.058.210.034(远程主机,通过端口443)传输到主机192.168.043.031(运行TCPflow的本地主机,通过端口52920)的数据。还会生成一个XML报告,其中包含有关该程序的信息,例如它是如何编译的、它在哪台计算机上运行以及每个TCP连接的记录。您可能已经注意到,TCPflow默认将日志文件存储在当前目录中。-o选项可帮助您指定将写入文件的输出目录。$sudotcpflow-otcpflow_files$sudols-ltcpflow_filestotal32-rw-r--r--。。.000.103.55496-rw-r--r--.1rootroot2738Sep1912:56172.217.166.046.00443-192.168.000.103.39954-rw-r--r--.1rootroot68Sep1912:56192.168.000.102.00022-192.168.000.103.42436-rw-r--r--.1rootroot573Sep1912:56192.168.000.103.39954-172.217.166.046.00443-rw-r--r--.1rootroot4067Sep1912:56192.168.000.103.45986-151.26.0160--r--.1rootroot38Sep1912:56192.168.000.103.55496-169.044.082.101.00443-rw-r--r--.1rootroot3159Sep1912:56report.xml也可以不发送任何数据包的内容输出到stdout来存储捕获的数据到文件,只需使用-c标志,如下所示。想要高效测试,打开第二个端口,运行ping,或浏览互联网。您应该能够看到ping详细信息或浏览TCPflow捕获的详细信息。$sudotcpflow-c可以捕获某个端口上的所有流量,例如端口80(HTTP)。以HTTP流量为例,可以看到HTTPHeaders和后续内容都在stdout上;如果删除-c参数选项,它们都在一个文件中。$sudotcpflowport80想要从某个网络接口捕获数据包,使用-i标志指定接口名称。$sudotcpflow-ieth0port80也可以像这样指定目标主机(可接受的值是IP地址、主机名或域名):$sudotcpflow-chost192.68.43.1OR$sudotcpflow-chostwww.google.com您可以使用-a标志,启用所有使用所有浏览器的处理,相当于-eall参数选项。$sudotcpflow-aOR$sudotcpflow-eall也可以激活特定的扫描器;可用的扫描器包括md5、http、netviz、tcpdemux和wifiviz(运行tcpflow-H以查看有关每个扫描器的详细信息)。$sudotcpflow-ehttp或$sudotcpflow-emd5或$sudotcpflow-enetviz或$sudotcpflow-etcpdemux或$sudotcpflow-ewifiviz以下示例显示如何启用除tcpdemux之外的所有扫描程序。$sudotcpflow-a-xtcpdemuxTCPflow通常会在捕获数据包之前尝试将网络接口置于混杂模式。这种模式可以通过使用-p标志来阻止,如下所示:$sudotcpflow-p-ieth0想要从tcpdumppcap文件中读取数据包,请使用-r标志。$sudotcpflow-ffile.pcap可以使用-v或-d10选项来启用详细模式。$sudotcpflow-vOR$sudotcpflow-d10重要说明:TCPflow的一个限制是它目前不知道IP片段,因此可能无法正确捕获包含作为TCP连接的一部分传输的IP片段的数据。有关详细信息和使用选项,请参阅TCPflow参考手册页。$mantcpflowTCPflowGithub代码仓库:https://github.com/simsong/tcpflow就是这样!TCPflow是一款功能强大的TCP流量记录器,适用于了解网络数据包流量、进行网络取证分析等。试试看,欢迎交流。原标题:TCPflow–在Linux中分析和调试网络流量,作者:AaronKili