TCPDUMP

【linux】Linux tcpdump命令详解

*爱你&永不变心* 提交于 2020-01-21 15:05:41
Tcpdump 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 监视指定网络接口的数据包 监视第一个网络接口的数据包 tcpdump 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口 tcpdump -i eth1 监视指定主机的数据包 指定ip,例如截获所有 210.27.48.1 的主机收到的和发出的所有的数据包 tcpdump host 210.27.48.1 打印所有进入或离开sundown的数据包. tcpdump host sundown 打印helios 与 hot 或者与 ace 之间通信的数据包 tcpdump host helios and \( hot or ace \) 截获主机 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 \)

大厂面试中三次握手延伸出来n连发你受得了?

别说谁变了你拦得住时间么 提交于 2020-01-20 03:13:34
秋招面试也不记得多少家公司会有这个面试题。所以将其总结一下并分享给大家。 文章目录 一、这是一次有故事的对话 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 2 tcp协议内容解析 3 通过工具wireshark来验证我们所述 三、说下Linux网络编程常用API 1 Linux网络编程常用API 2 粘包现象 四、再说说为啥不是两次握手或者四次握手? 五、最后聊一聊分析网络程序的工具 1 网络程序调试工具的思维导图 2 详解各个小工具 六 结尾 嘀嘀嘀。。。。一看广东,难道是腾讯的面试,哦原来是电话面试。那就开始吧! 一、这是一次有故事的对话 先说说三次握手的各个状态 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 嗯?这些ack seq是干啥的呢,不急不急,我们先把tcp协议格式内容给整明白了。 2 tcp协议内容解析 小贱先把tcp的头部搬过来 然后我们来解析一下各个字段是什么意思 字段名 字段描述 16位端口号 告知主机该报文是来自哪里以及传给哪个上层协议或应用程序(目的端口)的。 32位序列号 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号 32位确认号 用作对另一方发送来的TCP报文段的响应 4位头部长度 标识该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。

大厂面试中三次握手延伸出来n连发你受得了?

柔情痞子 提交于 2020-01-19 22:58:41
目录 一、这是一次有故事的对话 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 2 tcp协议内容解析 3 通过工具wireshark来验证我们所述 三、说下Linux网络编程常用API 1 Linux网络编程常用API 2 粘包现象 四、再说说为啥不是两次握手或者四次握手? 五、最后聊一聊分析网络程序的工具 1 网络程序调试工具的思维导图 2 详解各个小工具 六 结尾 秋招面试也不记得多少家公司会有这个面试题。所以将其总结一下并分享给大家。 @ 嘀嘀嘀。。。。一看广东,难道是腾讯的面试,哦原来是电话面试。那就开始吧! 一、这是一次有故事的对话 先说说三次握手的各个状态 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 嗯?这些ack seq是干啥的呢,不急不急,我们先把tcp协议格式内容给整明白了。 2 tcp协议内容解析 小贱先把tcp的头部搬过来 然后我们来解析一下各个字段是什么意思 字段名 字段描述 16位端口号 告知主机该报文是来自哪里以及传给哪个上层协议或应用程序(目的端口)的。 32位序列号 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号 32位确认号 用作对另一方发送来的TCP报文段的响应 4位头部长度 标识该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。

Get only the source MAC address from tcpdump

帅比萌擦擦* 提交于 2020-01-15 11:26:12
问题 I am trying to get the source MAC address of every packet being dumped on the network, excluding any packets involving the host machine. I expect that in order to accomplish this I should get the data from tcpdump with the host's network interface in promiscuous mode. Note that I am not interested in getting the full header or even the link level header. The -e option is not what I want. I just want the source MAC address for each packet, and nothing more. This is what I am currently doing

Python with tcpdump in a subprocess: how to close subprocess properly?

孤街醉人 提交于 2020-01-14 10:03:31
问题 I have a Python script to capture network traffic with tcpdump in a subprocess : p = subprocess.Popen(['tcpdump', '-I', '-i', 'en1', '-w', 'cap.pcap'], stdout=subprocess.PIPE) time.sleep(10) p.kill() When this script completes its work, I'm trying to open output .pcap file in Wireshark and getting this error: "The capture file appears to have been cut short in the middle of a packet." What solution could be applied for "proper" closing of tcpdump 's subprocess ? 回答1: Instead of p.kill() , you

udp packet caught by tcpdump, but not received by socket [closed]

主宰稳场 提交于 2020-01-14 07:36:06
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 7 years ago . I wrote a rawudp program to send udp packet via raw socket, following the webpage http://www.tenouk.com/Module43a.html. Then I wrote a udp server to listen to udp packets on given port. The codes look like follows: ... sd = socket(AF_INET, SOCK_DGRAM, 0); bind(sd, (struct sockaddr *)&ipaddr, sizeof(ipaddr));

Linux命令:tcpdump命令

