主页 > imtoken官网注册 > 以太坊存文件 Tcpdump的详细用法

以太坊存文件 Tcpdump的详细用法

imtoken官网注册 2023-03-20 06:47:12

tcpdump的详细用法

(转)tcpdump用法

(转)tcpdump用法

1、tcpdump的简明用法

用法:tcpdump [-adeflnNOpqRStuvxX] [-ccount] [-C file_size]

[-F 文件] [-iinterface] [-r 文件] [-s snaplen]

[-T 类型][-U 用户][-w 文件][-E 算法:秘密][表达式]

-c 捕获指定数量的数据包

-F 使用文件作为过滤表达式的源

-i 使用可选的网络接口捕获数据包

-p 在散列模式下禁用捕获,

-r 读取捕获文件而不是网络接口

-w 将原始消息保存到文件中

-v 指定verbose模式输出详细的消息信息

-vv 指定更详细的模式,输出更详细的消息信息

-r 从指定文件中获取包

tcpdump是一个非常强大的网络安全分析工具,可以将网络上截获的数据包保存到文件中进行分析。 可以定义过滤规则以仅拦截感兴趣的数据包,以减少数据包分析期间的输出文件大小和加载和处理时间。

本文仅涵盖 tcpdump 的基本用法,请记住 tcpdump 比我描述的要强大得多。

网络接口、端口和协议的数据包拦截。

假设要拦截网络接口eth1,端口号6881的tcp数据包,数据文件保存为test.pcap

tcpdump -w test.pcap -i eth1 tcp 端口 6881

很简单吧? 如果想同时拦截udp端口号33210和33220的数据包怎么办?

tcpdump -w test.pcap -i eth1 tcp 端口 6881 或 udp \( 33210 或 33220 \)

'\'是转义字符,逻辑符号OR表示加号(+)。 其他表达式是拦截端口号为6881的tcp包加上端口号为33210和33220的UDP包。tcpdump过滤器表达式的and运算符表示交集,所以要拦截端口号为33210和33220的UDP包,用or代替和。 and 运算符的用法如下所述。

如何保存文件和读取数据包?

tcpdump -nnrtest.pcap

选项 -nn 不会将网络 IP 和端口号转换为名称,r(read) 读取数据包。

可以添加 -tttt 选项以使时间戳格式更具可读性。

tcpdump -ttttnnrtest.pcap

如何拦截IP数据?

需要向 tcpdump 指示 IP 类型,目标 IP 或源 IP? 比如要嗅探的目的IP是10.168.28.22,tcp端口号是22。

tcpdump -w test.pcapdst 10.168.28.22 和 tcp 端口 22

对于目标 IP 和端口的交集,使用 and 运算符。

默认的嗅探包大小是96字节,可以指定-s来改变默认值。

tcpdump -w test.pcap -s 1550 dst 10.168.28.22 和 tcp 端口 22

某些版本的 tcpdump 允许指定端口范围,以下指令会截取特定端口范围的数据。

tcpdump tcp portrange20-24

注意,上面的命令没有指定-w,将截获的数据包保存到文件中,而是直接输出到屏幕上。

使用 tcpdump 不知道端口号

互联网数据流量太大,可以使用lsof搜索指定端口。 lsof的例子可以参考监控谁运行什么,监听什么端口,建立什么连接。

二、tcpdump详细用法

首先是关键字的类型,主要包括host、net、port,比如host 210.27.48.2,表示210.27.48.2是主机,net 202.0.0.0表示202.0.0.0是网络地址,port 23表示端口号为23。如果不指定类型以太坊存文件,默认类型为host。

二是确定传输方向的关键字,主要包括src、dst、dst或src、dst和src,这些关键字表示传输方向。 例如src 210.27.48.2表示ip包中的源地址为210.27.48.2,dst net202.0.0.0表示目的网络地址为202.0.0.0。 如果未指定方向关键字,则默认为 src 或 dst 关键字。

三是协议的关键字,主要有fddi、ip、arp、rarp、tcp、udp等类型。 Fddi表示是FDDI(分布式光纤数据接口网络)上的一种特定网络协议。 其实就是“以太”的别名。 fddi和ether的源地址和目的地址相似,所以fddi协议包可以看成是ether。 对包进行处理和分析。 其他关键字表示被监控包的协议内容。 如果没有指定协议,tcpdump 将监听所有的协议包。

除了这三类关键字外,其他重要的关键字如下:gateway、broadcast、less、greater,三个逻辑运算,否定运算是'not'! ',操作为'与','&&'; or运算为'或','││'; 这些关键词可以组合成一个强大的组合条件来满足人们的需求。 下面举几个例子来说明。

通常,直接启动 tcpdump 将监视第一个网络接口上流动的所有数据包。

#tcpdump

tcpdump:监听 fxp0

11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50

11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/Clen=43

0000 0000 0080 0000 1007 cf08 0900 0000

