【openwrt】Linux系统 tcpdump 抓包命令使用教程 tcpdump简介 tcpdump 是Linux系统下的一个强大的命令,可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 本教程对tcpdump命令使用进行讲解说明,通过本教程您可以学会linux系统下使用tcpdump命令进行网络抓包,实现对数据包进行捕获分析。 查看系统是否安装 tcpdump 直接输入tcpdump命令运行 root@OMJ:~# tcpdump -ash: tcpdump: not found 更新opkg 确保openwrt硬件已连接网络 root@OMJ:~# opkg update Updated list of available packages in /var/opkg-lists/chaos_calmer_base. Signature check passed. Updated list of available packages in /var/opkg-lists/chaos_calmer_luci. Signature check passed. Updated list of available packages in /var/opkg-lists/chaos_calmer_management. Signature check passed. Updated list of available packages in /var/opkg-lists/chaos_calmer_packages. Signature check passed. Updated list of available packages in /var/opkg-lists/chaos_calmer_routing. Signature check passed. Updated list of available packages in /var/opkg-lists/chaos_calmer_telephony. Signature check passed. 安装tcmdump root@OMJ:~# opkg install tcpdump Installing tcpdump (4.5.1-4) to root... Installing libpcap (1.5.3-1) to root... Configuring libpcap. Configuring tcpdump. tcpdump 命令格式介绍 首先我们对Linux系统下tcpdump命令格式进行一个介绍说明,在下面的使用教程中讲到tcpdump命令示例时,您就可以参考tcpdump命令参数说明进行学习。 查看帮助tcpdump --help tcpdump version 4.5.1 libpcap version 1.5.3 Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ -P in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ] [ -Z user ] [ expression ] 会显示版本及参数信息 命令行参数介绍:
tcpdump 命令使用示例 linux系统下执行tcpdump命令需要root账号或者具备sudo权限的账号,否则执行tcpdump命令说,系统会提示tcpdump: no suitable device found。 在下面的例子中,-i eth0 参数表示只抓取 eth0 接口数据包,不加-i eth0 是表示抓取所有的接口包括 lo。 01、抓取所有网络包,并在terminal中显示抓取的结果,将包以十六进制的形式显示。 tcpdump02、抓取所有的网络包,并存到 result.cap 文件中。 tcpdump -w result.cap03、抓取所有的经过eth0网卡的网络包,并存到result.cap 文件中。 tcpdump -i eth0 -w result.cap04、抓取源地址是192.168.1.100的包,并将结果保存到 result.cap 文件中。 tcpdump src host 192.168.1.100 -w result.cap05、抓取地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。 tcpdump host 192.168.1.100 -w result.cap06、抓取目的地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。 tcpdump dest host 192.168.1.100 -w result.cap07、抓取主机地址为 192.168.1.100 的数据包 tcpdump -i eth0 -vnn host 192.168.1.10008、抓取包含192.168.1.0/24网段的数据包 tcpdump -i eth0 -vnn net 192.168.1.0/2409、抓取网卡eth0上所有包含端口22的数据包 tcpdump -i eth0 -vnn port 2210、抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令: tcpdump udp -i eth0 -vnn11、抓取经过 eth0 网卡的源 ip 是 192.168.1.100 数据包,src参数表示源。 tcpdump -i eth0 -vnn src host 192.168.1.10012、抓取经过 eth0 网卡目的 ip 是 192.168.1.100 数据包,dst参数表示目的。 tcpdump -i eth0 -vnn dst host 192.168.1.10013、抓取源端口是22的数据包 tcpdump -i eth0 -vnn src port 2214、抓取源ip是 192.168.1.100 且目的ip端口是22的数据包 tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 2215、抓取源ip``192.168.1.100``22 tcpdump -i eth0 -vnn src host 192.168.1.100 or port 2216、抓取源ip``192.168.1.100``22 tcpdump -i eth0 -vnn src host 192.168.1.100 and not port 2217、抓取源ip是192.168.1.100且目的端口是22,或源ip是192.168.1.102且目的端口是80的数据包。 tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )18、把抓取的数据包记录存到/tmp/result文件中,当抓取100个数据包后就退出程序。 tcpdump –i eth0 -vnn -w /tmp/result -c 10019、从/tmp/result记录中读取tcp协议的数据包 tcpdump -i eth0 tcp -vnn -r /tmp/result20、想要截获所有192.168.1.100的主机收到的和发出的所有的数据包: tcpdump host 192.168.1.10021、如果想要获取主机192.168.1.100除了和主机192.168.1.101之外所有主机通信的ip包,使用命令: tcpdump ip host 192.168.1.100 and ! 192.168.1.10122、如果想要获取主机 192.168.1.100 接收或发出的 telnet 包,使用如下命令: tcpdump tcp port 23 host 192.168.1.100写在最后 至此,本Linux系统 tcpdump 抓包命令使用教程已经讲解完,本教程中更多的只是一些简单的示例,如果希望更复杂的抓取,可以参考tcpdump抓包命令命令格式进行学习使用 |
|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号 ) |Sitemap
GMT+8, 2024-9-30 23:14 , Processed in 0.135065 second(s), 36 queries .
Powered by Discuz! X3.2 Licensed
© 2001-2013 Comsenz Inc.