目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

tcpdump

查看主机10.1.1.1收到的和发送的数据包

[root@node1 Desktop]# tcpdump -i eth0 -nn host 10.1.1.1

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

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

22:33:25.148389 ARP, Request who-has 10.1.1.254 tell 10.1.1.1, length 28

22:33:25.148896 ARP, Reply 10.1.1.254 is-at 00:50:56:c0:00:01, length 46

22:33:30.714605 IP 10.1.1.254 > 10.1.1.1: ICMP echo request, id 1, seq 237, length 40

22:33:30.714619 IP 10.1.1.1 > 10.1.1.254: ICMP echo reply, id 1, seq 237, length 40

-i 指定网络接口,对于多个网络接口有用

-n 显示IP地址,不查主机名。当DNS不起作用时常用到这个参数

-nn 不显示协议和端口名。即显示IP地址和端口

-w 将抓的包保存到指定的文件里方便后续分析

其他用法:

man tcpdump

TCP Packets

The general format of a tcp protocol line is:

src > dst: flags data-seqno ack window urgent options

Src and dst are the source and destination IP addresses and ports. Flags are some

combination of S

(SYN), F (FIN), P (PUSH), R (RST), W (ECN CWR) or E (ECN-Echo), or a single ‘.’

(no flags).

1.获取主机10.1.1.1接收或发出的telnet包

#tcpdump tcp port 23 and host 10.1.1.1

2.对本机的udp协议的123端口进行监听(123是ntp服务端口)

tcpdump udp port 123

3.只对hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。

下面的命令可以查看主机hostname发送的所有数据:

#tcpdump -i eth0 src host hostname

#tcpdump -i eth0 src host 10.1.1.254

4.下面的命令可以查看所有送到主机hostname的数据包:

#tcpdump -i eth0 dst host hostname

#tcpdump -i eth0 dst host 10.1.1.1

5.监视通过指定网关的数据包:

#tcpdump -i eth0 gateway Gatewayname

#tcpdump -i eth0 gateway 10.1.1.254

6.其他

只需要列出送到80端口的数据包,用dst port;

#tcpdump –i eth0 host hostname and dst port 80 //目的端口是80

只需要看到返回80端口的数据包,用src port

#tcpdump –i eth0 host hostname and src port 80 //源端口是80,一般是提供http的服务的主机

如果条件很多的话要在条件之前加and 或 or 或 not

#tcpdump -i eth0 host ! 210.161.223.70 and ! 210.161.223.71 and dst port 80

作者:Soulboy