本来想安装wireshark

yum install wireshark  命令行下使用,包含抓包的基本功能

yum install wireshark-gnome  提供wireshark(UI)工具,依赖wireshark RPM

root@localhost: wireshark 
wireshark: symbol lookup error: wireshark: undefined symbol: gtk_combo_box_text_new_with_entry
不能启动图形界面,所以采用linux下流量监控及抓包工具tcpdump

安装:yum install tcpdump

截获某IP的主机的网络数据包:

tcpdump host 192.168.0.120

TCP协议要建立连接要经过3次“握手”,截取的数据包也是从3次握手开始,可以看到前三个包的状态(Flags)分别是:

[S]、[S.]、[.]

首先是客户端向服务端发送一个10位的序号给服务端;服务端收到后把它+1再返回回去;客户端检查返回来的序号是对的,就返回给服务端一个1。根据上面的描述,知道这三个包满足:第一个包的seq+1=第二个包的ack;第三个包的ack=1

注意:开始发送时,发送方是按三次握手完成时定下的序列号和ack来进行通信的,客户端一直在发,客户端的seq不断的按发送字节数在累加,而服务器是应答端,seq始终不变。同理若客户端作为应答端的话,它的seq也是不变的

TCP协议要断开连接要经过4次“挥手”,上面数据包的最后3条就是挥手的过程。细心的朋友会发现前面说的4次挥手,却只有3个包,这不是笔误。

最后三个包的状态分别是:

[F.]、[F.]、[.]

ACK延迟发送机制,如果系统禁用了延迟发送,就会看到4个包了

cron可以定时执行抓包的时间

抓包命令:

tcpdump -c 100000 -w /home/kang/Desktop/test.txt -n

注释:抓10万个包,存在test.txt文件里,-n的意思是不对原地址和目的地址进行DNS查询

读文件命令:

tcpdump -r /home/kang/Desktop/test.txt -X -vv

注释:-r是读文件,-X是以ASCII码显示内容。-VV是以详细的报文信息显示

-x是以十六进制打印,-X是以十六进制和ASCII同时打印,都不包含数据链路头部,-xx -XX 包含数据链路层的头部,其余的一样。

总共打印的数据大小不会超过整个数据包的大小与snaplen中的最小值,如果高层协议数据没有snaplen那么长,则Ethernet层的填充数据也会被打

详细参数参考这里

查看txt编码::set fileencodin

转编码:iconv -f GBK -t UTF-8 file1 -o file2
iconv -f gbk -t utf8 file1 .txt > file2.txt

打印结果:部分是解析的结果,部分是十六进制,显示的比较乱,转换格式也没有用

原因:tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的,所以通常的解决办法是显示用带-w的tcpdump保存到i文件中,再使用wireshark进行解码分析,并且定义过滤规则,以避免捕获的数据包铺满整个硬盘。

tcpdump为了方便wireshark工具认识,保存的文件名最好是xx.pcap后缀。例如:

tcpdump -nn -s 0 host 192.168.0.120 and port -80 -w wireshark.pcap

-s 设置捕获数据包的长度,抓取数据包时原来默认长度是68字节,加上-S 0后可以抓到完整的数据包

使用tcpdump只抓取http包:

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

0x4745为“GET”前两个字母“GE”,0x4854为“HTTP”前两个字母“HT”

101.227.172.51.80
115.25.210.10.80
61.135.132.59.80
222.23.55.208.80
61.135.132.59
220.181.11.98
ip/dns解析:http://dns.aizhan.com/,查询到DNS解析的URL和地址

tcpdump抓取具体某个网页的数据包:

tcpdump -s 0 tcp port 80 -w sohu1.cap

在打开firefox之后,输入www.sohu.com。先别运行,先运行以上命令,再刷新页面(之前做过测试,firefox没有输入任何命令时,抓取的数据包为0)

再用wireshark——open打开,并用statistic来统计,参考一站式学习wireshark:http的统计

  如果单独是tcpdump,默认情况下,tcpdump会选择第一块网卡,也就是eth0,进行抓包

  tcpdump是基于Unix系统的命令行式的数据包嗅探工具。如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,一般而言,Unix不会让普通用户设置混杂模式,因为这样可以看到别人的信息,比如telnet的用户名和密码,开启混杂模式的命令是:ifconfig eth0 promisc, eth0是你要打开混杂模式的网卡

过滤器(BPF语言)的使用

