如何在Linux服务器中使用Traceroute
Traceroute是Linux中的实用工具,可用于检查网络数据包的路由。它可以帮助你确定网络数据包行程的限制因素,对于解决网络连接慢的问题也很有用。本文向你介绍如何在Linux中运行traceroute。
1、关于 traceroute
Traceroute的工作原理是向目标计算机、服务器或网站发送数据包,并记录数据包经过的任何中间步骤。traceroute命令的输出将是数据包所经过的IP地址和域名。这些条目还显示了数据包到达每个目的地所需的时间。这可以解释为什么一些网站可能需要比其他网站更长的时间来加载,因为流量跳数可能不同。
Traceroute对于映射本地网络也很有用。在运行该工具时,可以深入了解本地网络的拓扑结构和连接情况。
请注意,在使用traceroute时,一些设备可能无法很好地交互。这可能是由于路由器被窃听,ISP限制ICMP消息的速率,设备配置为不发送ICMP数据包(以防止分布式DoS攻击)等。有些网络也被配置为阻止traceroute请求。
2、安装traceroute
Traceroute是一个功能强大的工具,适用于所有Linux发行版。下面提供了在不同发行版上安装 traceroute 的简短命令列表。
对于Debian/Ubuntu及其衍生版本。
$ sudo apt install traceroute -y
对于Fedora和衍生产品。
$ sudo dnf install traceroute
适用于openSUSE、SUSE Linux及衍生产品。
$ sudo zypper in traceroute
对于Arch Linux及其衍生产品。
$ sudo pacman -S traceroute
3、使用traceroute
下面的章节将告诉你如何在Linux系统上使用traceroute。
基本用法
使用traceroute的主要方法很简单。所有traceroute需要的是执行探测的目标。目标可以是一个域名或一个IP地址。
$ traceroute a5idc.com
$ traceroute 8.8.8.8
如果一个网络被配置为阻断traceroute信号,那么这个探针将用星号表示。
4、IPv4或IPv6
默认情况下,traceroute将使用你的系统配置的默认互联网协议。要手动设置IP版本,请按照以下步骤进行。
要告诉traceroute使用IPv4,使用"-4 "标识。
$ traceroute -4 a5idc.com
要告诉 traceroute 使用 IPv6,使用 "-6" 标志。
$ traceroute -6 a5idc.com
5、测试端口
如果需要测试一个特定的端口,可以使用"-p "标志来指定端口。对于UDP跟踪,traceroute将从给定的值开始,并随着每次探测而增加。对于ICMP跟踪,该值将决定初始ICMP序列值。对于TCP和其他端口,这将是连接的恒定目的端口。
$ traceroute -p <port> 192.168.0.1
6、隐藏设备名称
在某些情况下,输出中的设备名称可能会使输出看起来很混乱。为了更清晰,你可以在输出中隐藏设备名称。为此,使用"-n"(无映射)标志。
$ traceroute -n a5idc.com
7、路径超时限制
默认情况下,traceroute等待5秒才能收到响应。在某些情况下,你可能想改变等待时间,使其大于或小于5秒。要做到这一点,使用"-w "标志。注意,时间值是一个浮点数。
$ traceroute -w 6.0 a5idc.com
8、探测方法
有多种方法可以用来探测远程地址。要指定traceroute使用ICMP echo,使用"-I "标志。
$ traceroute -I a5idc.com
要使用TCP SYN进行探测,请使用"-T "标志。
$ sudo traceroute -T a5idc.com
9、设置最大跳数
默认情况下,traceroute将跟踪30个跳数。Traceroute提供了手动设置跟踪的跳数的能力。
使用"-m "标志来表示跳数。
$ traceroute -I -m 10 a5idc.com
10、指定接口
如果有多个网络接口连接到计算机,那么指定用于发送数据包的网络接口可能会有帮助。要指定网络接口,使用"-i "标志。
$ sudo traceroute -i enp0s3 a5idc.com
11、定义一个跳的查询次数
要定义一个跳的查询次数,使用"-q "标志来指定这个数字。
$ traceroute -I -q 4 a5idc.com
12、通过网关进行数据包路由
要将数据包路由到某个网关,使用"-g "选项,然后是网关。
$ traceroute -I -g 192.168.0.1 a5idc.com
13、帮助页面
以上演示只是traceroute的一些常用用法,还有更多的功能供你使用。要想获得快速帮助,请使用下面的命令打开 traceroute 帮助页面。
$ traceroute --help

关于所有可用的traceroute选项的更完整、更深入的指导,请查看man页面中的以下命令。
$ man traceroute

Traceroute是一个用于网络诊断的强大工具,它支持的选项有很多。掌握traceroute可能需要一些时间和练习。在使用这个工具时,你会经常采用本文中描述的方法。
还有更多类似traceroute的工具。如果你想在GUI中使用类似的工具,那么可以看看Zenmap来扫描网络。Zenmap是另一个流行的网络扫描仪Nmap的GUI前端。