您的位置:首页 > 理论基础 > 计算机网络

windows下使用windump 和 awk,linux 下tcpdump举例

2013-09-07 09:59 295 查看
一、理解如何写入记录

if [ -z "$IN_INITLOG" -a -x /sbin/initlog ]; then

// 条件是 :如果 IN_INITLOG 变量的值不为空,且 /sbin/initlog 可执行

exec /sbin/initlog -r /etc/rc.d/rc.sysinit

//为了将rc.sysinit的运行信息记到syslog里(/var/log/messages),使用了进程替代

二、windows下使用awk的要求

在windows下使用awk命令,先加入过滤条件

awk "/TCP/{print $0}"

三、windump的使用方法

windump -d

可以列出当前的设备列表。

我在windows7 下有时候会出现只能列出一个的问题,这时候需要把不可见的设备Disable后再次Enable

然后再次 windump -d 就可以看到了。

windump -i x x是第几个设备,注意是 1Base , 不是0Base

windump host 10.9.16.88 and(10.9.16.254) 可以监听 10.9.16.88 和 10.9.16.254 之间的对话

Windump具有通过详细标准过滤已记录数据的能力――详细的网络协议,主机或端口――通常在命令列中有详细说明。其中的语法相当复杂。在程序文件中有详细解释,这有一些例子:

  windump -i 2 port 80

  通过端口80从界面#2记录所有流量

  windump -i 2 host im-chat.com

  记录所有从the host im-chat.com.或来或到界面#2的流量

  windump -i 1 net 127

1、windump –D 列出本机可供抓包的全部接口。

这个命令在本机有多个网卡时非常有用。比如,我的机器装有3块网卡,而我只抓第二块网卡上的包,那么我用windump –D列出机器上所有的网卡,再指定只抓第二块网卡的包,方法如下:

windump –D

windump –i 2(网卡序号)

2、windump –n 不解析主机名,直接显示抓包的主机IP地址。

3、windump –n host 192.168.1.2 只抓关于192.168.1.2主机的包(不管包的方向)。

4、windump –n host 192.168.1.2 and udp port 514 只抓关于主机192.168.1.2上udp协议端口为514的包。

同理,我也可以抓所有tcp协议23端口的包,命令如下:

windump –n host 192.168.1.2 and tcp port 23

或者,我只抓udp 514端口的包,不管ip是多少,命令如下:

windump –n udp port 514

5、windump –n net 133.160 抓133.160网段的包,不管包的方向。

同理,我也可以抓所有133.160网段的且tcp端口为3389的包,命令如下:

windump –n net 133.160 and tcp port 3389

6、windump –n host ! 133.191.1.1 抓所有非133.191.1.1有关的包。

同理,我要抓除了133.191.1.1之外的所有机器的tcp端口为3389的包,命令如下:

windump –n host ! 133.191.1.1 and tcp port 3389

7、windump –n dst host 133.191.1.1 抓所有发送到133.191.1.1的包。

同理,可以用and 或or参数,如:

windump –n dst host 133.191.1.1 ort src host 101.1.1.1

四、LINUX 下配置行命令配置路由

方法一:

vi /etc/sysconfig/network-scripts/route-eth0 #默认不存在此文件

加入如下内容:

192.168.1.0/24 via 192.168.1.1

提示:写到配置里,重启网络服务和重启系统都会生效!

方法二:

vi /etc/sysconfig/static-routes #默认不存在此文件

加入如下内容:

any net 192.168.1.0/24 gw 192.168.1.1

提示:写到配置里,重启网络服务和重启系统都会生效!

方法三:

vi /etc/rc.local

加入如下内容:

route add -net 192.168.1.0/24 gw 192.168.1.1

PS: 方法一推荐生产环境使用

提示:方法三写到/etc/rc.local里只在开机时加载,当手工重启网络后会失效,但是重启系统后会生效!

如果是配置默认路由网关可以再网卡配置里:

[root@oldboy ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=10.0.0.254

c.主机路由:就是去往某个主机地址如何配置路由

/sbin/route add -host 192.168.2.13 dev eth2

/sbin/route add -host 202.81.11.91 dev lo

例如:keepalived或heartbeat高可用服务器对之间的使用单独网卡接心跳线通信就会用到以上主机路由。

route命令拓展:

删除一条默认路由:

route del default gw 10.0.0.254

删除一条静态路由:

route del –net 目标网络 netmask

如:route del -net 192.168.1.0/24 或route del -net 192.168.1.0 netmask 255.225.255.0

删除一条主机路由:

route del -host 192.168.1.10 dev eth0

五、tcpdump 命令举例

参阅 http://www.slashroot.in/network-traffic-analysis-linux-tools
tcpdump -nn -tttt 'tcp[13] & 7 != 0' -r output.dmp

which does not resolve host/port names (-nn), arranges the

date/time in a pretty format (-tttt), only captures TCP SYN/FIN/RST

flags ('tcp[13] & 7 != 0'),

六、shell 命令举例

redhat 提取磁盘使用情况

df -k | sed '/%/!{N;s/\n/ /}' | awk '{print $5}'

df -k |awk 'NF==7||NF==6{print $5}NF==5{print $4}'

HTTP

sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E "Host\: .*|GET \/.*"

提取日期 可做文件名

date +%Y%m%d

#!/bin/bash

today=`date +%Y%m%d`

tcpdump -i eth0 -s -w ${today}.cap

exit

# date +%m%d%k%M%N

09061658960514249

# date +%m%d%k%M%N

09061658996844940

# date +%m%d%k%M%S

0906165844

# date +%m%d%k%M%S

去字符串头尾的空格

grep -o "[^ ]\+\(\+[ ^]\+\)*"

例子:cat filenmae.txt|awk -v RS="*" '{print}'|grep -o "[^ ]\+\(\+[ ^]\+\)*"|grep "string"|sort|uniq -c|sort -rn|result.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: