Linux网络管理工具 mtr 和 tcptraceroute

使用 mtr 和 tcptraceroute 来侦测主机与目的主机端口之间的情况

mtr 安装和使用

# 安装
yum install mtr -y

# 如果没有,则使用
yum install epel-release -y
yum install mtr -y

# 使用方法,例子:
mtr -T -P 22 -r 50.116.25.154

# 报告的每个字段进行一个浅析:
递增的序号,表示数据包经过的第几跳,通过最后一跳的序号我们也可以知道数据包一共经过了几跳。
所经过的路由节点的IP地址,如果支持反向解析的则反解为主机名。
Loss%: 丢包率。
Snt:   已发送的数据包。
Last:  最近一次数据包的延时,mtr所显示的延时相关的时间单位均是毫秒。
Avg:   平均延时。
Best:  最小延时。
Wrst:  最大延时。
Stdev: 标准差(Standard Deviation),延时的标准差,这个值越小则延时越稳定。

参数解释

-h, --help:显示命令语法的简要情况。

-v, --version:显示版本。这个还是有点重要的,不同版本的mtr输出的结果可能不同。

-r, --report:使用报告模式(report mode)。上面我们演示过了,默认情况下运行mtr会进入TUI界面,如果我们不希望mtr进入TUI而只是希望其像其他命令一样直接输出结果的话,我们可以使用报告模式。

-c, --report-cycles COUNT:报告模式的默认情况下只会发送10个数据包,我们可以使用-c来指定需要发送的数据包的数量。字段Snt显示的是发送的数据包。

-w, --report-wide:宽(wide)报告模式,默认的报告模式,如果遇到主机名比较长的情况的话,会将其截断。

-s, --psize BYTES:指定数据包的大小,单位是字节。也可以在命令行的尾部指定PACKETSIZE。

-t, --curses:强制mtr使用curses库的TUI界面,默认就是该选项。

-e, --mpls:应该是使mtr显示ICMP扩展中的MPLS信息。MPLS应该是一种多协议的封装技术,通过避免查询路由表来加速路由,这应该是一种高级的用法,我也不太了解。

-n, --no-dns:不进行主机名的解析。这样子IP地址就不会反解成主机名了,加快mtr的返回结果的速度。

-b, --show-ips:同时显示主机名和IP地址。在分隔(split)模式和报告模式中都可以使用。报告模式中如果被截断的话就使用宽报告模式。

-g, --gtk:使用基于GTK的GUI,一般用不到。

-p, --split:分隔模式,这种模式适用于split-user interface。我也没看懂什么意思。输出的结果类似于以空格为分隔符分隔每个字段。

-l, --raw:将结果输出成原生(raw)模式,这种模式可以被其他程序所表达。一般用不到。

-x, --xml:输出成XML格式。

-a, --address IP.ADD.RE.SS:指定mtr探测时数据包从哪个IP地址出去。不过该选项不可用于DNS请求,否则结果可能会出乎意料。

-i, --interval SECONDS:指定每次发送ICMP ECHO请求数据包的间隔时间,单位是秒,默认1秒。这个数只要是正数就行,不一定非得是正整数。

-m, --max-ttl NUM:指定我们发送的数据包的TTL值。mtr就是通过这个值,来向路由路径中的每个节点发送数据包。例如在我们的示例中,总共有13个节点,因此如果要设置TTL的话,最小必须设定为13,否则数据包到不了8.8.8.8。

-f, --first-ttl NUM:指定我们从第几个节点开始进行探测,默认是从第一个节点(网关)开始。

-B, --bitpattern NUM:指定有效负载中的位模式(bit pattern),值介于0~255。这里的bit pattern,我的理解是多位的二进制数据,可能是4位、8位、16位等,他们一同来表示某个东西,例如4个字节表示整型int。那么位模式就是4*8=32。

-Q, --tos NUM:指定IP头部中的服务类型的值,介于0~255。这里的服务类型指的是type of service,现在叫做DSCP,是IP头部的其中一个字段。DSCP一般用于一些实时的数据流,例如IP电话。

-u, --udp:使用UDP数据报文而不是ICMP ECHO。

-T, --tcp:使用TCP SYN数据包而不是ICMP ECHO。使用该选项的话会忽略修改数据包大小的-s、--psize或者PACKETSIZE,因为SYN数据包不包含数据。

-P, --port PORT:使用TCP追踪的时候指定目标端口。

--timeout SECONDS:TCP socket保持打开的超时时间(超时则断开连接)。这个只会影响最后1跳。如果这个值较大并且间隔时间(-i)较短的话,那么将会使用掉大量的文件描述符。

-4和-6:仅显示ipv4或者ipv6,一般用不到的选项,因为现在基本上都还是使用ipv4。

-o, --order fields order:指定要输出的字段信息。这个选项是一个比较重要的选项。

参考:https://www.cnblogs.com/alongdidi/p/mtr.html

tcptraceroute 安装和使用

yum install tcptraceroute -y

# 使用方法
tcptraceroute <目标主机> <端口号>

eg:
tcptraceroute example.com 80
posted @ 2023-06-06 15:58  klvchen  阅读(826)  评论(0)    收藏  举报