TCPDump:捕获和记录特定协议/端口
时间:2020-01-09 10:43:50 来源:igfitidea点击:
问题描述:如何在Linux/UNIX下使用TCPDump工具捕获特定协议或者端口,例如80(http)?
如何使用TCPDump记录流量并在以后发现问题?
解决方法:TCPDump是用于网络监视和数据获取的工具。
它可以节省大量时间,并可以用于调试网络或者服务器相关的问题。
Tcpdump在网络接口上打印出与布尔表达式匹配的数据包内容的描述。
监控eth1接口上的所有数据包
tcpdump -i eth1
监视端口80(HTTP)上的所有流量
tcpdump -i eth1 'port 80'
监视端口25(SMTP)上的所有流量
tcpdump -vv -x -X -s 1500 -i eth1 'port 25'
其中:
-vv
:更详细的输出- -x:在分析和打印时,除了打印每个数据包的标题外,还要打印每个数据包的数据。
- -X:解析和打印时,除了打印每个数据包的标题外,还要以十六进制和ASCII格式打印每个数据包的数据(减去其链接级别的标题)。这对于分析新协议非常方便。
- -s 1500:Snarf从每个数据包中获取数据的字节数,而不是默认值68。这对于查看大量信息很有用。
-i eth1
:监视eth1接口
使用cronjobs捕获交通信息
tcpdump可用于发现攻击和其他问题。
让我们说您的网络服务器每天在午夜都面临问题。
在cron中输入以下命令。
它将计划捕获30,000个数据包并将原始数据写入名为port.80.debug.txt的文件:
@midnight /usr/sbin/tcpdump -n -c 30000 -w /root/port.80.debug.txt
第二天,您可以登录到框并阅读/root/port.80.debug.txt文件:
tcpdump -X -vv -r /root/port.80.debug.txt
可以使用这种简单的技术来记录和调试问题。