tracepath 和 traceroute 之间的显着区别是什么?

Isz*_*szi 72 networking traceroute

我最近读了一篇关于 HowToGeek 的文章,让我有点摸不着头脑。我对 Linux 的经验相当少,所以如果这是入门级的,请原谅我:

“tracepath 命令类似于 traceroute,但它不需要 root 权限。”

http://www.howtogeek.com/108511/how-to-work-with-the-network-from-the-linux-terminal-11-commands-you-need-to-know/

traceroute 和 tracepath 如何以不同的方式执行类似的功能?

traceroute 做什么,需要 root 权限,tracepath 不需要?

是否存在人们应该更喜欢 tracepath 而不是 traceroute 的场景,反之亦然?

Mer*_*hts 71

traceroute 和 tracepath 如何以不同的方式执行类似的功能?

这两个程序本质上都做一件事:发送和接收某些 IP 数据包。

程序可以使用普通的套接字 API 来执行此操作,也可以操作来自接口的原始数据包。sockets API 不需要 root 权限,因为它相当安全。有一些内置机制可以防止一个程序访问另一个程序制作的 IP 数据包。

Tracepath 使用套接字 API 来实现其所有功能。Traceroute 操作原始数据包的某些功能。

traceroute 做什么,需要 root 权限,tracepath 不需要?

它操作原始数据包。

要操作原始数据包,您需要 root 权限,因为这样做可以绕过套接字 API 的安全机制。您可以使用该界面访问所有其他进程和用户的通信。试想一下,如果病毒可以操纵原始数据包,它会做什么。

是否存在人们应该更喜欢 tracepath 而不是 traceroute 的场景,反之亦然?

Traceroute 中可用的一项高级命令是能够使用 IPv4 或 IPv6 协议运行网络跟踪。还可以为探针选择 ICMP、TCP 或 UDP 数据格式。Traceroute 可以为探针选择特定的源路由并选择从哪个端口发送。它可以对从出站探测接受的最小和最大 TTL 设置限制。此外,Traceroute 可以显示响应 ping 的等待时间,以及设置每个探测中发送的数据包数量和发送的探测数量。路径上的网络硬件可能不支持其中一些命令,这可能会在探测到达其目标目的地之前终止探测。

来源: 1 2 3


nux*_*nux 13

您可以traceroute用于高级网络跟踪,可以在 IPv4 和 Ipv6 协议之间进行选择,还可以在 ICMP、TCP 或 UDP 数据格式之间进行选择以进行探测。

所以traceroute有比tracepath使用 UDP 数据包进行跟踪更高级的选项。

现在关于超级用户权限

您可以traceroute与普通用户和超级用户一起使用,具体取决于您要使用的选项,这是一个示例:

在此处输入图片说明

这里我们使用的是不需要超级用户权限的UDP数据包

在此处输入图片说明

这里我们使用的是需要特权的ICMP回显数据包。

通过ICMP数据包可以进行DDOS攻击。

了解 ICMP 选项Traceroute 手册页

traceroute在终端中查看选项类型man traceroute

ICMP需要超级用户权限,以确保只有管理员才能使用它的一些选项,因为它可以用来进行死机ping和收集有关特定网络的信息,这里的权限将赋予超级用户使用ICMP更改选项的能力。数据包。

您可以看到,当您尝试 ping 此类网站时www.microsoft.com,您的 ping 甚至在线也会失败,这是因为 Microsoft 路由器阻止了 ICMP_requests 。

所以linux保护系统免受非特权用户的攻击,所以他们不能使用这个命令进行攻击。

  • 通常,对非特权用户的限制用于保护系统免受*攻击* - 而不是被用作攻击其他系统的载体。这对我来说不太有意义 - 你知道任何支持这一点的文档吗? (4认同)