0e80 0000 902b 4695 0980 8701 0014 0002

000f 0000 902b 4695 000800

11:58:48.373134 0:0:e8:5b:6d:85 > 广播 sap e0 ui/C len=97

ffff 0060 0004 ffff ffff ffff ffff ffff

0452 ffff ffff 0000 e85b 6d85 4008 0002

0640 4d41 5354 4552 5f574542 0000 0000

0000 00

使用-i参数指定tcpdump监听的网络接口,当电脑有多个网络接口时很有用,

使用-c参数指定要监控的数据包数量,

使用-w参数指定将监控到的数据包写入文件保存

2.1. 想拦截所有210.27.48.1主机收发的所有数据包:

#tcpdump host210.27.48.1

2.2. 拦截主机210.27.48.1与主机210.27.48.2或210.27.48.3之间的通信,使用命令:(在命令行中使用括号时,一定要或

#tcpdump host210.27.48.1 和(210.27.48.2 或 210.27.48.3)

2.3. 如果要获取除主机210.27.48.2以外的主机210.27.48.1的ip包,使用命令:

#tcpdump ip host210.27.48.1 和! 210.27.48.2

2.4. 如果要获取主机210.27.48.1接收或发送的telnet数据包,使用以下命令:

#tcpdump tcp 端口 23host 210.27.48.1

2.5. 监听本机udp 123端口。 123是ntp的服务端口

# tcpdump udp 端口​​ 123

2.6. 系统只会监听名为hostname的主机的通讯包。 主机名可以是本地主机或网络上的任何计算机。 下面的命令可以读取主机hostname发送的所有数据:

#tcpdump -i eth0 srchost 主机名

2.7. 下面的命令可以监控发送到主机hostname的所有数据包:

#tcpdump -i eth0 dsthost 主机名

2.8. 我们还可以监控通过指定网关的数据包:

#tcpdump -i eth0gateway 网关名称

2.9. 如果你还想监控发往指定端口的 TCP 或 UDP 数据包,请执行以下命令:#tcpdump -i eth0 host 主机名和端口 80

2.10. 如果想获取主机210.27.48.1与除主机210.27.48.2以外的所有主机通信的ip包,使用命令:

#tcpdump ip host210.27.48.1 和! 210.27.48.2

2.11. 拦截主机210.27.48.1与主机210.27.48.2或210.27.48.3之间的通信,使用命令:(在命令行中使用括号时,一定要使用or)

#tcpdump host210.27.48.1 和(210.27.48.2 或 210.27.48.3)

2.12. 如果要获取除主机210.27.48.2以外的主机210.27.48.1的ip包,使用命令:

#tcpdump ip host210.27.48.1 和! 210.27.48.2

2.13. 如果要获取主机210.27.48.1接收或发送的telnet数据包,使用以下命令:

#tcpdump tcp 端口 23host 210.27.48.1

三是协议的关键字,主要有fddi、ip、arp、rarp、tcp、udp等类型。 除了这三类关键字外,其他重要的关键字有:gateway, broadcast, less, greater, 还有三种逻辑运算,否定运算是'not''! ', AND运算为'and', '&&'; 或者操作是'或','||';

其次是确定传输方向的关键字,主要包括src、dst、dst或src、dst和src,如果我们只需要列出发往80端口的数据包,就用dst端口; 如果我们只想看到 80 端口数据包的返回,请使用 src 端口。

#tcpdump –i eth0 hosthostname and dst port 80 目标端口是80

或者

#tcpdump –i eth0 hosthostname and src port 80 源端口为80,一般是提供http服务的主机。 如果条件很多,在条件前加上and or or not

#tcpdump -i eth0 主机! 211.161.223.70 和! 211.161.223.71 和 dst 端口 80

如果你在以太网上使用混杂模式,系统的日志会记录

5 月 7 日 20:03:46 本地主机内核:eth0:已启用混杂模式。

5 月 7 日 20:03:46 本地主机内核:设备 eth0 进入混杂模式

5 月 7 日 20:03:57 本地主机内核:设备 eth0left 混杂模式

tcpdump 并没有完全解码截获的数据以太坊存文件,数据包中的大部分内容都是直接以十六进制形式打印出来的。 显然,这不利于分析网络故障。 通常的解决办法是先使用带-w参数的tcpdump抓取数据并保存到文件中,然后再使用其他程序进行解码分析。 当然还要定义过滤规则,避免抓包占满整个硬盘。

除了filter语句之外,还有一个很重要的参数,也就是说如果这个参数设置不正确,会导致包数据丢失!

就是-s参数,snaplen,就是拦截数据包的长度,仔细看man就明白了! 默认拦截长度为60字节,但一般以太网MTU为1500字节。 所以抓包大于60字节时,使用默认参数会导致丢包!

只要使用-s 0,就可以根据数据包长度截取数据!