0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux基础之用 TCPDUMP 抓包

马哥Linux运维 来源:未知 作者:李建兵 2018-03-15 13:40 次阅读

简介

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息

tcpdump - dump traffic on a network

例子

不指定任何参数

监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。

tcpdump

监听特定网卡

tcpdump -i en0

监听特定主机

例子:监听本机跟主机182.254.38.55之间往来的通信包。

备注:出、入的包都会被监听。

tcpdump host 182.254.38.55

特定来源、目标地址的通信

特定来源

tcpdump src host hostname

特定目标地址

tcpdump dst host hostname

如果不指定src跟dst,那么来源 或者目标 是hostname的通信都会被监听

tcpdump host hostname

特定端口

tcpdump port 3000

监听TCP/UDP

服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包

tcpdump tcp

来源主机+端口+TCP

监听来自主机123.207.116.169在端口22上的TCP数据包

tcpdump tcp port 22 and src host 123.207.116.169

监听特定主机之间的通信

tcpdump ip host 210.27.48.1 and 210.27.48.2

210.27.48.1除了和210.27.48.2之外的主机之间的通信

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

稍微详细点的例子

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型

(2)-i eth1 : 只抓经过接口eth1的包

(3)-t : 不显示时间戳

(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包

(5)-c 100 : 只抓取100个数据包

(6)dst port ! 22 : 不抓取目标端口是22的数据包

(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24

(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

抓http包

TODO

限制抓包的数量

如下,抓到1000个包后,自动退出

tcpdump -c 1000

保存到本地

备注:tcpdump默认会将输出写到缓冲区,只有缓冲区内容达到一定的大小,或者tcpdump退出时,才会将输出写到本地磁盘

tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap

也可以加上-U强制立即写到本地磁盘(一般不建议,性能相对较差)

实战例子

先看下面一个比较常见的部署方式,在服务器上部署了nodejs server,监听3000端口。nginx反向代理监听80端口,并将请求转发给nodejs server(127.0.0.1:3000)。

浏览器 -> nginx反向代理 -> nodejs server

问题:假设用户(183.14.132.117)访问浏览器,发现请求没有返回,该怎么排查呢?

步骤一:查看请求是否到达nodejs server -> 可通过日志查看。

步骤二:查看nginx是否将请求转发给nodejs server。

tcpdump port 8383

这时你会发现没有任何输出,即使nodejs server已经收到了请求。因为nginx转发到的地址是127.0.0.1,用的不是默认的interface,此时需要显示指定interface

tcpdump port 8383 -i lo

备注:配置nginx,让nginx带上请求侧的host,不然nodejs server无法获取 src host,也就是说,下面的监听是无效的,因为此时对于nodejs server来说,src host 都是 127.0.0.1

tcpdump port 8383 -i lo and src host 183.14.132.117

步骤三:查看请求是否达到服务器

tcpdump -n tcp port 8383 -i lo and src host 183.14.132.117

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206724

原文标题:Linux基础急速入门:用 TCPDUMP 抓包

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux tcpdump命令示例 如何在Linux中安装tcpdump

    在这里,我们将展示如何安装 tcpdump,然后讨论并介绍一些有用的命令以及它们的实际示例。
    发表于 08-06 11:11 2387次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>tcpdump</b>命令示例 如何在<b class='flag-5'>Linux</b>中安装<b class='flag-5'>tcpdump</b>

    tcpdump命令介绍

    1.命令简介tcpdump 是一款类 Unix/Linux 环境下的包工具,允许用户截获和显示发送或收到的网络数据tcpdump 是一
    发表于 04-08 06:02

    CC2640 使用BTool怎么用?

    CC2640使用BTool怎么用?我一直用simpleBLEPeripheral改写的程序,烧写simpleBLEPeripheral,使用BTool,出现[/url]。使用p
    发表于 03-16 11:27

    WIZnet芯片通讯时怎么?

    `Q:WIZnet芯片进行公网通讯或者芯片间通讯的话怎么?A:芯片和PC通讯的话可以直接通过Wireshark,如果芯片和公网直接通讯或者通讯是发生在芯片之间,则没有办法直接
    发表于 03-13 11:32

    加密后分析的问题?

    请问一下,我的zigbee设备全部都开启了加密, 使用软件的时候,数据都是加密的,我应该怎么解密分析这些数据呢,谢谢了
    发表于 06-01 14:22

    tcpdump指定域名吗

    tcpdump指定域名的吗?
    发表于 05-21 04:08

    请问能否在8MM/8MQ开发板上运行程序

    请问能否在8MM/8MQ开发板上运行程序(如tcpdump)?如果没有自带的话,是否有移植的先例?在8MQ上进行移植tcpdump,使用了下面的命令进行configure(编译链环
    发表于 12-30 07:36

    空口方式和wireshank分析工具使用介绍

    主要介绍下最近使用中感觉很万能的空口方式和wireshank分析工具使用;目的:抓取各种设备网络通信过程中数据,定位并分析软硬件设计中问题背景:Tcp
    发表于 01-18 09:11

    请问BLE-Dongle是否支持协议分析?请问怎么进行协议分析?

    如题,请问贵司的BLE-Dongle是否支持协议分析?请问怎么进行协议分析?
    发表于 09-07 07:12

    使用tcpdump后生成的pcap文件大小为0

    请大佬们帮忙看看怎么回事吧 我在SSH中使用“sudo tcpdump -i eth0 dst 192.168.0.55”命令进行,control+c停止后,使用“sudo tcpdump
    发表于 05-18 22:29

    tcpdump的安装以及通过实例来演示如何使用 tcpdump 命令

    在本文中,我们将会通过一些实例来演示如何使用 tcpdump 命令,但首先让我们来看看在各种 Linux 操作系统中是如何安装 tcpdump 的。
    的头像 发表于 01-11 08:49 5753次阅读
    <b class='flag-5'>tcpdump</b>的安装以及通过实例来演示如何使用 <b class='flag-5'>tcpdump</b> 命令

    如何吧tcpdump网络抓包工具移植到嵌入式linux系统

    本文档的主要内容详细介绍的是如何吧tcpdump网络抓包工具移植到嵌入式linux系统详细资料合集免费下载。
    发表于 01-18 08:00 6次下载
    如何吧<b class='flag-5'>tcpdump</b>网络抓包工具移植到嵌入式<b class='flag-5'>linux</b>系统

    Linux网络必备技能tcpdump应用场景和基础原理与实战案例

    今天要分享的是 tcpdump,它是 Linux 系统中特别有用的网络工具,通常用于故障诊断、网络分析,功能非常的强大。
    的头像 发表于 03-19 11:55 2055次阅读
    <b class='flag-5'>Linux</b>网络必备技能<b class='flag-5'>tcpdump</b>应用场景和基础原理与实战案例

    Linux虚拟机之tcpdump命令操作详解

    Linux虚拟机之tcpdump命令操作详解
    发表于 08-12 09:50 23次下载

    Linux网络分析tcpdump的基本用法

    我们先通过几个简单的示例来介绍 tcpdump 基本用法。 1. 不加任何参数,默认情况下将抓取第一个非 lo 网卡上所有的数据包 $ tcpdump  2.  抓取 eth0 网卡上的所有
    的头像 发表于 09-28 15:42 305次阅读