【摘要】 前面章节的网络协议栈相关的信息建议大家多学习一遍,因为这些都是最基础的东西,想玩好云网络必备基本功。。

一、上帝视角

之前提到过定位问题可以开启上帝视角,那么如何开启就要依靠tcpdump这个工具了。这个工具可以实时看到一台主机的网卡上面的收到或者发送出去的报文信息。简单的说就是抓包。

我们对网卡进行抓包的时候,会使得网卡进入“混杂模式”,所谓混杂模式就是让网卡接收所有到达网卡的报文,因为默认情况下,不是给自己的报文网卡是不要的,要么丢弃要么转发,反正不读取内容,而进入混杂模式后,就可以看一眼报文内容了。

使用tcpdump命令可以使网卡自动进入混杂模式,这一点可以从dmesg系统日志中看到:

[311135.760098] device eth0 entered promiscuous mode

[311142.852087] device eth0 left promiscuous mode

二、tcpdump命令

由于tcpdump是把经过网卡的报文全部都抓出来,所以数量是非常大的,各种乱七八糟的报文都有,是没办法定位问题的,所以tcpdump一定要配合过滤条件使用。这里只讲平时用得到的几个关键参数,再详细的自己谷歌百度,反正我一般情况下用用是够了的。

1. -n 参数

这个我一般都会加上,以前的文章中提过,-n表示不要做DNS翻译,直接显示IP,不要显示为host name。(影响性能,有时候按个ctr+c都停不下来)

用法:tcpdump -n

2. -i 参数

-i 参数用于指定需要抓包的网卡,一般都会带上。

用法: tcpdump -n -i eth0

3. 指定协议

指定协议抓包比较简单,直接要求tcpdump只抓取指定协议的报文。可以指定的协议一般有:arp / icmp / tcp

用法:tcpdump -n -i eth0 arp

4. host 关键字

host关键字用来指定只抓取对应IP的报文,表示源地址,或者目的地址。语法为 host+空格+IP地址。

(ps:可以用src或者dst代替host关键字,只抓单边的报文)

用法:tcpdump -n -i eth0 host 10.120.175.167

5. port 关键字

port关键字用来指定只抓取对应Port端口的报文,表示源端口,或者目的端口。语法为 port+空格+端口号

用法:tcpdump -n -i eth0 port 53

6. 条件组合 and / or

如果只指定一个条件进行抓包,有时候抓到的报文数量还是太多,那就需要进行多个条件组合。条件之间通过and连接。

用法:tcpdump -n -i docker0 tcp and host 172.17.0.1 and port 3306

7. -w 写入文件

-w 表示将抓到的报文信息写入到指定的pcap文件。然后把pcap文件拷贝到自己电脑上面用Wireshark软件打开分析详情。这里不得不说一下,Wireshark也是一个神器。

用法:tcpdump -n -i docker0 tcp and host 172.17.0.1 and port 3306 -w mypkg.pcap

8. 其他条件

骚年,上面这几个记住了,行走江湖应该不成问题了。其他高深的语法,需要的时候再google/baidu也不迟。

作者:tsjsdbd

