tcpdump使用基础和技巧
2012-09-17 14:34
218 查看
tcpdump是linux下的一款字符界面的网络抓包工具,能为我们的网络程序调试提供极大的遍历。本文主要总结一下tcpdump的使用方法和一些使用技巧。
1、tcpdump使用基础:
../tcpdump -i eth0 port 80 -nn -X ‘port 53′ -c1 -A
参数说明:
-i <eth*> 表示抓包监听的网卡;
port <端口号> 表示监听的端口,如果不加表示抓取所有端口的网络包;
-A 表示将抓包内容以ASCII码的形式打印出来,方便我们分析一些明文的内容;
-n 表示不要将抓包内容中的HOST和端口转换为名字;
-c 表示需要抓取多少个包,如果不加则表示一直抓取;
-X 按HEX十六进制和ASCII码的形式打印出包内容,对于新协议特别有效;
2、WEB服务器CGI调试中tcpdump的应用:
a).如何快捷的得到服务器上的每个CGI被访问的次数排序:
一般WEB服务器中CGI配置的数量比例应该基本和上面的相应的访问量一致,从而避免服务器性能的浪费;
b).如何知道某个CGI是否成为性能瓶颈:
因为web服务器的访问都是TCP短连接的,每个请求都会先accept进来然后在建立的连接上开始通信,所以可以用过strace相应的CGI进程,看看在accept处是否有明显的停顿,如果有的话则说明CGI还会在这里等待客户端请求进来,而不是特别忙。
d).分析CGI请求错误:
如果WEB服务器突然出现404或者503错误,但是又很难重现,可以开启tcpdump抓包来进行分析;
如果需要相关错误的统计信息可以参照上面的统计方法;
1、tcpdump使用基础:
../tcpdump -i eth0 port 80 -nn -X ‘port 53′ -c1 -A
参数说明:
-i <eth*> 表示抓包监听的网卡;
port <端口号> 表示监听的端口,如果不加表示抓取所有端口的网络包;
-A 表示将抓包内容以ASCII码的形式打印出来,方便我们分析一些明文的内容;
-n 表示不要将抓包内容中的HOST和端口转换为名字;
-c 表示需要抓取多少个包,如果不加则表示一直抓取;
-X 按HEX十六进制和ASCII码的形式打印出包内容,对于新协议特别有效;
2、WEB服务器CGI调试中tcpdump的应用:
a).如何快捷的得到服务器上的每个CGI被访问的次数排序:
tcpdump -c 10000 -i eth1:1 port 80 -A 2>&1 |awk -F"cgi-bin" '{print $2}' | sed '/^$/' | awk -F"?" '{print $1}'|sort|uniq -c|sort -rk上面提到过,-A选项可以将抓取到的包的内容以ASCII码的形式打印出来,所以可以使用web服务器CGI请求的"cgi-bin"来过滤CGI包,再把?号后的参数丢弃后排序,即可得到服务器上的即时CGI的请求的数量,不需要对http服务器做任何的修改;
一般WEB服务器中CGI配置的数量比例应该基本和上面的相应的访问量一致,从而避免服务器性能的浪费;
b).如何知道某个CGI是否成为性能瓶颈:
因为web服务器的访问都是TCP短连接的,每个请求都会先accept进来然后在建立的连接上开始通信,所以可以用过strace相应的CGI进程,看看在accept处是否有明显的停顿,如果有的话则说明CGI还会在这里等待客户端请求进来,而不是特别忙。
d).分析CGI请求错误:
如果WEB服务器突然出现404或者503错误,但是又很难重现,可以开启tcpdump抓包来进行分析;
tcpdump -i eth1:1 port 80 -A 2>&1 | grep "HTTP/1.1" | grep -v "HTTP/1.1 200 OK"通过上述命令可以监控到服务器上的所有CGI访问请求产生的错误;
如果需要相关错误的统计信息可以参照上面的统计方法;
相关文章推荐
- Starling 为基础开发游戏框架的使用心得和技巧
- 13个Chrome基础使用技巧
- linux基础之vim编辑器使用技巧
- C# 基础使用技巧
- ios基础-XCode使用技巧
- iOS中UIWebView网页加载组件的基础及使用技巧实例
- JMeter基础之-使用技巧
- Java基础-结合框架6 使用集合的技巧
- Outlook Express使用技巧大全之基础篇
- 01. Shell基础和使用技巧(工具+常用bash命令加速操作)
- Shell基础学习:关于Wget命令的使用技巧[zt]
- [C#基础教程]C#泛型集合—Dictionary<K,V>使用技巧
- 24基础指标、obv使用方法及分析技巧
- Git与Github基础使用技巧之--添加远程库
- iOS开发UI基础—14IOS开发中Xcode的一些使用技巧
- Android 基础—— 对Context的理解与使用技巧
- JMeter基础之-使用技巧
- Android 基础—— 对Context的理解与使用技巧
- PPT(PowerPoint)基础使用技巧
- [转]Ultra Fractal教程系列16——学习基础技巧08——使用渐变