tcpdump能帮助我们捕捉并保存网络包,保存下来的网络包可用于分析网络负载情况,包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看。

1.针对特定网口抓包(-i选项)

当我们不加任何选项执行tcpdump时,tcpdump将抓取通过所有网口的包;使用-i选项,我们可以在某个指定的网口抓包:

linux:/tmp/lx # tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

10:50:28.607429 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: . ack 116 win 64951

10:50:28.607436 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 116:232(116) ack 1 win 12864

10:50:30.384195 arp who-has 128.128.128.35 tell 128.128.128.35

以上例子中,tcpdump抓取所有通过eth0的包。

2.抓取指定数目的包(-c选项)

默认情况下tcpdump将一直抓包,直到按下”ctrl+c”中止,使用-c选项我们可以指定抓包的数量:

linux:/tmp/lx # tcpdump -c 2 -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

10:58:05.656104 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 1210443473:1210443589(116) ack 2583117929 win 12864

10:58:05.657074 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: . ack 116 win 65211

2 packets captured

6 packets received by filter

0 packets dropped by kernel

以上例子中,只针对eth0网口抓2个包。

3.将抓到包写入文件中(-w选项)

使用-w选项,我们可将抓包记录到一个指定文件中,以供后续分析

linux:/tmp/lx # tcpdump -w 20120606.pcap -i eth0

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

75 packets captured

150 packets received by filter

0 packets dropped by kernel

应当保存为.pcap后缀的文件,方便我们使用wireshark等工具读取分析。

4.读取tcpdump保存文件(-r选项)

对于保存的抓包文件,我们可以使用-r选项进行读取:

linux:/tmp/lx # tcpdump -r 20120606.pcap

reading from file 20120606.pcap, link-type EN10MB (Ethernet)

11:01:57.392907 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 1210446405:1210446457(52) ack 2583119957 win 12864

11:01:57.392917 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 52:168(116) ack 1 win 12864

11:01:57.393649 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: . ack 52 win 65327

5.抓包时不进行域名解析(-n选项)

默认情况下,tcpdump抓包结果中将进行域名解析,显示的是域名地址而非ip地址,使用-n选项,可指定显示ip地址。

6.增加抓包时间戳(-tttt选项)

使用-tttt选项,抓包结果中将包含抓包日期:

linux:/tmp/lx # tcpdump -n -tttt -i eth0

2012-06-06 11:14:59.539736 IP 10.71.171.140.22 > 10.70.121.95.1787: P 1:53(52) ack 100 win 7504

2012-06-06 11:14:59.539754 IP 10.71.171.140.22 > 10.70.121.95.1787: P 53:105(52) ack 100 win 7504

2012-06-06 11:14:59.539770 IP 10.71.171.140.22 > 10.70.121.95.1787: P 105:157(52) ack 100 win 7504

7.指定抓包的协议类型

我们可以只抓某种协议的包,tcpdump支持指定以下协议:ip,ip6,arp,tcp,udp,wlan等。以下例子只抓取arp协议的包

linux:/tmp/lx # tcpdump -i eth0 arp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

11:22:26.948656 arp who-has 10.10.1.30 tell 10.10.1.26

11:22:27.017406 arp who-has 10.10.1.30 tell 10.10.1.26

11:22:27.078803 arp who-has 10.10.1.30 tell 10.10.1.26

8.指定抓包端口

如果想要对某个特定的端口抓包,可以通过以下命令:

linux:/tmp/lx # tcpdump -i eth0 port 22

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

11:41:04.387547 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: . ack 1216136825 win 64751

11:41:04.387891 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 1:233(232) ack 0 win 16080

11:41:04.398973 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: P 0:52(52) ack 233 win 64519

9.抓取特定目标ip和端口的包

网络包的内容中,包含了源ip地址、端口和目标ip、端口,我们可以根据目标ip和端口过滤tcpdump抓包结果,以下命令说明了此用法:

linux:/tmp/lx # tcpdump -i eth0 dst 10.70.121.92 and port 22

10. tcpdump 与wireshark

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具(也有Linux版本)。但在Linux下很难找到一个好用的图形化抓包工具。

还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

总结:

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)分析

tcpdump -i eth0 -nnX port 21

选项:

-i 指定网卡接口

-nn 将数据包中的域名与服务转为ip和端口

-A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据

-X 以十六进制和ASCII码的显示数据包内容

port 指定监听端口

[root@www ~]# tcpdump -i eth0 -nnX port 21

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

17:54:08.047349 IP 59.37.125.48.3128 > 172.16.0.11.21: Flags [S], seq 913042176, win 8192, options [mss 1412,nop,wscale 0,nop,nop,sackOK], length 0

0x0000: 4500 0034 01f4 4000 3106 e35f 3b25 7d30 E..4..@.1.._;%}0

