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

    文章

    11296

    浏览量

    209367

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

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

收藏 人收藏

    评论

    相关推荐

    WiresharkTcpdump实例分析

    wireshark是开源软件,可以放心使用。可以运行在Windows和Mac OS上。对应的,linux下的包工具是 tcpdump。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。
    的头像 发表于 02-01 09:31 3034次阅读

    tcpdump命令介绍

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

    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

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

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

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

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

    网络行分析工具tcpdump安装介绍

    概述 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据进行截获的分析工具。 tcpdump可以将网络
    的头像 发表于 08-18 10:05 8673次阅读
    网络行<b class='flag-5'>抓</b><b class='flag-5'>包</b>分析工具<b class='flag-5'>tcpdump</b>安装介绍

    tcpdump如何实现内核态的

    的呢?有的同学知道 tcpdump 是基于 libpcap 的,那么 libpcap 的工作原理又是啥样的呢。如果让你裸写一个程序,你有没有思路? 按照飞哥的风格,不搞到最底层的原理咱是不会罢休的。所以我对相关的源码进行了深
    的头像 发表于 10-08 10:34 2730次阅读
    <b class='flag-5'>tcpdump</b>如何实现<b class='flag-5'>抓</b>内核态的<b class='flag-5'>包</b>

    Linux网络分析工具

    tcpdump 指令可列出经过指定网络界面的数据文件头,可以将网络中传送的数据的 “头” 完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助你摘取有用信息。
    的头像 发表于 11-11 11:41 859次阅读

    为什么不到baidu的数据

    从上面的结果可以知道请求baidu.com时会去访问39.156.66.10。于是用下面的tcpdump命令进行,大概的意思是eth0网卡且ip为39.156.66.10的网络
    的头像 发表于 01-05 10:43 1047次阅读

    WiresharkTcpdump实例分析!

    今天浩道跟大家分享2款网工生涯中必不可少的神器Wireshark及Tcpdump,掌握这2个神器的使用,运维排查故障基本就是如鱼得水。
    的头像 发表于 02-01 09:31 1474次阅读

    Linux网络分析tcpdump工作原理和应用

    在日常工作中遇到的很多网络问题都可以通过 tcpdump 优雅的解决: 相信大多数同学都遇到过 SSH 连接服务器缓慢,通过 tcpdump ,可以快速定位到具体原因,一般都是因为
    的头像 发表于 09-28 15:30 494次阅读
    <b class='flag-5'>Linux</b>网络分析<b class='flag-5'>tcpdump</b>工作原理和应用

    Linux网络分析tcpdump的基本用法

    tcpdump -i eth0 3. 时指定 -n 选项,不解析主机和端口名。这个参数很关键,会影响的性能,一般
    的头像 发表于 09-28 15:42 524次阅读

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的头像 发表于 10-28 14:48 239次阅读