Techyou labs
文章RSS
评论RSS
登录
真正的爱应该超越生命的长度,心灵的宽度,灵魂的深度
搜索
关于作者
文章分类
Default
Linux/Unix
Database
Cloud
Networking
Security
Programming
最新文章
带你重走 TiDB TPS 提升 1000 倍的性能优化之旅
Unicode 中的 BIDI 双向性算法[转]
在linux中设置优先使用ipv4,而不是ipv6
linux下WPS高分辨率下因字体缩放导致字体发虚的问题
ssh-rsa not in pubkeyacceptedalgorithms问题解答及处理办法 Permission denied (publickey)
在 Ubuntu 22.04 中使用 PipeWire 替换 PulseAudio
MYSQL简单监控指标
deepin-wine6-stable下TIM悄悄崩溃问题
openwrt 设置ipv6地址分配
Redis 实战篇:巧用数据类型实现亿级数据统计
最新评论
renothing: 备注:路由器端优先设置ipv4并不影响客户端的ip...
renothing: 二次反向代理跟你应用程序得处理时间有关系吧?尤其是...
二次反向代理性能很差,怎么优化的?: 我也用nginx 做了个二次反向代理,但是并发连3...
hostyep: 交换链接么?目前每天保持30个左右对口IP,每月都...
yzhkpli: error while loading share...
美肤宝: 感谢分享。。。
lq: 嗯 喜欢弄得点单点
按月归档
March 2023
December 2022
November 2022
September 2022
August 2022
March 2022
January 2022
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
February 2021
September 2020
May 2020
September 2019
August 2019
July 2019
June 2019
May 2019
January 2019
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
April 2018
March 2018
December 2017
October 2017
September 2017
August 2017
April 2017
March 2017
February 2017
August 2016
July 2015
November 2014
September 2014
August 2014
July 2014
June 2014
July 2013
April 2013
September 2012
July 2012
May 2012
April 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
June 2009
May 2009
April 2009
March 2009
February 2009
December 2008
November 2008
September 2008
August 2008
July 2008
June 2008
常用标签
Mysql
nginx
mysql优化
linux
debian
Powered by
Typecho)))
Optimized by
EAimTY
使用Tcpflow取代tcpdump
August 1, 2017
TCPflow是一款功能强大的、基于命令行的免费开源工具,用于在Unix之类的系统(如Linux)上分析网络流量。它可捕获通过TCP连接接收或传输的数据,并存储在文件中供以后分析,采用的格式便于协议分析和调试。 放上官网地址:https://github.com/simsong/tcpflow 它实际上是类似tcpdump的工具,因为它处理来自网络或存储文件的数据包。它同样支持tcpdump支持的功能强大的过滤表达式。唯一的区别是,tcpflow让所有TCP数据包井然有序,并在单独的文件(每路方向的数据流有一个文件)中组装每路数据流,供以后分析。 功能特性包括一个高级插件系统,用于解压缩压缩的HTTP连接、撤消MIME编码或调用后期处理的第三方程序等等。 TCPflow有许多使用场景,包括了解网络数据包流量,还支持执行网络取证分析和泄露HTTP会话的内容。 ``` $ sudo tcpflow tcpflow: listening on enp0s3 ``` 默认情况下,TCPflow将所有捕获的数据存储在表单中有名称的文件中(如果你使用某些选项,比如timestamp,这可能不一样)。 ``` sourceip.sourceport-destip.destport 192.168.043.031.52920-216.058.210.034.00443 ``` 现在不妨列出目录,看看TCP流量是否已捕获在任何文件中。 ``` $ ls -1 total 20 -rw-r--r--. 1 root root 808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443 -rw-r--r--. 1 root root 59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920 ``` 如上所述,每路TCP流量存储在各自的文件中。从上面输出可以看出,有三个记录文件(transcript file),这表明TCPflow呈两个截然不同的方向,源IP在第一个文件中,目的地IP在第二个文件中,反之亦然。 第一个文件192.168.043.031.52920-216.058.210.034.00443含有从主机192.168.043.031(TCPflow运行所在的localhost,通过端口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运行所在的localhost,通过端口52920)的数据。 还生成了一个XML报告,含有关于该程序的信息,比如它是如何编译的、它在哪台计算机上运行以及每条TCP连接的记录。 你可能注意到了,TCPflow默认情况下将记录文件存储在当前目录下。-o选项可帮助你指定将写入文件的输出目录。 ``` sudo ls -l tcpflow_files total 32 -rw-r--r--. 1 root root 1665 Sep 19 12:56 157.240.016.035.00443-192.168.000.103.45986 -rw-r--r--. 1 root root 45 Sep 19 12:56 169.044.082.101.00443-192.168.000.103.55496 -rw-r--r--. 1 root root 2738 Sep 19 12:56 172.217.166.046.00443-192.168.000.103.39954 -rw-r--r--. 1 root root 68 Sep 19 12:56 192.168.000.102.00022-192.168.000.103.42436 -rw-r--r--. 1 root root 573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443 -rw-r--r--. 1 root root 4067 Sep 19 12:56 192.168.000.103.45986-157.240.016.035.00443 -rw-r--r--. 1 root root 38 Sep 19 12:56 192.168.000.103.55496-169.044.082.101.00443 -rw-r--r--. 1 root root 3159 Sep 19 12:56 report.xml ``` 你还可以将数据包的内容输出到stdout,并不将任何捕获的数据存储到文件,只需使用-c标志,如下所示。 想有效地进行测试,打开第二个端口,运行ping,或浏览互联网。你应该能够看到ping细节或浏览细节已被TCPflow捕获。 ``` $ sudo tcpflow -c ``` 可以捕获某个端口上的所有流量,比如端口80(HTTP)。以HTTP流量为例,你可以看到HTTP Headers以及随后的内容都在stdout上;如果去除-c参数选项符,它们都在一个文件中。 ``` $ sudo tcpflow port 80 ``` 想捕获来自某个网络接口的数据包,使用-i标志来指定接口名称。 ``` $ sudo tcpflow -i eth0 port 80 ``` 还可以指定目标主机(接受的值是IP地址、主机名或域名),如下所示: ``` $ sudo tcpflow -c host 192.68.43.1 OR $ sudo tcpflow -c host www.google.com ``` 你可以使用-a标志,启用使用所有浏览器的所有处理,这相当于-e all参数选项符。 ``` $ sudo tcpflow -a OR $ sudo tcpflow -e all ``` 还可以激活特定的扫描器;可用的扫描器包括md5、http、netviz、tcpdemux和wifiviz(运行tcpflow –H,即可查看关于每个扫描器的详细信息)。 ``` $ sudo tcpflow -e http OR $ sudo tcpflow -e md5 OR $ sudo tcpflow -e netviz OR $ sudo tcpflow -e tcpdemux OR $ sudo tcpflow -e wifiviz ``` 下面这个例子显示了如何启用除tcpdemux之外的所有扫描器。 ``` $ sudo tcpflow -a -x tcpdemux ``` TCPflow通常在捕获数据包之前试图让网络接口处于混杂模式。可以使用-p标志来阻止这种模式,如下所示: ``` $ sudo tcpflow -p -i eth0 ``` 想读取来自tcpdump pcap文件的数据包,使用-r标志。 ``` $ sudo tcpflow -f file.pcap ``` 可以使用-v或-d 10选项启用详细模式。 ``` $ sudo tcpflow -v OR $ sudo tcpflow -d 10 ``` 重要提醒:TCPflow的一个局限性是,目前它不了解IP片段,因而可能无法正确捕获作为TCP连接的一部分而传输的含有IP片段的数据。 想了解更多信息和用法选项,请参阅TCPflow参考手册页。 作者:SkTj 链接:https://www.jianshu.com/p/224ab9850cb4
暂无评论
添加新评论
称呼
Email
网站
取消回复
内容
发表评论