mtr如何运作
当 mtr 启动时,它会调查运行 mtr 的主机和 HOSTNAME 之间的网络连接。
通过发送故意低 TTL 的数据包。
它继续发送具有低 TTL 的数据包,并注意介入路由器的响应时间。
这允许 mtr 打印到 HOSTNAME 的互联网路由的响应百分比和响应时间。
数据包丢失或者响应时间的突然增加通常表明链路不良(或者只是过载)。
安装和使用 MTR
在基于 Debian 和 Ubuntu 的系统上,它我们可以通过以下方式轻松安装:
$ sudo apt install mtr
有趣的是,Debian 和 Ubuntu 默认打开 MTR 窗口,而不是将其用作命令行实用程序。
检查路由器连接
接下来,打开一个终端并尝试运行 MTR 以检查与路由器的连接。
如果我们不知道路由器的 IP 地址,默认情况下通常为 192.168.1.1.
$ mtr 192.168.1.1
只要我们允许 MTR 运行,它就会一直发送数据包。
它将记录有关连接的重要信息,并让我们知道存在什么样的延迟以及数据包是否丢失。
测试与外部站点的连接
如果我们想测试与外部网站的连接,我们也可以通过为 MTR 提供 URL 而不是 IP 地址来实现。
$ mtr onitroad.com
因为 MTR 是一个跟踪路由,并且站点是外部的,所以我们还将看到计算机和目标之间每跳的连接信息。
指定类型和端口
能够指定要发送的数据包类型也很好。
我们可以使用“-u”发送 UDP 数据包或者使用“-T”发送 TCP 数据包。
因此,如果我们正在诊断与 UDP VPN 连接的连接,它看起来像这样:
$ mtr -u server.vpnservice.com
以特定端口为目标也很有用。
假设我们可以定位 Web 服务器并获得响应,但我们仍然无法连接到它托管的站点。
在端口 80 和 443 上使用 MTR 以确保没有任何内容阻止访问。
$ mtr -P 80
mtr手册
语法
mtr [-hvrctglsni ] [--help ] [--version ] [--report ] [--report-cycles COUNT ] [--curses ] [--split ] [--raw ] [--no-dns ] [--gtk ] [--address IP.ADD.RE.SS ] [--interval SECONDS ] [--psize BYTES | -p BYTES ] HOSTNAME [PACKETSIZE]
mtr选项
-h --help
打印命令行参数选项的摘要。
-v --version
打印已安装的 mtr 版本。
-r --report
此选项将 mtr 置于报告模式。
在此模式下,mtr 将运行 -c 选项指定的周期数,然后打印统计信息并退出。
此模式可用于生成有关网络质量的统计信息。
请注意,每个运行的 mtr 实例都会产生大量的网络流量。
使用 mtr 测量网络质量可能会导致网络性能下降。
-c COUNT --report-cycles COUNT
使用此选项设置发送的 ping 数以确定网络上的机器和这些机器的可靠性。
每个循环持续一秒钟。
此选项仅对 -r 选项有用。
-p BYTES --psize BYTES PACKETSIZE
这些选项或者命令行上的尾随 PACKETSIZE 设置用于探测的数据包大小。
它以字节为单位,包括 IP 和 ICMP 标头
-t --curses
使用此选项强制 mtr 使用基于 curses 的终端界面(如果可用)。
-n --no-dns
使用此选项可强制 mtr 显示数字 IP 号,而不尝试解析主机名。
-g --gtk
使用此选项强制 mtr 使用基于 GTK+ 的 X11 窗口界面(如果可用)。
当为此构建 mtr 时,系统上必须有 GTK+ 可用。
-s --split
使用此选项设置 mtr 以输出适合拆分用户界面的格式。
-l --raw
使用此选项告诉 mtr 使用原始输出格式。
这种格式更适合测量结果的存档。
它可以被解析为呈现为任何其他显示方法。
-a IP.ADD.RE.SS --address IP.ADD.RE.SS
使用此选项将传出数据包的套接字绑定到特定接口,以便任何数据包都将通过此接口发送。
请注意,此选项不适用于 DNS 请求(可能是也可能不是我们想要的)。
-i SECONDS --interval SECONDS
使用此选项指定 ICMP ECHO 请求之间的正秒数。
此参数的默认值为1秒。
mtr 在单个网络诊断工具中结合了 traceroute 和 ping 程序的功能。