0x0010: ac10 000b 0c38 0015 366b eb00 0000 0000 .....8..6k......

0x0020: 8002 2000 bd1e 0000 0204 0584 0103 0300 ................

0x0030: 0101 0402 ....

17:54:08.047378 IP 172.16.0.11.21 > 59.37.125.48.3128: Flags [S.], seq 3851070068, ack 913042177, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0

0x0000: 4500 0034 0000 4000 4006 d653 ac10 000b E..4..@.@..S....

0x0010: 3b25 7d30 0015 0c38 e58a aa74 366b eb01 ;%}0...8...t6k..

0x0020: 8012 3908 13cf 0000 0204 05b4 0101 0402 ..9.............

0x0030: 0103 0307

linux针对端口进行抓包,tcpdump抓包使用详解相关推荐

  1. Linux基础急速入门:用 TCPDUMP 抓包

    简介 tcpdump是一个用于截取网络分组,并输出分组内容的工具.凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具 tcpdump 支持针对网络层.协议.主机. ...

  2. 服务器专栏——服务器抓包-tcpdump抓包

    文章目录 1.确认服务器网卡有IP地址: 2.服务器抓包-tcpdump抓包命令 1.确认服务器网卡有IP地址: linux系统:ifconfig,查看网卡ip 1.如果网卡没有ip则不能使用含有此网 ...

  3. Linux 高可用(HA)集群之Pacemaker详解

    大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...

  4. linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解

    linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...

  5. 【Linux】循序渐进学运维-服务篇-FTP服务配置文件详解

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第14篇文章 文章目录 前言 ftp配置文件详解 1. 常见默认配置参数 2. 常见参数的含义 配置文件使用举例 1. 创建本地用 ...

  6. linux复制文件scp命令,Linux 中的文件复制cp命令和scp命令详解

    Linux 中的文件复制cp命令和scp命令详解 在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是s ...

  7. R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置、置信区间、坐标轴(刻度、标签、范围)、无效线去除、水平线、辅助线、box形状、色彩等

    R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置.置信区间.坐标轴(刻度.标签.范围).无效线去除.水平线.辅助线.box形状.色彩等 目录

  8. Jar/War/Ear等包的作用与区别详解

    Jar/War/Ear等包的作用与区别详解 以客户角度来看,jar文件就是一种封装格式,用户不需要知道jar包中有多少个.class格式的文件及每个文件中的功能与作用,也可以得到相应的访问的结果.ja ...

  9. 并发编程-04线程安全性之原子性Atomic包的4种类型详解

    文章目录 线程安全性文章索引 脑图 概述 原子更新基本类型 Demo AtomicBoolean 场景举例 原子更新数组 Demo 原子更新引用类型 Demo 原子更新字段类型 使用注意事项: Dem ...

  10. linux下grep文件内容搜索工具及基本正则表达式详解

    linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...

最新文章

  1. AjaxPro.2.dll在VS2005使用中的基本使用
  2. 九度 1371 最小的K个数
  3. powershell提取html字段,Windows PowerShell:PowerShell 中的 HTML 报告
  4. 【大话数据结构算法】直接选择排序
  5. vs最好的版本_Win10 环境下,LightGBM GPU 版本的安装
  6. 【白皮书分享】2020年度薪酬白皮书.pdf(附下载链接)
  7. Qt编写自定义控件属性设计器
  8. MSI Afterburner 官网链接指南
  9. 地籍图 cad cass 二次开发 过滤器过滤扩展数据组码1000的解决方案
  10. 'Data_Label_Tools - 开源数据标注工具大列表
  11. StretchDIBits 的使用
  12. 网易云音乐打卡听歌300首源码
  13. Maven异常:Could not find artifact
  14. ssrf dict MySQL_SSRF之利用dict和gopher吊打Redis
  15. Easy Mobile插件之Advertising
  16. FTP工具免费,6大免费的FTP工具
  17. 操作系统OS作业整合
  18. 计算机课板书图片,【教研活动】如何制作动图——计算机专业组
  19. java 幽灵引用_全面解析Java中的GC与幽灵引用
  20. 中国第一大微商TST涉嫌传销案听证会结束

热门文章

  1. SOA在当今中国企业的发展现状
  2. php microtime 毫秒,PHP获得毫秒的时间microtime()用法
  3. microtime 获取当前 Unix 时间戳和微秒数
  4. CSS3过渡小案例:折扇
  5. 几率大的JVM面试题(含答案)
  6. 移动开发!2021年GitHub上那些优秀Android开源库总结,完整PDF
  7. flutter 死亡红屏 隐藏
  8. 【大前端】android怎么获取本地视频及封面的正确姿势
  9. (翻译)教练标记模式(Coachmarks)
  10. 达梦数据库常用sql语句整理(1)