Linux进行网络的监控和调优,请问使用tcpdump如何监视指定协议的数据包?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Linux进行网络的监控和调优,请问使用tcpdump如何监视指定协议的数据包?

2021-11-01 20:59:25 197 1

Linux进行网络的监控和调优,请问使用tcpdump如何监视指定协议的数据包?

取消 提交回答
全部回答(1)
  • 无敌小将
    2021-11-01 21:12:47

    您好,请参考如下示例:

    打印TCP会话中的的开始和结束数据包, 并且数据包的源或目的不是本地网络上的主机.(nt: localnet, 实际使用时要真正替换成本地网络的名字))

    tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'
    
    

    打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包.(ipv6的版本的表达式可做练习)

    tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
    
    

    (nt: 可理解为, ip[2:2]表示整个ip数据包的长度, (ip[0]&0xf)<<2)表示ip数据包包头的长度(ip[0]&0xf代表包中的IHL域, 而此域的单位为32bit, 要换算

    成字节数需要乘以4, 即左移2. (tcp[12]&0xf0)>>4 表示tcp头的长度, 此域的单位也是32bit, 换算成比特数为 ((tcp[12]&0xf0) >> 4) << 2,  即 ((tcp[12]&0xf0)>>2). ((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0 表示: 整个ip数据包的长度减去ip头的长度,再减去 tcp头的长度不为0, 这就意味着, ip数据包中确实是有数据.对于ipv6版本只需考虑ipv6头中的'Payload Length' 与 'tcp头的长度'的差值, 并且其中表达方式'ip[]'需换成'ip6[]'.)

    打印长度超过576字节, 并且网关地址是snup的IP数据包

    tcpdump 'gateway snup and ip[2:2] > 576'
    
    

    打印所有IP层广播或多播的数据包, 但不是物理以太网层的广播或多播数据报

    tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
    
    

    打印除'echo request'或者'echo reply'类型以外的ICMP数据包( 比如,需要打印所有非ping 程序产生的数据包时可用到此表达式 . (nt: 'echo reuqest' 与 'echo reply' 这两种类型的ICMP数据包通常由ping程序产生))

    tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
    
    0 0
相关问答

1

回答

linux中检查网络的目的是什么?

2021-12-05 18:27:31 60浏览量 回答数 1

1

回答

Linux中Is命令的功能是什么呢?

2022-04-02 00:33:08 384浏览量 回答数 1

1

回答

linux有哪些挂载命令?

2022-04-02 00:34:21 307浏览量 回答数 1

1

回答

怎么在Linux中使用locate命令的通配符模式啊?

2022-04-02 00:35:33 97浏览量 回答数 1

1

回答

Linux中locate命令的-c选项是什么意思啊?

2022-04-02 00:37:02 131浏览量 回答数 1

1

回答

Linux中locate命令和find有什么不同啊?

2022-04-02 00:39:17 107浏览量 回答数 1

1

回答

Linux中重方向中的tr命令表示什么呀?

2022-04-02 00:40:13 366浏览量 回答数 1

1

回答

怎么使用Linux中locate命令的-e选项啊?

2022-04-02 00:41:21 100浏览量 回答数 1

1

回答

Linux中Is命令是什么?

2022-03-30 18:36:42 450浏览量 回答数 1

1

回答

Linux命令中pwd命令是做什么的?

2022-03-30 18:40:54 154浏览量 回答数 1
10
文章
1924
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载