寵の児 提交于 2020-01-13 12:03:22
tcpdump网络抓包工具 格式:tcpdump [options] [表达式] optinos选项   -i any:监听所有网络接口    -i eth0: 监听指定的网络接口(eth0)   -D:列出所有可用的网络接口   -n:不解析主机名   -nn:不解析主机名和端口名   -q:输出较少的信息   -t:更便于阅读的时间戳输出   -tttt:最便于阅读的时间戳输出   -X:以 HEX 和 ASCII 模式输出数据包的内容   -XX:与 -X 选项相同,同时还输出 ethernet 头   -v, -vv, -vvv:输出更多数据包的信息    -c: 获取到指定数目的数据包后就停止   -s:定义 snaplength (size) ,-s0 表示获取全部   -S:输出绝对序列号   -e:获取 ethernet 头信息   -E:通过提供 key 来解密 IPSEC 流量   -w /tmp/xxx.pcap :指定抓包的结果保存到具体文件 表达式: 通过表达式可以对各种不同类型的网络流量进行过滤,以获取到需要的信息。这也是 tcpdump 强大功能的一个体现。 主要有 3 种类型的表达式:   Type (类型)选项包括 host 、net 和 port   Direction (方向)选项包括 src 和 dst 以及它们的组合    Proto

为arm linux交叉编译tcpdump

自闭症网瘾萝莉.ら 提交于 2020-01-13 04:02:07
1.从官网www.tcpdump.org下载并解压源文件,这里是 tcpdump-4.5.1.tar.gz libpcap-1.5.3.tar.gz 2.编译libpcap,安装目录为/home/armroot,交叉编译不能确定pcap类型,手工指定为linux ./configure --host=arm-linux --with-pcap=linux --prefix=/home/armroot make make install 3.编译tcpdump。交叉编译不能确定内核版本,手工指定为嵌入式系统的内核版本 ac_cv_linux_vers=3.2.35 ./configure --host=arm-linux --prefix=/home/armroot make make install 4.最终文件为/home/armroot/sbin/tcpdump,拷贝到设备上即可使用 tcpdump简单命令 ttcpdump -i eth0 tcp port 3333 and dst host 192.168.1.129 -s 0 -vv -w /tmp/aa.cap -c 100 -x 监听eth0网卡上发送到192.168.1.129,端口为3333的tcp数据,采集完整数据包(-s 0,默认68byte),详细输出(-vv),抓取的数据写入/tmp/aa.cap

tcpdump-抓包工具-Linux

*爱你&永不变心* 提交于 2020-01-13 03:45:50
环境:VMware-Workstation-12-Pro,Windows-10,CentOS-6.9-x86_64,Xshell5 基本介绍 tcpdump是Linux自带的抓包工具,可以详细看到计算机通信中详细报文内容,如果读者熟悉另一款 强大的抓包工具wireshark,tcpdump相当于是wireshark的命令行版本。dump这个单词有垃圾堆, 倒垃圾的意思,在计算机英语中的含义是转存。 tcpdump官网:http://www.tcpdump.org/ This is the official web site of tcpdump, a powerful command-line packet analyzer; 查看本机tcpdump的版本 [root@as4k html]# tcpdump --version tcpdump version 4.1-PRE-CVS_2017_03_21 tcpdump的最新版本 Version: 4.9.2 Release Date: September 3, 2017 官方文档:http://www.tcpdump.org/manpages/tcpdump.1.html,此文档无疑是全网最详细,最权威 的教程,很多大牛的博客都有借鉴此文的内容。 这是什么鬼 TCPDUMP(8) TCPDUMP(8) NAME tcpdump -

Android手机tcpdump抓包

☆樱花仙子☆ 提交于 2020-01-11 03:18:19
在开发过程中遇到问题时,无法非常方便的获取到数据包,导致分析解决问题比较麻烦。这里介绍如何在Android手机上实现tcpdump抓包。 1、root机器 在用tcpdump抓包过程中,需要使用到root权限。当前可以进行root的方法有很多,个人推荐 http://root.baidu.com/ ,安装使用挺方便的。 2、准备adb工具 ADB是Android手机开发包中自带的Bug调试工具,使用这个工具可以非常方便的通过PC对Android机器进行调试,在本人使用过程中经用将其用于在Android机器上面执行Shell命令 1)adb shell,在PC机的命令终端中直接执行Android的Shell命令(也可以通过在Android机器上面安装命令终端等App来执行shell命令,从易用性来讲肯定没有使用adb shell方便的多,但也是一种方法) 2)adb push local remote,将PC上的文件推送到Android机器上面的路径中 3)adb pull remote local,从Android机器上面的文件拉取到PC指定的路径中 3、安装tcpdump Android系统虽然源自于Linux操作系统,为适用于手持设备环境的要求,对其进行一番简化阉割是无法避免的,其中tcpdump这调试分析神器,就在被阉割的行列。为正常使用tcpdump