nxtrace / NTrace-core

NextTrace, an open source visual route tracking CLI tool
https://www.nxtrace.org
GNU General Public License v3.0
5.72k stars 337 forks source link

Windows版本下面不显示路由信息 #52

Closed fe6520 closed 1 year ago

fe6520 commented 1 year ago

你正在使用哪个版本的 nexttrace?

Windows_amd64

你看到的异常现象是什么?

从开始到倒数第二跳都是空白

见下面图片 Snipaste_2023-01-10_15-00-04

你期待看到的正常表现是怎样的?

能正常显示路由信息

请附上你的命令

请附上出错时软件输出的错误信息

sjlleo commented 1 year ago

Hi fe6520,

在修正这个问题,我想麻烦您先确认以下几点:

  1. 使用 BestTrace / 系统默认的 Tracert 可以正常显示 Hop
  2. 您使用的系统具体版本,如 Win10 20H2
  3. Windows 的防火墙规则已经默认放行 NextTrace

谢谢

sjlleo commented 1 year ago

多提一句~

具体为什么需要在防火墙规则为 NextTrace 的自构建报文的进站响应包添加白名单可以参考 NyaTrace 作者的这篇碎碎念 https://candinya.com/posts/write-a-route-tracing-tool-on-windows/

至于 Windows 自带的 tracert 为什么能绕过这个限制,我需要研究研究文章末尾提到的 WinMTR 再说。 因为它调用的是系统提供的动态链接库接口来实现的,而不是手动构建请求报文。 NyaTrace 已经更新了它的路由追踪算法,现在可以不需要加防火墙规则啦 ♥

NextTrace 为了适配众多 Linux / Unix 发行版,并没有直接使用系统的接口,而采用了手动构建请求报文的方法,而且没有专门向 Windows 的接口申请防火墙的放行,这会导致包回复被Windows 的防火墙拦截,所以需要单独为 NextTrace 添加规则。

另外,如果喜欢 BestTrace 那样的 GUI 端,NyaTrace 对 Windows 的支持显然更加友好(PS:目前 NyaTrace 是使用 MaxMind 公司的 GeoIP2 作为 IP 数据库的,您可以选择 GeoLite 2 替换,具体详见 NyaTrace 官网),NextTrace 作为一款围绕 Linux/Unix 系统为核心的路由跟踪工具,在 Windows 上的各方面支持都较差,而且目前没有计划支持 GUI。

以下是解决方案:

具体规则如下,请使用管理员权限执行以下命令(摘自碎碎念)

netsh advfirewall firewall add rule name="All ICMP v4" dir=in action=allow protocol=icmpv4:any,any
netsh advfirewall firewall add rule name="All ICMP v6" dir=in action=allow protocol=icmpv6:any,any

如果不能确定规则是否生效,可以暂时关闭防火墙再试,如果 Hop 正常显示,即可证明是防火墙的问题。

fe6520 commented 1 year ago

Hi fe6520,

在修正这个问题,我想麻烦您先确认以下几点:

  1. 使用 BestTrace / 系统默认的 Tracert 可以正常显示 Hop
  2. 您使用的系统具体版本,如 Win10 20H2
  3. Windows 的防火墙规则已经默认放行 NextTrace

谢谢

关闭防火墙后即显示正常。

建议:能否在windows下面运行时添加防火墙放行或者临时关闭防火墙提示

sjlleo commented 1 year ago

Hi fe6520, 在修正这个问题,我想麻烦您先确认以下几点:

  1. 使用 BestTrace / 系统默认的 Tracert 可以正常显示 Hop
  2. 您使用的系统具体版本,如 Win10 20H2
  3. Windows 的防火墙规则已经默认放行 NextTrace

谢谢

关闭防火墙后即显示正常。

建议:能否在windows下面运行时添加防火墙放行或者临时关闭防火墙提示

意见收到,下个版本会考虑增加提示。

Azhc commented 1 year ago

建议加一个提示。找了好久的原因 = =终于解决了,感谢

mikevshu commented 1 year ago

OS 名称: Microsoft Windows 10 专业版 OS 版本: 10.0.19044 暂缺 Build 19044 NextTrace v1.1.2 2023-02-20T04:57:32Z 88e69f7 之前就是追踪只显示最后一跳。奇怪的是,在windows防火墙里针对nextrac这个程序的所有放行并未起作用,直到看到上面的netsh advfirewall firewall add rule name="All ICMP v4" dir=in action=allow protocol=icmpv4:any,any,这个放行所有ICMPV4就正常了,为什么?针对程序放行的权限‘任何’里是包括了ICMPV4 V6的

crosspacific commented 1 year ago

我的还是不行。无论手动在网络里添加,还是执行上面代码添加,还是只有首尾,中间全部为*****

tsosunchia commented 1 year ago

我的还是不行。无论手动在网络里添加,还是执行上面代码添加,还是只有首尾,中间全部为*****

第1-2跳和最后一跳有显示,中间跳不显示,这更可能是你的网络问题,这需要咨询你的网络管理员

本项目对此无能为力