神探tcpdump第六招
第六招,仍然会讲解tcpdump的过滤表达式,这次思路很简单,就是直接举例子,其实就是man tcpdump中的例子,很直观,很受用。
==
【例子1】- 我想抓到那些通过eth0网卡的,且来源是roclinux.cn服务器或者目标是roclinux.cn服务器的网络包
tcpdump -i eth0 'host roclinux.cn'
【例子2】- 我想抓通过eth0网卡的,且roclinux.cn和baidu.com之间通讯的网络包,或者,roclinux.cn和qiyi.com之间通讯的网络包
tcpdump -i eth0 'host roclinux.cn and (baidu.com or qiyi.com)'
【例子3】- 我想获取使用ftp端口和ftp数据端口的网络包
tcpdump 'port ftp or ftp-data'
大家是不是会有一个疑问“这个ftp、ftp-data到底对应哪个端口?除了ftp/ftp-data,还有哪些服务名称我可以直接用呢?”
嗯,这是个好问题,答案现在揭晓咯。
在Linux系统中,/etc/services这个文件里面,就存储着所有知名服务和传输层端口的对应关系。这个对应关系是由IANA组织(the Internet Assigned Numbers Authority,互联网数字分配机构)来全权负责的,你可以到这个链接http://www.iana.org/assignments/port-numbers通过Web方式查到。
如果你直接把/etc/services里的ftp对应的端口值从21改为了8888,那么tcpdump就会去抓端口含有8888的网络包了。
【例子4】- 我想获取roclinux.cn和baidu.com之间建立TCP三次握手中第一个网络包,即带有SYN标记位的网络包,另外,目的主机不能是qiyi.com
tcpdump 'tcp[tcpflags] & tcp-syn != 0 and not dst host qiyi.com'
这个语句看着比较复杂,其实如果要把这段解释清楚的确不容易,需要你具备计算机网络专业知识才行。这个我会安排一招来讲。
【例子5】- 打印IP包长超过576字节的网络包
tcpdump 'ip[2:2] > 576'
【例子6】- 打印广播包或多播包,同时数据链路层不是通过以太网媒介进行的。
tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
最后三个例子,或许你看得有些晕头转向,没关系,先有个感官认识,看完接下来的几篇文章后,相信保证你就明白了:)
谢谢!
建议继续学习:
- 神探tcpdump第一招 (阅读:9280)
- 使用wireshark分析网络报文 (阅读:7541)
- 记一次丢包网络故障 (阅读:6197)
- 神探tcpdump第四招 (阅读:4917)
- ssldump (阅读:4975)
- 神探tcpdump第三招 (阅读:4615)
- 神探tcpdump第五招 (阅读:4501)
- tcpdump匹配http头 (阅读:3447)
- 调试利器之tcpdump详解 (阅读:3283)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:rocrocket 来源: linux大棚-roclinux.cn
- 标签: tcpdump
- 发布时间:2012-09-03 23:14:24
-
[1169] WordPress插件开发 -- 在插件使用 -
[69] 解决 nginx 反向代理网页首尾出现神秘字 -
[45] Java开发岗位面试题归类汇总 -
[44] web开发设计人员不可不用的在线web工具和 -
[33] Rax 系列教程(长列表) -
[32] 一句话crontab实现防ssh暴力破解 -
[32] 手机产品设计方向 -
[28] 如何建立合适的索引? -
[28] 程序员疫苗:代码注入 -
[28] oracle技术方面的路线
