`
huhanfu
  • 浏览: 16781 次
  • 来自: ...
社区版块
存档分类
最新评论

linux下抓包

阅读更多
Tcpdump详解


第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host. 第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。 第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。 除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。 普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。 # tcpdump tcpdump: listening on fxp0 11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50 11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43 0000 0000 0080 0000 1007 cf08 0900 0000 0e80 0000 902b 4695 0980 8701 0014 0002 000f 0000 902b 4695 0008 00 11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97 ffff 0060 0004 ffff ffff ffff ffff ffff 0452 ffff ffff 0000 e85b 6d85 4008 0002 0640 4d41 5354 4552 5f57 4542 0000 0000 0000 00 使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用, 使用-c参数指定要监听的数据包数量, 使用-w参数指定将监听到的数据包写入文件中保存 A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包: #tcpdump host 210.27.48.1 B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用   括号时,一定要 #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令: #tcpdump ip host 210.27.48.1 and ! 210.27.48.2 D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令: #tcpdump tcp port 23 host 210.27.48.1 E 对本机的udp 123 端口进行监视 123 为ntp的服务端口 # tcpdump udp port 123 F 系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据: #tcpdump -i eth0 src host hostname G 下面的命令可以监视所有送到主机hostname的数据包: #tcpdump -i eth0 dst host hostname H 我们还可以监视通过指定网关的数据包: #tcpdump -i eth0 gateway Gatewayname I 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令: #tcpdump -i eth0 host hostname and port 80 J 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包 ,使用命令: #tcpdump ip host 210.27.48.1 and ! 210.27.48.2 K 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令 :(在命令行中适用   括号时,一定要 #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) L 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:    #tcpdump ip host 210.27.48.1 and ! 210.27.48.2 M 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:    #tcpdump tcp port 23 host 210.27.48.1 第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型 除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less, greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'o r' ,'||'; 第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src , 如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。 #tcpdump –i eth0 host hostname and dst port 80 目的端口是80 或者 #tcpdump –i eth0 host hostname and src port 80 源端口是80 一般是提供http的服务的主机 如果条件很多的话 要在条件之前加and 或 or 或 not #tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80 如果在ethernet 使用混杂模式 系统的日志将会记录 May 7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled. May 7 20:03:46 localhost kernel: device eth0 entered promiscuous mode May 7 20:03:57 localhost kernel: device eth0 left promiscuous mode tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
分享到:
评论

相关推荐

    Linux下抓包

    linux下抓包命令--tcpdump的使用,详解Linux下tcpdump的各种抓包

    Linux下抓包工具tcpdump使用介绍.docx

    Linux 下抓包工具 tcpdump 使用介绍 tcpdump 是一个功能强大且灵活的抓包工具,广泛应用于网络分析和测试技术中。下面是 tcpdump 的一些重要知识点: 1. Ether 广播包的匹配:tcpdump 可以匹配 ether 广播包, ...

    Linux下抓包工具tcpdump应用详解

    ### Linux下抓包工具tcpdump应用详解 #### TCPDUMP:网络分析的利刃 在IT运维和网络安全领域,抓包工具(Packet Sniffer)扮演着至关重要的角色,尤其是在Linux环境下,**tcpdump**作为一款经典且强大的网络数据包...

    linux下抓包工具的使用

    ### Linux与Solaris环境下抓包工具的使用详解 #### Solaris环境下的抓包工具——Snoop ##### Snoop概述 Snoop是Solaris系统中自带的一款功能强大的抓包工具,主要用于捕捉并显示网络数据包。它能够捕获IP包,并...

    linux下抓包命令--tcpdump的使用

    ### Linux下抓包命令——tcpdump的使用详解 在Linux环境下,网络监控和故障排查是一项常见而关键的任务,其中,`tcpdump`是一款极其强大的工具,用于捕获、解析和记录网络流量。本文将深入探讨`tcpdump`的使用方法...

    linux下抓包:tcpdump

    linux抓包

    Linux下抓包工具tcpdump的Makefile(基于cmake)

    抓包选项: -c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包。 -i interface:指定tcpdump需要监听的接口。若未...

    linux下使用wireshark抓包

    使用 Wireshark 在 Linux 下抓包 Wireshark 是一个功能强大且广泛使用的网络协议分析工具。它可以捕捉和显示网络中的数据包,帮助用户了解网络协议、诊断网络问题和安全漏洞。在 Linux 平台下,Wireshark 提供了...

    python实现linux下抓包并存库功能

    标题中的"python实现linux下抓包并存库功能"指的是使用Python编程语言在Linux操作系统中实现网络数据包的捕获(抓包)并将捕获的数据存储到数据库中的过程。这个功能通常用于网络监控、数据分析或者故障排查。 描述...

    Linux网络抓包工具pcap,界面采用Qt制作

    本文将深入探讨Linux环境下的网络抓包工具,特别是标题中提到的基于Qt界面的pcap实现。首先,我们来了解一下`pcap`。 `pcap`是libpcap库的简称,它是一个开源的网络数据包捕获库,广泛应用于各种网络分析软件,如...

    linux下面的抓包工具

    然而,你提到的是自己编写的Linux抓包工具,这通常涉及到编程知识,尤其是网络编程。在Linux下,我们可以使用socket API来实现抓包功能。具体来说,你需要创建一个RAW socket(SOCK_RAW类型),它允许你直接访问数据...

    Linux环境下的网络抓包工具pcap,界面采用Qt完成

    在Linux环境下,网络抓包是网络分析和故障排查的重要手段,而`pcap`库则是这类工具的核心。`pcap`是由libpcap库提供的一个强大的数据包捕获框架,它允许开发者在各种操作系统上捕获网络数据包,包括Linux。`pcap`库...

    linux下的网络抓包代码

    在Linux环境下,网络抓包是一种常见的网络诊断和分析技术,它可以帮助我们查看网络通信的数据包细节,例如TCP、UDP和ICMP等协议的信息。本文将详细介绍如何使用C语言编写简单的网络抓包代码,并探讨相关安全问题。 ...

    技术抓包文档

    ### Linux下抓包 在Linux环境下,我们通常使用`tcpdump`这个命令行工具来抓包。首先,我们需要确认`tcpdump`是否已经安装。通过执行`rpm -qa tcpdump`命令,如果返回结果表明已安装,则可以开始抓包。 #### 使用...

    linux(RedHat)抓包及ethereal抓包工具的使用方法借鉴.pdf

    Linux(RedHat) 抓包及 Ethereal 抓包工具的使用方法借鉴 Linux 抓包是一种网络协议分析技术,用于捕获和分析网络中的数据包。tcpdump 是 Linux 中最常用的抓包工具之一,能够捕获网络中的数据包并将其存储到文件中...

    课程设计:基于C++和QT实现的Linux 网络抓包系统.zip

    课程设计:基于C++和QT实现的Linux 网络抓包系统.zip 课程设计:基于C++和QT实现的Linux 网络抓包系统.zip 课程设计:基于C++和QT实现的Linux 网络抓包系统.zip 课程设计:基于C++和QT实现的Linux 网络抓包系统.zip ...

    linux抓包工具

    Linux系统抓包工具,可直接运行,传上来方便大家使用.

    linux下ip抓包分析

    在Linux环境下,对IP数据包进行抓包与分析是一项重要的网络诊断和调试技能。这篇文章将深入探讨如何使用C语言来实现这一目标,并结合Makefile进行编译构建。首先,我们需要了解基本的网络编程概念,包括TCP/IP协议栈...

    linux下的抓包程序

    ### Linux下的抓包程序 #### 知识点概述 本文主要介绍了Linux环境下抓包程序的基本原理及应用。抓包程序通常工作在数据链路层,主要用于捕获网络中传输的数据包,进而对这些数据包进行解析和分析。此外,本文还...

    linux下的libpcap抓包分析程序

    标题提到的“linux下的libpcap抓包分析程序”就是基于这个库实现的一个应用,它能捕获网络数据包并提供详细的分析信息。 首先,让我们深入理解libpcap库的核心功能。libpcap提供了一个跨平台的API,允许程序员以...

Global site tag (gtag.js) - Google Analytics