Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
fe6520 opened this issue Jan 10, 2023 · 8 comments
Closed

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

fe6520 opened this issue Jan 10, 2023 · 8 comments
Labels
question Further information is requested

Comments

@fe6520
Copy link

fe6520 commented Jan 10, 2023

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

Windows_amd64

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

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

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

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

能正常显示路由信息

请附上你的命令

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

@sjlleo
Copy link
Contributor

sjlleo commented Jan 10, 2023

Hi fe6520,

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

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

谢谢

@sjlleo
Copy link
Contributor

sjlleo commented Jan 10, 2023

多提一句~

具体为什么需要在防火墙规则为 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 正常显示,即可证明是防火墙的问题。

@sjlleo sjlleo added the question Further information is requested label Jan 10, 2023
@sjlleo sjlleo pinned this issue Jan 10, 2023
@fe6520
Copy link
Author

fe6520 commented Jan 11, 2023

Hi fe6520,

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

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

谢谢

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

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

@sjlleo
Copy link
Contributor

sjlleo commented Jan 11, 2023

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

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

谢谢

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

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

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

@sjlleo sjlleo closed this as completed Jan 11, 2023
@sjlleo sjlleo unpinned this issue Jan 25, 2023
@Azhc
Copy link

Azhc commented Jun 15, 2023

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

@mikevshu
Copy link

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
Copy link

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

@tsosunchia
Copy link
Member

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

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

本项目对此无能为力

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants