使用tcpdump拦截linux服务端网络数据

语法范例:

tcpdump -vv -i ens3 ‘((tcp)&&(host 183.239.240.48)&&(port 3001))‘  -c 100 -w 12.cap

-i表示指定网络设备

后面的字串是规则,规则通常这么拼接:

非 : ! or "not"
且 : && or "and"
或 : || or "or"

规则语句有这些:

协议类:

arp,ip,tcp,udp,icmp

地址类:

host:源或目标ip

dst host:目标ip

src host:源ip

port:源或目标端口.(有dst host  , src host,含义同上)

net:指定网络.(也有dst net ,src net)

按照包长:

less 100 表示少于100

greater 100 表示大于100

高级过滤:

根据ip包头:

ip[0]>5

从IP包头取包大小(2bytes),判断:

ip[2:2]>600

tcp包头也能取大小:

tcp[0:2]

拦截HTTP(并不一定能成功,因为头长度不固定):

0x4745 为"GET"前两个字母"GE"

0x4854 为"HTTP"前两个字母"HT"

tcp[20:2]=0x4745 or tcp[20:2]=0x4854

==============================================

可以通过-c参数指定抓多少个包,然后用"-w"放到文本文件

参考文章:

https://www.wains.be/pub/networking/tcpdump_advanced_filters.txt (中文翻译:http://www.veryarm.com/1751.html#12)

http://packetpushers.net/masterclass-tcpdump-expressions/

https://www.hugeserver.com/kb/install-use-tcpdump-capture-packets/

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

时间: 2024-10-06 06:10:49

使用tcpdump拦截linux服务端网络数据的相关文章

linux服务端的网络编程

常见的Linux服务端的开发模型有多进程.多线程和IO复用,即select.poll和epoll三种方式,其中现在广泛使用的IO模型主要epoll,关于该模型的性能相较于select和poll要好不少,本文也主要讨论该模型而忽略另外两种IO复用模型. 多线程相较于多进程开销比较小,但是要主要主线程往子线程传递数据的时候要注意变量互斥访问来保证线程安全. epoll模型在Linux2.6内核中引入的,改进了select中的一些明显设计上的缺点,具有更高的效率.主要体现在以下几个方面: 1. epo

Android客户端采用Http 协议Post方式请求与服务端进行数据交互

本示例以Servlet为例,演示Android与Servlet的通信. 众所周知,Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式.至于Socket通信会在以后的博文中介绍. HTTP协议简介: HTTP (Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种协议. HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响

如何使用Ajax从服务端获取数据

在本文中将给出一个例子来介绍使用 Ajax 技术从服务端获得数据的三种方法.这个例子很简单,就是两个选择框(html中的<select>标签),通过选中第一个select的某一项后,会从服务端得到一些数据,并加载到第2个select中.金光大道娱乐城 从服务端获得XML格式的数据 从服务端获得数据的最容易想到的方法就是在服务端反加一定格式的数据,一般是XML格式,然后在服务端使用XMLDocument或其他技术来读取这些数据,并生成<select>标签中选项的格式文本(<op

http的post方式连接服务器,发送数据到服务端,并获取服务端的数据

大概的流程是:客户端填写了用户名和密码,在服务端进行判断,验证密码如果正确,则返回登录成功,如果密码错误,则返回登录失败 客户端是java程序,具体代码如下: package lgx.java.test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Unsupport

客户端通过HTTP协议与服务端交换数据

客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 http method 写请求使用POST 读请求使用GET 参数提交 提交一个普通对象,使用键值对参数 x-www-form-urlencoed 当同名参数有多个值时,使用http表单数组的方式 options[]:a options[]:b options[]:c - 当参数对应的值是复杂对象或多维数组时,json序列化该对象/多维数组 处理服务端响应 预先准备 根据业务需求,确定当前响应返回的是业务数据,还是系统消息.(

这些年看过的Linux服务端开发的书籍推荐

这些年看过的Linux相关书籍推荐 计算机类图书相对感觉还是比较贵的,但是我是一个比较喜欢买纸质版书籍的人,所以我通常都会在京东618等活动买书,相对会便宜很多.大四开始看计算机相关的书籍,有的时候师弟们让推荐书籍,我就总结在这里了.不管你是大一还是研一,想必都有你需要的书籍吧. 相应的电子版我会总结到文末,哎我就是最亮的仔!! 1 编程语言书籍 想必大部分小伙伴刚进入大学校园,开设的第一门专业课是某某语言程序设计,下面推荐如下书籍 c语言 这三本书可说是c语言中精华了,不过比较遗憾的是很多大学

APP服务端API(数据接口)设计应该考虑到的问题

1.跨平台性 2.良好的响应速度 3.接口要为移动客户端考虑 4.考虑移动端的网络情况和耗电量 5.通用的数据交换格式 6.接口统计功能 7.客户端与服务端的肥瘦平衡 8.隐式用户与显式用户 9.安全问题 10.良好的接口说明文档和测试程序 11.版本的维护 详细分析请参考 :https://www.hutuseng.com/article/how-to-design-api 原文地址:http://blog.51cto.com/825272560/2058638

Windows下cwrsync客户端与rsync群辉存储服务端定时数据同步

cwRsync简介 cwRsync是Rsync在Windows上的实现版本,Rsync通过使用特定算法的文件传输技术,可以在网络上传输只修改了的文件. cwRsync主要用于Windows上的远程文件同步备份和同步,它包含Cygwin DLL和适用Cygwin版本的Rsync两部分. cwRsync分为Server和Client,本文使用的版本为4.1.0 实现目的:把Windows客户端D:\data目录的数据通过计划任务实现定时自动同步到群辉存储服务端192.168.85.8\NetBack

Linux内核中网络数据包的接收-第一部分 概念和框架

与网络数据包的发送不同,网络收包是异步的的,因为你不确定谁会在什么时候突然发一个网络包给你,因此这个网络收包逻辑其实包含两件事:1.数据包到来后的通知2.收到通知并从数据包中获取数据这两件事发生在协议栈的两端,即网卡/协议栈边界以及协议栈/应用边界:网卡/协议栈边界:网卡通知数据包到来,中断协议栈收包:协议栈栈/应用边界:协议栈将数据包填充socket队列,通知应用程序有数据可读,应用程序负责接收数据.本文就来介绍一下关于这两个边界的这两件事是怎么一个细节,关乎网卡中断,NAPI,网卡poll,