关于tcpdump:TCPDump使用
## TCP 抓包查看以后应用的网卡,个别就是流量变动最大的网卡:watch cat /proc/net/dev# 依据指标ip进行过滤tcpdump -i eth2 dst 192.168.10.200# 依据源端口进行过滤tcpdump src port 8088# 依据指标端口进行过滤tcpdump dst port 8088具体应用参考:https://blog.csdn.net/weixin_...
## TCP 抓包查看以后应用的网卡,个别就是流量变动最大的网卡:watch cat /proc/net/dev# 依据指标ip进行过滤tcpdump -i eth2 dst 192.168.10.200# 依据源端口进行过滤tcpdump src port 8088# 依据指标端口进行过滤tcpdump dst port 8088具体应用参考:https://blog.csdn.net/weixin_...
在网络问题的调试中,tcpdump应该说是一个必不可少的工具,和大部分linux下优良工具一样,它的特点就是简略而弱小。它是基于Unix零碎的命令行式的数据包嗅探工具,能够抓取流动在网卡上的数据包。 监听所有网卡所有包 tcpdump监听指定网卡的包 tcpdump -i ens18监听指定IP的包 tcpdump host 192.168.1.11监听指定起源IP tcpdump src host 192.168.1.11监听指标地址IP tcpdump dst host 192.168.1.11监听指定端口 tcpdump port 80监听TCP tcpdump tcp监听UDP tcpdump udp监听192.168.1.11的tcp协定的80端口的数据包 tcpdump tcp port 80 and src host 192.168.1.1111:59:07.836563 IP 192.168.1.11.39680 > hello.http: Flags [.], ack 867022485, win 502, length 011:59:07.836711 IP 192.168.1.11.39680 > hello.http: Flags [P.], seq 0:77, ack 1, win 502, length 77: HTTP: HEAD / HTTP/1.111:59:07.838462 IP 192.168.1.11.39680 > hello.http: Flags [.], ack 248, win 501, length 011:59:07.838848 IP 192.168.1.11.39680 > hello.http: Flags [F.], seq 77, ack 248, win 501, length 011:59:07.839192 IP 192.168.1.11.39680 > hello.http: Flags [.], ack 249, win 501, length 0监听IP之间的包 ...
一、简略疾速抓取客户端IP tcpdump tcp -i eth1 port 9200 >> /tmp/tcpdump.logless /tmp/tcpdump.log | grep 127.0.0.1 | awk '{print $3}' | grep -v '127.0.0.1' | awk -F . 'OFS="."{$NF="";print}' | sort | uniq -c | sort -nr
tcpdump采纳命令行形式对接口的数据包进行筛选抓取,其丰盛个性体现在灵便的表达式上。 不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump过程终止才会进行抓包。 例如: shell> tcpdump -nn -i eth0 icmp上面是具体的tcpdump用法。 1.1 tcpdump选项它的命令格局为: tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ] [ -s snaplen ] [ -w file ] [ expression ]抓包选项:-c:指定要抓取的包数量。留神,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能曾经解决了100个包,只不过只有10个包是满足条件的包。-i interface:指定tcpdump须要监听的接口。若未指定该选项,将从零碎接口列表中搜查编号最小的已配置好的接口(不包含loopback接口,要抓取loopback接口应用tcpdump -i lo), :一旦找到第一个符合条件的接口,搜查马上完结。能够应用'any'关键字示意所有网络接口。-n:对地址以数字形式显式,否则显式为主机名,也就是说-n选项不做主机名解析。-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。-N:不打印出host的域名局部。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。-P:指定要抓取的包是流入还是流出的包。能够给定的值为"in"、"out"和"inout",默认为"inout"。-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若呈现包截断, :输入行中会呈现"[|proto]"的标记(proto理论会显示为协定名)。然而抓取len越长,包的解决工夫越长,并且会缩小tcpdump可缓存的数据包的数量, :从而会导致数据包的失落,所以在能抓取咱们想要的包的前提下,抓取长度越小越好。输入选项:-e:输入的每行中都将包含数据链路层头部信息,例如源MAC和指标MAC。-q:疾速打印输出。即打印很少的协定相干信息,从而输入行都比拟简短。-X:输入包的头部数据,会以16进制和ASCII两种形式同时输入。-XX:输入包的头部数据,会以16进制和ASCII两种形式同时输入,更具体。-v:当剖析和打印的时候,产生具体的输入。-vv:产生比-v更具体的输入。-vvv:产生比-vv更具体的输入。其余功能性选项:-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都能够用于"-i"后。-F:从文件中读取抓包的表达式。若应用该选项,则命令行中给定的其余表达式都将生效。-w:将抓包数据输入到文件中而不是规范输入。能够同时配合"-G time"选项使得输入文件每time秒就主动切换到另一个文件。可通过"-r"选项载入这些文件以进行剖析和打印。-r:从给定的数据包文件中读取数据。应用"-"示意从规范输出中读取。举荐给你:值得珍藏!Linux零碎常用命令速查手册 所以罕用的选项也就这几个: tcpdump -Dtcpdump -c num -i int -nn -XX -vvv1.2 tcpdump表达式表达式用于筛选输入哪些类型的数据包,如果没有给定表达式,所有的数据包都将输入,否则只输入表达式为true的包。在表达式中呈现的shell元字符倡议应用单引号突围。 tcpdump的表达式由一个或多个"单元"组成,每个单元个别蕴含ID的修饰符和一个ID(数字或名称)。有三种修饰符: (1).type:指定ID的类型。 能够给定的值有host/net/port/portrange。例如"host foo","net 128.3","port 20","portrange 6000-6008"。默认的type为host。 (2).dir:指定ID的方向。 能够给定的值包含src/dst/src or dst/src and dst,默认为src or dst。例如,"src foo"示意源主机为foo的数据包,"dst net 128.3"示意指标网络为128.3的数据包,"src or dst port 22"示意源或目标端口为22的数据包。 (3).proto:通过给定协定限定匹配的数据包类型。 罕用的协定有tcp/udp/arp/ip/ether/icmp等,若未给定协定类型,则匹配所有可能的类型。例如"tcp port 21","udp portrange 7000-7009"。 所以,一个根本的表达式单元格局为"proto dir type ID" 除了应用修饰符和ID组成的表达式单元,还有关键字表达式单元:gateway,broadcast,less,greater以及算术表达式。 表达式单元之间能够应用操作符" and / && / or / || / not / ! "进行连贯,从而组成简单的条件表达式。如"host foo and not port ftp and not port ftp-data",这示意筛选的数据包要满足"主机为foo且端口不是ftp(端口21)和ftp-data(端口20)的包",罕用端口和名字的对应关系可在linux零碎中的/etc/service文件中找到。 ...