tcpdump tcp -i eth0  -t -s 0  and  port 8080 -w ./bb.cap

tcpdump host 192.168.0.148 and tcp port 22

tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信

tcpdump ip host 210.27.48.1 and ! 210.27.48.2 获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

详情可参考tcpdump详细参数

Tcpdump安装使用的更多相关文章

  1. tcpdump安装配置及抓包分析

    http://blog.csdn.net/e421083458/article/details/23963189 cpdump安装配置及抓包分析 预装软件:[plain] view plain cop ...

  2. tcpdump安装与参数详解

    Centos7安装Tcpdump 对于大部分的Linux操作系统,已经默认安装了tcpdump,可以通过以下命令查看: [root@localhost local]# tcpdump --versio ...

  3. Centos6.5安装Nmap、tcpdump、mysql、tomcat、靶场WAVSEP

    nmap安装 输入命令如下: yum install nmap 安装完成后,输入nmap -h看是否安装成功. 安装tcpdump 安装tcpdump必须的库: yum install flex yu ...

  4. Android通过tcpdump抓包(wifi, 2g, 3g都可以)

    http://blog.csdn.net/deng529828/article/details/20646197 1. 手机要有root权限 2. 下载tcpdump   http://www.str ...

  5. Android利用tcpdump和wireshark抓取网络数据包

    Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...

  6. Tcpdump一些常用指令

    1.tcpdump安装:yum install tcpdump 2.关键字介绍 类型关键字: 指定主机 host 192.168.1.111 指定网络地址 net 202.0.0.0 指定端口 por ...

  7. 利用tcpdump抓取网络包

    1.下载并安装tcpdump 下载地址:tcpdump 安装tcpdump,连接adb adb push tcpdump /data/local/tcpdump adb shell chmod 675 ...

  8. 使用Linux的tcpdump命令结合Windows的wireshark抓包和分析

    tcpdump简介 tcpdump是Linux系统下的一款抓包命令集,工作原理是基于网卡抓取流动在网卡上的数据包.在Linux系统中由于tcpdump命令的简单和强大,我们一般直接使用tcpdump命 ...

  9. P4语言环境安装(一)前端编译器p4c、后端编译器p4c-bm2-ss

    这个P4安装环境是在2020-2-8安装的,安装环境卡了我好几天,把遇到的问题记录下来,有需要的同学可以参考一下,要是说错了或者有问题的话,评论或mail:guidoahead@163.com联系我都 ...

随机推荐

  1. Hive环境搭建

    hive 环境搭建需要hadoop的环境.hadoop环境的搭建不在这里赘述.参考:http://www.cnblogs.com/parkin/p/6952370.html 1.准备阶段 hive 官 ...

  2. Nagios学习实践系列

    其实上篇Nagios学习实践系列--基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...

  3. java 中字符串比较equals()和equalsIgnoreCase()的区别

    1.使用equals( )方法比较两个字符串是否相等 boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比较的字符串(String)对象. 如 ...

  4. RChain总体架构图

    RChain是我研究区块链依赖发现的和我最契合的(主要是用scala写的),在架构上吞吐率和扩展性也是最好,未来是真正有可能实现在它官网上宣称的能够承载facebook一样的规模,具有和visa一样的 ...

  5. 【转】linux grep命令

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 2.格式 grep [options] 3.主要参数 [options]主要参数: - ...

  6. python监控微信报警

    微信接口调用代码: #coding=utf8 import itchat from flask import Flask, request itchat.auto_login(enableCmdQR= ...

  7. Tomcat8远程访问manager,host-manager被拒绝403

    Tomcat部署在服务器之后在服务器本地访问manager和host-manager成功(即127.0.0.1:8080或者localhost:8080),但使用测试主机访问tomcat的manage ...

  8. [JavaScript]自执行函数

    最近在接触mui的时候,遇到了一段代码: (function($, doc) { $.init({ statusBarBackground: '#f7f7f7' }); $.plusReady(fun ...

  9. java中的二叉树排序问题

    原创:转载请注明出处 目的:想用java实现二叉树排序算法 思想:利用java中面向对象的思想,即: Tree:类 树根Tree:root //static所属于每一个Tree 左节点Tree:lef ...

  10. 01_Linux软件源配置

    一.国内软件源 阿里源:https://mirrors.aliyun.com/ 清华大学:https://mirrors.tuna.tsinghua.edu.cn/ 中科大 : https://mir ...