【跟唐老师学习云网络】 - 第7篇 Tcpdump大杀器抓包的更多相关文章

  1. 【华为云技术分享】跟唐老师学习云网络 : Kubernetes网络实现

    当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集群 ...

  2. 【跟唐老师学习云网络】 - 第6篇 ARP你在哪

    [摘要] 这一章节你的角色就是ping报文这个"使者",你要去往目的地,然后回到本机.然而目的地路漫漫,不知道要经过多少个小地盘(局域网),没两把刷子也不好行走江湖.所以你作为使者 ...

  3. 《跟唐老师学习云网络》 -第5篇 Ping喂报文

    [摘要] 这一章节你的角色是国王,你要派一个小兵去对方打探一下.是站在你的角度看这个小兵.哦,对了,这个小兵的名字叫"喂". 一.Ping命令介绍 ping就是用来检测一下网络能不 ...

  4. 《跟唐老师学习云网络》 -第4篇 router路咋走啊【华为云技术分享】

    [摘要] 好了,到这里至少你应该能看懂路由表信息了.给你一个目的IP,你也应该知道它会使用哪一条路由了. 路怎么走就看骚年你了~ 一.路由 其实关于网络大家遇到最多的问题就是:卧 槽,为什么不通啊! ...

  5. 【跟唐老师学习云网络】-第8篇 iptables - filter过滤功能

    [摘要] 前面的各种协议已经可以把基本可用的物理网络世界给形成了,在正常情况下,它可以玩的很溜.比如组个局域网办公,或者打个联机魔兽争霸,都没有什么问题. 一.背景介绍 前面的各种协议已经可以把基本可 ...

  6. Python中的网络扫描大杀器Scapy初探

    Python中的网络扫描大杀器Scapy初探     最近经历了Twisted的打击,这个网络编程实在看不懂,都摸不透它的内在逻辑,看来网络编程不是那么好弄的.还好,看到了scapy,这种网络的大杀器 ...

  7. python基础学习笔记——网络编程(协议篇)

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  8. 图片流量节省大杀器:基于腾讯云CDN的sharpP自适应图片技术实践

    目前移动端运营素材大部分依赖图片,基于对图片流量更少,渲染速度更快的诉求,我们推动CDN,X5内核,即通产品部共同推出了一套业务透明,无痛接入的CDN图片优化方案:基于CDN的sharpP自适应图片无 ...

  9. 【立即报名】解码AI大杀器:华为云GPU+Tensorflow 容器实战

    导语: 人工智能的火热,带来了一波学习TensorFlow深度学习框架的热潮.聊深度学习免不了要用GPU,但目前GPU费用较高,对于个人学习者和创业公司来讲的话,按需配置的云GPU服务器是一个不错的选 ...

随机推荐

  1. CSPS模拟 62

    婚礼现场系列 T1 $gragh$ 为了方便把边的贡献下放到点,跑一个生成树作为划分依据. T2 $permutation$ 由于在本题中,构造的变换方法保证只能邻项交换 所以如果位置串字典序变小,权 ...

  2. CSPS模拟 53

    T1 两种差分,拆分转化 T2 状压,hash压状态卡空间 T3 dfs,分类讨论.

  3. Feign设置assessToken

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.an ...

  4. day3(数论)

    总得来说,这是可怕的一天,极其可怕的一天(完) 一.数论 阴影啊! 首先,设ab为两个整数,则存在唯一的q和r,使得a=qb+r 若r=0,则b整除a,记作b|a. (1)同余 若a/m和b/m的余数 ...

  5. day 2 上午 消失之物 背包

    #include<iostream> using namespace std; long long n,m; ]; ]; ]; int main() { cin>>n>& ...

  6. ElasticSearch(三):通分词器(Analyzer)进行分词(Analysis)

    ElasticSearch(三):通过分词器(Analyzer)进行分词(Analysis) 学习课程链接<Elasticsearch核心技术与实战> Analysis与Analyzer ...

  7. 如何编译安装Linux内核

    操作系统环境 VMware workstation15 Pro ubuntu18.04 LTS 待编译内核5.3.10版本 内核下载地址 kernel.org 环境配置 在正式编译前需要安装部分软件. ...

  8. React第一次渲染为何容易出现TypeError: Cannot read property 'XX' of undefined

    此题可能大家会不屑一顾,哎,错误都给你怼脸上了你还不会嘛,其实大家有没有认真思考过这其中的原因.先上一张错误图,剩余的全靠编.没兴趣看图的老铁们可以拉到最底下直接看结论 错误:  代码: 其次,我再把 ...

  9. mysql并发量过大造成 update语句更新错误

    mysql并发量过大造成 update语句更新错误 在同一字段的时候更新的时候 如果并发量太大 就会更新错误 这个时候只能用 swoole 消息队列更新

  10. hdu 1205 吃糖果 (抽屉原理<鸽笼原理>)

    吃糖果Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submissi ...