一、为什么需要学这个

很多时候,开发环境上不会出现问题。但在测试或者现场时,总是会有很多莫名其妙的问题。

这时候,能在出问题的环境上,开启抓包,然后再去重现问题的话,这时候,就可以拿到第一手的资料了。

这对我们解决问题,是至关重要的。

以前在华为工作时,遇到一次问题,是电信客户投诉,一个第三方公司和我司都是电信的客户。第三方公司和我方通信的是一个

boss系统,通信是soap协议。

问题大概是boss系统对我方进行了请求,然后我方设备的应答不对。

当时还是新员工的我,心慌得一匹,傻傻地找自己系统的问题,日志看过来看过去都没问题。后来,找到一线的技术支持,

坚持要抓包才能方便分析问题后,技术支持给我抓了包。

结果一看,对方boss系统的参数有问题,我方是按照协议开发的。我方没问题。

然后就变成了第三方公司去向电信解释,当初为啥没按照协议开发,各种追责。。。

所以,抓包的重要性毋庸置疑。它既能协助我们快速定位一个bug,也能在问题发生时,将不是自己的锅甩出去。

下面就看看简单的tcpdump抓包吧。

二、tcpdump

这里可以查看其在linux中的manpage:

http://www.tcpdump.org/manpages/tcpdump.1.html

也可以参考这里:

https://danielmiessler.com/study/tcpdump/

tcpdump的命令的语法大概是:

一共两部分,前面那个大框里,都是各类选项。

其实真正重要的是第二个,expression。这个expression就是指定一个捕获时的过滤表达式,比如host 192.168.19.22,

这就是一个表达式,这个表达式的意思是:抓取本机和192.168.19.22之间的网络包。

如果你不指定的话,那就会把和所有机器间的网络包都捕获。

另外,最好能按照先选项,再表达式的顺序来写命令。因为表达式可以写得很复杂,和选项揉在一起,实在是不好看。

三、典型用法

1、指定端口号

我觉得端口号其实很常用,在服务器端,一般我们都知道应用对外开放的端口号,比如spring boot应用,tomcat应用这些,端口号是我们再熟悉不过的。

只要监听指定端口号的包,基本也就差不多了。

这两天折腾ftp,ftp有两个端口,20和21,一个是控制信号传输,一个是真正的数据传输。下面以ftp为例:

tcpdump -i eth1  -w ftp20  port 20 or port  21
表示:在eth1上网卡上监听(可以ifconfig查看),端口号为20或21,-w表示将包抓取到文件ftp20中。因为我们打算将文件传输到windows机器上,用wireshark分析。

2、指定host和端口号

服务端通常会接收来自各个客户端的请求,如果自己在现上环境抓包,我们可能希望只抓取和某台主机间的通信包。当然,端口号还是要指定的。

tcpdump   21 -i eth1 -w ftp21 host 10.15.4.46 and port 20 or port
表示:和上面差不多。主要是监听和10.15.4.46之间的包。

3、指定host、端口号、协议

如第二步所述,基本可以抓到我们想要的包。如下图,我们其实只关心ftp协议包,但是呢,抓下来的包里面,包含了各种协议,还需要我用ftp这种表达式去过滤:

能不能只抓ftp协议包?

当然可以。(这部分待更新)

转载于:https://www.cnblogs.com/grey-wolf/p/9923012.html

linux下抓包学习--tcpdump的使用相关推荐

  1. linux服务器udp抓包工具,Linux下抓包工具tcpdump使用介绍

    点评:在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一,本文将介绍Linux下抓包工具tcpdump使用,需要的朋友可以参考下 在传统的网络分析和测试技术中,嗅探器 ...

  2. linux下 抓包工具下载,Linux下抓包工具tcpdump使用介绍

    Linux下抓包工具tcpdump使用介绍 发布时间:2012-11-30 17:11:39   作者:佚名   我要评论 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的 ...

  3. linux 抓包分析qq号,linux下抓包号召--tcpdump的利用.

    linux下抓包号召--tcpdump的利用. (2011-07-24 02:13:00) 标签: 杂谈 例:tcpdump host 172.16.29.40 and port 4600 -X -s ...

  4. Linux下抓包工具tcpdump详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  5. Linux下抓包工具tcpdump以及分析包的工具wireshark

    近日在学习网卡驱动时,需要抓取网卡发送.接收数据的情况,于是找到了tcpdump和wireshark这两个工具,tcpdump是用来抓取数据的,wireshark则是用于分析抓取到的数据的,现将用法记 ...

  6. wireshark分析oracle报错,Linux下抓包工具tcpdump以及分析包的工具wireshark

    tcpdump是用来抓取数据的,wireshark则是用于分析抓取到的数据的. 一般需要安装,直接使用yum安装:yum -y install tcpdump即可. Tcpdump使用方法(1)关于类 ...

  7. Linux下抓包工具tcpdump使用

    简介 Linux tcpdump命令用于倾倒网络传输数据: 执行tcpdump指令可列出经过指定网络界面的数据包文件头: tcpdump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层. ...

  8. linux抓包命令到文件,Linux下抓包命令tcpdump详解

    tcpdump是一个命令行实用程序,可用于捕获和检查进出系统的网络流量. 它是网络管理员中用于排除网络问题和安全测试的最常用工具. 尽管名称如此,使用tcpdump,您也可以捕获非TCP流量,例如UD ...

  9. linux抓包tcpdump并保存,linux下抓包命令--tcpdump的使用

    例:tcpdump host 172.16.29.40 and port 4600 -X -s 500 tcpdupm host 172.16.29.40 and port 4600 -X -s 50 ...

最新文章

  1. Expected image (JPEG, PNG, or GIF), got empty file
  2. 复习笔记(九)——C++中的容器(STL容器)
  3. 中国高压断路器(QF)行业发展战略及创新前景展望报告2022-2028年版
  4. c++ ptree判断是否存在节点_新人报道献礼:关于boost property_tree的一些探讨
  5. 图像迁移风格保存模型_图像风格迁移也有框架了:使用Python编写,与PyTorch完美兼容,外行也能用...
  6. 213. 打家劫舍 II(JavaScript)
  7. 腾讯225页报告:AI正取代互联网成为新引擎,马化腾提七大关键词
  8. Spring boot with Hive
  9. 使用MAT分析dump文件
  10. 如何利用UltraISO将系统镜像刻录到U盘上
  11. 2022朝花夕拾-持续快速成长
  12. 微信账户体系科普:什么是UnionId、OpenId与wxopenid?
  13. C语言—字符串函数和内存函数
  14. 【笔记】玩转CSS3新特性_from_JSPang
  15. Win10激活失败的原因之一
  16. js:字符串(string)转json
  17. Linux CPU软中断案例一则
  18. ggplot2画图教程之Pathway富集分析(气泡图)
  19. OpenCVSharp异常--OpenCVSharp.NativeMethods的初始值异常
  20. 设计模式杂谈——模式与反模式之争

热门文章

  1. button3 电脑上mouse_专栏F|Cora单词168电脑(下):最强大脑,智慧的产物
  2. 核fisher matlab,使用Fisher法matlab结合P值?
  3. MySQL语法中有哪些可以利用的漏洞?
  4. 深度学习的半精度浮点数的运用
  5. Python图片攻击
  6. oracleXE版本相关问题整理
  7. 程序员面试强行用代码画画被骂,20分钟后面试官闭嘴了
  8. 《互联网+ 电商平台设计与运营》一一2.4 小结
  9. android View 绘制完成监听
  10. 英文科技写作 · 经验分享 · 讨论合集