linux
如何抓包
========================================================
============
from: http://fanqiang.chinaunix.net/app/other/2006-07-14/4833.shtml
linux
下抓包命令
--tcpdump
的使用
来源
:
不详
(2006-07-14 11:09:04)
例
:tcpdump host 172.16.29.40 and port 4600 -X -s 500
tcpdump
采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c
数量
] [ -F
文件名
]
[ -i
网络接口
] [ -r
文件名
] [ -s snaplen ]
[ -T
类型
] [ -w
文件名
] [
表达式
]
1. tcpdump
的选项介绍
-a
将网络地址和广播地址转变成名字;
-d
将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd
将匹配信息包的代码以
c
语言程序段的格式给出;
-ddd
将匹配信息包的代码以十进制的形式给出;
-e
在输出行打印出数据链路层的头部信息;
-f
将外部的
Internet
地址以数字的形式打印出来;
-l
使标准输出变为缓冲行形式;
-n
不把网络地址转换成名字;
-t
在输出的每一行不打印时间戳;
-v
输出一个稍微详细的信息,例如在
ip
包中可以包括
ttl
和服务类型的信息;
-vv
输出详细的报文信息;
-c
在收到指定的包的数目后,
tcpdump
就会停止;
-F
从指定的文件中读取表达式
,
忽略其它的表达式;
-i
指定监听的网络接口;
-r
从指定的文件中读取包
(
这些包一般通过
-w
选项产生
)
;
-w
直接将包写入文件中,并不分析和打印出来;
-T
将监听到的包直接解释为指定的类型的报文,常见的类型有
rpc
(远程过程
调用)和
snmp
(简单
网络管理协议;)
2. tcpdump
的表达式介绍
表达式是一个正则表达式,
tcpdump
利用它作为过滤报文的条件,如果一个报文满足表
达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会
被截获。
在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括
host
,
net
,
port,
例如
host 210.27.48.2
,指明
210.27.48.2
是一台主机,
net 202.0.0.0
指明
202.0.0.0
是一个网络地址,
port 23
指明端口号是
23
。如果没有指定类型,缺省的类型是
host.