tcpdump命令详解

tcpdump [-AennqX] [-i 接口] [-w 存储文件名] [-c 次数] [-r 文件] [所要摘取的数据包数据形式]

选项与参数

-A:数据包的内容以ASCII显示,通常用来抓取WWW的网页数据包数据

-e:使用数据链路层(OSI第二层)的MAC数据包来显示

-nn:直接以IP及port number显示,而非主机名与服务名称

-q:仅列出较为简短的数据包信息,每一行的内容比较精简

-X:可以勒出十六进制(hex)以及ASCII的数据包内容,对应监听数据包内容很有用

-i:后面接要监听的网络接口,例如eth0 lo ppp0等的界面

-w:如果你要将监听所得的数据包存储下来,用这个参数就对了,后面接文件名

-r:从后面接的文件将数据包数据读出来。这个文件是已经存在的文件,并且这个文件是由-w所制作出来的

-c:监听的数据包数,如果没有这个参数,tcpdump会持续不断的监听

范例1:以IP与port number获取eth0这个网卡上的数据,持续3s

tcpdump -i eth0 -nn

[root@Action www]# tcpdump -i eth0 -nn

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

13:07:01.570199 IP 10.202.72.116.53 > 10.51.105.19.62017: 8815 4/2/4 CNAME www.cnz5.com., CNAME ss2-china.com., A 45.113.123.18, A 45.113.123.13 (250)

13:07:22.176218 IP 10.51.105.19.123 > 100.100.3.1.123: NTPv4, Client, length 48

13:07:27.445824 ARP, Request who-has 10.51.111.247 tell 10.51.105.19, length 28

13:07:27.445945 ARP, Reply 10.51.111.247 is-at 70:f9:6d:ee:6a:af, length 28

13:07:30.178253 IP 10.51.105.19.123 > 100.100.5.1.123: NTPv4, Client, length 48

13:07:38.178260 IP 10.51.105.19.123 > 100.100.3.1.123: NTPv4, Client, length 48

13:07:46.177498 IP 10.51.105.19.123 > 100.100.5.1.123: NTPv4, Client, length 48

13:07:54.172070 IP 10.51.105.19.123 > 100.100.3.1.123: NTPv4, Client, length 48

13:08:01.731852 IP 10.51.105.19.15384 > 10.202.72.118.53: 37476+ A? cnz.co. (24)

13:08:01.845845 IP 10.202.72.118.53 > 10.51.105.19.15384: 37476 4/2/4 CNAME www.cnz5.com., CNAME ss2-china.com., A 45.113.123.13, A 45.113.123.18 (246)

13:08:02.178239 IP 10.51.105.19.123 > 100.100.5.1.123: NTPv4, Client, length 48

13:08:07.708838 ARP, Request who-has 10.51.111.247 tell 10.51.105.19, length 28

13:08:07.708912 ARP, Reply 10.51.111.247 is-at 70:f9:6d:ee:6a:af, length 28

^C

13 packets captured

13 packets received by filter

0 packets dropped by kernel

说明

13:07:01.570199 该数据捕获的时间

IP 通过的通信协议IP

10.202.72.116.53 > 传输端是10.51.105.19.62017,传送的port number是62017,大于(>)的符号指的是数据包的传输方向

tcpdump -i eth0 -nn port 21

tcpdump -i lo -nn

tcpdump -i lo -nn -X 'port 21' //可以监听到ftp的帐号密码

tcpdump -i lo -nn -X 'port 22 and src host 192.168.1.101'

//监听来自eth0网卡,且通信协议为port22,目标数据包来源为192.168.1.101的数据包

route [-nee]

route add [-net][-host] [网络或主机] netmask [mask] [gw|dev]

route del [-net][-host] [网络或主机] netmask [mask] [gw|dev]

查看的参数

-n:不要使用通信协议或主机名,直接使用IP或port number

-ee:显示更详细的信息

增加add与删除del路由的相关参数

-net:表示后面接的路由为一个网络

-host:表示后面接的为连接到单部主机的路由

netmask:与网络相关,可以设置netmask决定网络的大小

gw:gateway的简写,后面接的是ip的数值,与dev不同

dev:如果只是要指定由那一块网卡连接出去,则使用这个设置,后面接eth0等

范例1:单纯的查看路由状态

route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

123.57.204.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1

10.51.104.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1

172.16.0.0 10.51.111.247 255.240.0.0 UG 0 0 0 eth0

100.64.0.0 10.51.111.247 255.192.0.0 UG 0 0 0 eth0

10.0.0.0 10.51.111.247 255.0.0.0 UG 0 0 0 eth0

0.0.0.0 123.57.207.247 0.0.0.0 UG 0 0 0 eth1

route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

123.57.204.0 255.255.252.0 U 0 0 0 eth1

10.51.104.0 255.255.248.0 U 0 0 0 eth0

link-local 255.255.0.0 U 1002 0 0 eth0

link-local 255.255.0.0 U 1003 0 0 eth1

172.16.0.0 10.51.111.247 255.240.0.0 UG 0 0 0 eth0

100.64.0.0 10.51.111.247 255.192.0.0 UG 0 0 0 eth0

10.0.0.0 10.51.111.247 255.0.0.0 UG 0 0 0 eth0

default 123.57.207.247 0.0.0.0 UG 0 0 0 eth1

route -n和route输出结果不同,-n参数会显示出ip,而只使用route,显示的是"主机名",解析会有些慢,default=0.0.0.0/0.0.0.0

Destination、Genmask:这两个参数分别是network与netmask,

Gateway:该网络是通过那个gateway连接出去的,如果显示0.0.0.0表示该路由是直接由本级传送,也就是可以通过局域网的mac直接发送,如果显示ip的话,表示该路由需要经过路由器网关的帮忙才能够发送出去。

Flags:共有多个标志,代表的意义如下

U(route is up):该路由是启动的

H(target is a hot):目标是一台主机(ip)而非网络

G(use gateway):需要通过外部的主机来传递数据包

R(reinstate route for dynamic routing):使用动态路由时,恢复路由信息的标志

D(dynamically installed by daemon or redirect):动态路由

M(modified from routing daemon or redirect):

!(reject route):这个路由将不会被接受(用来阻止不安全的网络)

路由排列顺序,依序由小网络(Class C)逐渐到大网络,最后则是默认路由

范例二 路由的增加与删除

route del -net 169.254.0.0 netmask 255.255.0.0 dev eht0

删除168.254.0.0这个网络,删除的时候信息都要写入,netmask,dev等参数

route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0

增加一条路由,这个路由的设置必须要能够与你的网络互通

route add default gw 192.168.1.250

增加默认路由

一般一个新的主机环境

ifconfig eht0 192.168.1.100;route add default gw 192.1687.1.254