Posts Tagged ‘tcpdump’

Linux网络测试命令-站长需要掌握的命令

星期一, 一月 2nd, 2012

1:Ping 测试网络连通性,测试一个网络是不是可以正常连接
【参数说明】
-t :不停的ping指定的计算机,直到按下Ctrl+C中断。
-a :将地址解析为计算机NetBios名。
-n :发送count指定的ECHO数据包数。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助。能够测试发送数据包的返回平均时间,及时间的快慢程度。默认值为 4。
-l :发送指定数据量的ECHO数据包。默认为 32 字节;最大值是65500byt。
-f :在数据包中发送“不要分段”标志,数据包就不会被路由上的网关分段。通常你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
-i :将“生存时间”字段设置为TTL指定的值。指定TTL值在对方的系统里停留的时间。同时检查网络运转情况的。
-v :tos 将“服务类型”字段设置为 tos 指定的值。
-r :在“记录路由”字段中记录传出和返回数据包的路由。通常情况下,发送的数据包是通过一系列路由才到达目标地址的,通过此参数可以设定,想探测经过路由的个数。限定能跟踪到9个路由。
-s :指定 count 指定的跃点数的时间戳。与参数-r差不多,但此参数不记录数据包返回所经过的路由,最多只记录4个。
-j :利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源) IP 允许的最大数量为 9。
-k :computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w:timeout 指定超时间隔,单位为毫秒。

[admin@localhost ~]$ ping -c 5 www.myzhenai.com
PING www.myzhenai.com (173.252.231.204) 56(84) bytes of data.
64 bytes from 173-252-231-204.take2hosting.com (173.252.231.204): icmp_seq=1 ttl=50 time=203 ms
64 bytes from 173-252-231-204.take2hosting.com (173.252.231.204): icmp_seq=2 ttl=50 time=205 ms
64 bytes from 173-252-231-204.take2hosting.com (173.252.231.204): icmp_seq=3 ttl=50 time=203 ms
64 bytes from 173-252-231-204.take2hosting.com (173.252.231.204): icmp_seq=4 ttl=50 time=205 ms
64 bytes from 173-252-231-204.take2hosting.com (173.252.231.204): icmp_seq=5 ttl=50 time=205 ms

--- www.myzhenai.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4209ms
rtt min/avg/max/mdev = 203.647/204.765/205.763/0.938 ms

2:nslookup 检查DNS查询结果和MX
nslookup最简单的用法是查询域名对应的IP地址,包括A记录、MX记录、NS记录 CNAME记录。 查询A记录:nslookup 域名 查询MX记录:nslookup -qt=mx 域名 查询NS记录:nslookup -qt=ns 域名 查询CNAME记录:nslookup 域名

[admin@localhost ~]$ nslookup www.myzhenai.com.cn
Server:		202.100.199.8
Address:	202.100.199.8#53

Non-authoritative answer:
Name:	www.myzhenai.com.cn
Address: 173.252.231.204

3:traceroute 显示数据包到达目标的路径,即查询网络线路
-d 使用Socket层级的排错功能。
-f< 存活数值> 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g< 网关> 设置来源路由网关,最多可设置8个。
-i< 网络界面> 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m< 存活数值> 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p< 通信端口> 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s< 来源地址> 设置本地主机送出数据包的IP地址。
-t< 服务类型> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w< 超时秒数> 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

[admin@localhost ~]$ traceroute www.myzhenai.com
traceroute to www.myzhenai.com (173.252.231.204), 30 hops max, 60 byte packets
 1  * * *
 2  218.77.136.37 (218.77.136.37)  15.683 ms  17.646 ms  20.018 ms
 3  218.77.143.45 (218.77.143.45)  32.606 ms  34.860 ms  39.786 ms
 4  202.97.35.246 (202.97.35.246)  42.593 ms  42.997 ms  45.305 ms
 5  202.97.60.50 (202.97.60.50)  47.738 ms  50.929 ms  52.149 ms
 6  202.97.51.166 (202.97.51.166)  232.286 ms  219.600 ms  221.710 ms
 7  202.97.50.22 (202.97.50.22)  218.443 ms  208.250 ms  207.595 ms
 8  te4-5.ccr02.lax04.atlas.cogentco.com (154.54.12.133)  202.010 ms  201.850 ms  204.122 ms
 9  te0-3-0-7.ccr21.lax01.atlas.cogentco.com (154.54.1.9)  211.176 ms  210.355 ms te0-2-0-7.ccr22.lax01.atlas.cogentco.com (154.54.6.241)  208.571 ms
