TCPDUMP

【原创】如何选择“定时抓包”方案

坚强是说给别人听的谎言 提交于 2019-12-04 07:35:49
需求:能抓取指定时间长度的包,比如抓取 10s 长度的包; 可选方案: 使用 tcpdump 命令的 -G 和 -W 参数; 自己通过脚本实现在指定时间到达后通过 kill 命令杀掉 tcpdump 抓包进程; 使用 tshark 命令的 -a duration:xx 参数; 基于 tcpdump 的 -G -W 参数实现定时的方案 因为 tcpdump 太有名了,所以一般人十有八九会先想到这个工具; 查阅 tcpdump 的 man 手册可以发现与定时功能相关的参数如下: -G rotate_seconds 如果设置了该参数, tcpdump 将会以 rotate_seconds 为周期对通过 -w 选项指定命名的 dump 文件进行轮转;保存文件命名通过 -w 选项指定,并且应该包含符合 strftime(3) 定义的时间戳格式;如果未指定时间格式,则每一个新产生的文件将会覆盖之前的文件; 如果和 -C 选项配合使用,文件命名将会采用 ' file<count> ' 格式; -W 和 -C 选项配合使用,可以将创建文件数目限制指定值,并且咋达到该数值后,从头开始进行文件覆盖;从行为上,类似于实现了一个 ' rotating ' buffer 的功能;另外,该选项会在为文件命名时使用足够多的前导 0 , 以便正确支持我们要求的最大数目,同时允许基于该数值进行正确排序; 和 -G

监控linux系统状态

混江龙づ霸主 提交于 2019-12-04 06:45:48
查看系统负载: w/uptime 最后面三个数字表示1分钟,5分钟,15分钟平均有多少个进程占用CPU 占用CPU的进程可以是Running,也可以是Waiting 某一时刻1颗CPU只能有一个进程在使用其资源 #查看cpu信息:lscpu或cat /proc/cpuinfo top命令: top 回车就可以进入到top界面 每3秒刷新一次 默认按cpu百分比排序,可以按M键按照内存使用率大小排序 按数字1,可以显示所有CPU使用率详情 top -bn1 静态显示所有进程的情况,也是按cpu百分比排序 静态显示进程信息,方便在shell脚本中使用top命令 free命令: free查看内存和swap使用情况,关注最后一列的available,这个数字是真正剩余的物理内存大小 free -k -m -g -h 手动增加swap:(厂商为了避免影响磁盘性能,购买云服务器一般没有swap空间) dd if=/dev/zero of=/newswap bs=1M count=1000 mkswap /newswap #格式化 chmod 600 /newswap #变更权限(为了安全) swapon /newswap #挂载 监控磁盘: yum install -y sysstat iostat -dx 1 iostat -dx 1 5 #主要关注最后一列(util)当百分比数值过大

[20191108]内核参数tcp_keepalive与sqlnet.ora expire_time的一些总结.txt

匆匆过客 提交于 2019-12-04 05:35:52
[20191108]内核参数tcp_keepalive与sqlnet.ora expire_time的一些总结.txt --//前几天在做12c DCD SQLNET.EXPIRE_TIME相关测试时,在11g数据库遇到1个古怪的问题,就是设置sqlnet.expire_time无效.不知道为 --//什么?以前做过类似测试就是在两个都设置的情况下,sqlnet.ora expire_time优先. --//我当时的情况如下,设置内核参数如下: net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.tcp_keepalive_probes = 9 --//参数解析: /proc/sys/net/ipv4/tcp_keepalive_time 当keepalive起用的时候,TCP发送keepalive消息的频度。默认是2小时。 /proc/sys/net/ipv4/tcp_keepalive_intvl 当探测没有确认时,keepalive探测包的发送间隔。缺省是75秒。 /proc/sys/net/ipv4/tcp_keepalive_probes 如果对方不予应答,keepalive探测包的发送次数。缺省值是9。 --//sqlnet.ora,没有设置#SQLNET

mysql案例~tcpdump的使用

