![是否可以在不接触 ICMP 的情况下跟踪路由?](https://linux22.com/image/147139/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E6%8E%A5%E8%A7%A6%20ICMP%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%B7%9F%E8%B8%AA%E8%B7%AF%E7%94%B1%EF%BC%9F.png)
我经常遇到这样的情况:我想在 Linux 中跟踪没有 root 或 NET_RAW 上限的 IP。
我尝试发送具有较小 TTL 的 UDP 数据包,但根本没有发出 ttl 错误。似乎获取 TTL 超出错误需要使用 ICMP 套接字。是否可以仅使用 UDP 或 TCP 协议而不涉及 ICMP,同时仍收到 TTL 错误通知,以便我可以使用有限的功能跟踪路由?
答案1
当然,您可以使用任何协议。尝试TCP跟踪路由。
或者标准跟踪路由。
来自手册页:
-I, --icmp Use ICMP ECHO for probes -T, --tcp Use TCP SYN for probes -U, --udp Use UDP to particular destination port for tracerouting (instead of increasing the port per each probe). Default port is 53 (dns). -UL Use UDPLITE for tracerouting (default port is 53). -D, --dccp Use DCCP Requests for probes. -P protocol, --protocol=protocol Use raw packet of specified protocol for tracerouting. Default protocol is 253 (rfc3692).