10  te3-1.mpd01.sjc01.atlas.cogentco.com (154.54.5.185)  239.511 ms te7-3.ccr02.sjc01.atlas.cogentco.com (154.54.2.150)  371.838 ms te4-1.ccr02.sjc01.atlas.cogentco.com (154.54.5.69)  375.233 ms
11  te4-1.ccr01.sjc07.atlas.cogentco.com (154.54.26.150)  205.030 ms  206.039 ms  206.722 ms
12  38.99.107.162 (38.99.107.162)  208.285 ms  210.247 ms  208.691 ms
13  172.19.202.2 (172.19.202.2)  209.528 ms  205.705 ms  205.393 ms
14  172.19.0.66 (172.19.0.66)  189.686 ms  187.993 ms  189.075 ms
15  74-82-173-18.take2hosting.com (74.82.173.18)  190.718 ms  189.835 ms  189.718 ms
16  173-252-231-204.take2hosting.com (173.252.231.204)  205.258 ms  204.869 ms  204.542 ms

4: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(简单网络管理协议)
-p 指定协议tcp,udp,icmp,arp
-s 指定捕获数包字的大小,单位byte,默认96最大65536

查看icmp包:
1,tcpdump -i eth0 -p icmp    (and src 192.168.1.xxx)

查看广播包:
2,tcpdump -i eth0 -p broadcast

查看arp包
3,tcpdump -i eth0 -p arp

4,tcpdump -X -i eth0 -p tcp port 21 //嗅探21端口数据并解包
获取ftp密码实例:
tcpdump -X -i eth0 -p tcp port 21 > 21.log &
cat 21.log | grep "USER\."
cat 21.log | grep "PASS\."

更精确的嗅探:
嗅探从172.16.1.1到172.16.1.2端口为21的数据包:
tcpdump -i eth0 -X -tnn -p tcp and src 172.16.1.1 and dst 172.16.1.2 and port 21

5.tcpdump -X -n -p tcp dst port 80 //嗅探80端口数据,并解包 (加-t就不显示时间)

6.tcpdump -i eth0 host 202.96.128.68 //指定主机

7,//嗅探从172.16.1.2到172.16.1.1 或者172.16.1.13的数据包
tcpdump -i eth0 -tnn src 172.16.1.2 and dst \(172.16.1.1 or 172.16.1.13 \)

8,利用tcpdump统计各类数据包:

//统计1000个数据包中的ip连接量,并按从多到少的顺序排序,列出前3名
tcpdump -i ethp -tnn -c 1000 | awk -F "." "{print $1"."$2"."$3"."$4}' | sort | uniq -c |sort -nr | head -n 3//按从大到小的顺

序排序并列出并三名

tcpdump -i ethp -tnn -c 1000 | awk -F "." "{print $1"."$2"."$3"."$4}' | sort | uniq -c | awk '$1 > 100'//显示大于100数据包

sort:排序 -nr 从大到小 -rn 从小到大
uniq -c:过滤重复并在前面打印重复的行数
awk '$1 > 100':如果$1参数(数字)大于100
head -n 3:显示头3行

9,tcpdump -i eth0 -tnn host 192.168.1.100 and -p tcp or udp or icmp    //嗅探所有 tcp,udp,icmp消息所不转换网络名称(加快速度)

10,嗅探dhcp服务器的ip(捕获非法DHCP Server):
tcpdump -i eth0 -tnn port 67
然后用dhclient eth0进行dhcp请求,捉dhcp server的ip地址
或者直接看日志啦cat /var/messages | grep "DHCPACK from"