↘锁芯ラ 提交于 2019-12-03 23:05:59
使用方式 tcpdump -i eth0 -s 0 -l -w - dst port 3306 参数说明 -i 设备名称 -s 包大小,默认65535 -l 输出缓冲 -w 输入文件中 dst port 监听目标端口 记录执行sql #!/bin/bash #this script used montor mysql network traffic.echo sql tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e ' while(<>) { chomp; next if /^[^ ]+[ ]*$/; if(/^(SELECT|UPDATE|DELETE|INSERT|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) { if (defined $q) { print "$q\n"; } $q=$_; } else { $_ =~ s/^[ \t]+//; $q.=" $_"; } }' >> /tmp/tmp.log 根据关键字分析tmp日志 来源: https://www.cnblogs.com/danhuangpai/p/11810702.html

How do I pump traffic using tcpreplay at 100 MBps, 500 MBps and 1Gbps speeds?

我的未来我决定 提交于 2019-12-03 21:47:21
I used the -R and -K option but it doesnt seem to be working as I captured the pumped traffic using tcpdump and the number of packets that I see there dont seem to match the number of packets that I expect in the time frame. First of all make sure you are using the latest version, available here . You will want to use the -K and --mbps (or -M) options, for example: # tcpreplay -i eth7 -K --mbps 1000 smallFlows.pcap File Cache is enabled Actual: 14261 packets (9216531 bytes) sent in 0.073761 seconds. Rated: 124951275.0 Bps, 999.61 Mbps, 193340.65 pps Flows: 1209 flows, 16390.77 fps, 14243 flow

UDP multicast client does not see UDP multicast traffic generated by tcpreplay

被刻印的时光 ゝ 提交于 2019-12-03 17:24:35
问题 I have two programs: server ... it generates UDP traffic on a chosen multicast listener ... it prints UDP traffic on a chosen multicast (it subscribes to a multicast and prints whatever it receives). When I run the server on one machine and listeners on some (other) machine(s), the listener sees UDP traffic and prints it correctly. So these programs should be in a good shape. However, when I try to capture the traffic, on whatever machine, with tcpdump: sudo tcpdump -i eth0 'dst 233.65.120

tcpdump 命令

纵然是瞬间 提交于 2019-12-03 15:09:02
转自: https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例 默认启动 tcpdump 普通情况下,直接启动 tcpdump 将监视第一个网络接口上所有流过的数据包。 监视指定网络接口的数据包 tcpdump -i eth1 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。  监视指定主机的数据包 打印所有进入或离开主机的包的数据包. tcpdump host hostname<主机名> 也可以指定ip,例如 截获所有 210.27.48.1 的主机收到的和发出的所有的数据包 tcpdump host 210.27.48.1 打印helios 与 hot 或者与 ace 之间通信的数据包 tcpdump host helios and \( hot or ace \) 截获主机 210.27.48.1

tcpdump 命令

寵の児 提交于 2019-12-03 15:07:31
史上最好用的免费SVN空间 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例 默认启动 tcpdump 普通情况下,直接启动 tcpdump 将监视第一个网络接口上所有流过的数据包。 监视指定网络接口的数据包 tcpdump -i eth1 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。  监视指定主机的数据包 打印所有进入或离开sundown的数据包. tcpdump host sundown 也可以指定ip,例如 截获所有 210.27.48.1 的主机收到的和发出的所有的数据包 tcpdump host 210.27.48.1 打印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

tcpdump 命令

若如初见. 提交于 2019-12-03 15:04:10
NAME tcpdump - dump traffic on a network SYNOPSIS tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ --number ] [ -Q|-P in|out|inout ] [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret,... ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ --time-stamp-precision=tstamp_precision ] [ --immediate-mode ] [ --version ] [ expression ] 选项 -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时,

Sniffing and displaying TCP packets in UTF-8

不问归期 提交于 2019-12-03 14:19:59
I am trying to use tcpdump to display the content of tcp packets flowing on my network. I have something like: tcpdump -i wlan0 -l -A The -A option displays the content as ASCII text, but my text seems to be UTF-8. Is there a way to display UTF-8 properly using tcpdump? Do you know any other tools which could help? Many thanks Make sure your terminal supports outputting UTF-8 and pipe the output to something which replaces non printable characters: tcpdump -lnpi lo tcp port 80 -s 16000 -w - | tr -t '[^[:print:]]' '' tcpdump -lnpi lo tcp port 80 -s 16000 -w - | strings -e S -n 1 If your