
Trippy 在 Windows 上配置 Windows Defender 防火墙以放行 ICMP 的完整指南【免费下载链接】trippyA network diagnostic tool项目地址: https://gitcode.com/GitHub_Trending/tr/trippy导读Trippy 是一款基于 ICMP、UDP 与 TCP 三种探测协议的网络诊断工具在 Windows 平台上依赖原始套接字raw socket收发 ICMP 报文来绘制 traceroute 路径。由于 Windows Defender 防火墙默认阻止所有入站 ICMP 流量Trippy 在 Windows 上必须额外创建放行入站 ICMPv4/ICMPv6 的防火墙规则否则会表现为“发送了探测但收不到任何响应”。本文以 windows_firewall 官方文档 为核心骨架结合 windows.rs 的底层套接字实现与 FAQ 的故障说明完整讲解防火墙规则的创建、启用、禁用、手动配置方式及验证排错方法读完即可让 Trippy 在 Windows 上稳定运行。为什么 Windows 上必须放行入站 ICMPTrippy 的探测原理是向目标主机发送 TTL 逐跳递增的探测包沿途路由器在 TTL 耗尽时回送 ICMP TimeExceeded 报文目标主机在收到探测包时回送 EchoReplyICMP 模式或 ICMP 错误报文UDP/TCP 模式。也就是说Trippy 的路径发现完全依赖反向到达本机的 ICMP 报文。从源码可以印证这一依赖关系windows.rs 中接收套接字的创建明确使用了 ICMP 协议族IPv4 接收套接字通过new_recv_socket_ipv4以Protocol::ICMPV4创建原始套接字IPv6 接收套接字通过new_recv_socket_ipv6以Protocol::ICMPV6创建原始套接字。同时在 icmpv4.rs 的IcmpType定义中Trippy 关心的报文类型包括EchoReply0、DestinationUnreachable3与TimeExceeded11分别对应目标应答、路径错误与 TTL 超时三类关键反馈。需要特别说明的是Trippy 发出的探测包属于出站流量默认允许而被探测路径上的路由器和目标主机回送的 ICMP 报文属于入站流量默认被 Windows Defender 防火墙拦截。即使 Windows 自带的tracert.exe工作正常也不代表 Trippy 能正常工作——因为 FAQ 明确指出在 Windows 上即使tracert.exe正常也必须为 Trippy 配置 Windows Defender 防火墙以允许入站 ICMP 流量。此外Windows 平台的 TCP 探测模式还会通过TCP_FAIL_CONNECT_ON_ICMP_ERROR与TCP_ICMP_ERROR_INFO套接字选项获取 ICMP 错误信息见 windows.rs这意味着 TCP 模式同样受入站 ICMP 规则影响。前置条件在创建防火墙规则之前请先确认以下两点以管理员权限运行Trippy 在 Windows 上必须使用管理员权限运行原因在于原始套接字的创建需要提升权限详见 privileges 文档。同理以下所有New-NetFirewallRule、Enable-NetFirewallRule等 PowerShell 命令也必须以管理员身份启动的 PowerShell中执行。已正确安装 TrippyWindows 平台可通过 安装文档 中的winget install trippy、scoop install trippy或choco install trippy等方式安装亦可在仓库 Cargo.toml 中查看 crate 依赖并通过cargo install trippy --locked从源码构建。使用 PowerShell 创建防火墙规则Trippy 的 Windows Defender 防火墙规则可以通过 PowerShell 的NetSecurity模块New-NetFirewallRule一行创建。官方文档给出的命令如下请保持命令原样执行New-NetFirewallRule -DisplayName ICMPv4 Trippy Allow -Name ICMPv4_TRIPPY_ALLOW -Protocol ICMPv4 -Action Allow New-NetFirewallRule -DisplayName ICMPv6 Trippy Allow -Name ICMPv6_TRIPPY_ALLOW -Protocol ICMPv6 -Action Allow上述命令逐一创建了两条规则各参数含义如下参数说明-DisplayName规则在防火墙管理界面wf.msc中显示的名称便于人工识别这里命名为 “ICMPv4 Trippy Allow” 与 “ICMPv6 Trippy Allow”-Name规则在系统中的唯一标识符GUID 或自定义字符串供后续Enable-NetFirewallRule/Disable-NetFirewallRule/Remove-NetFirewallRule引用这里分别命名为ICMPv4_TRIPPY_ALLOW与ICMPv6_TRIPPY_ALLOW-Protocol协议类型ICMPv4与ICMPv6分别对应 IPv4 与 IPv6 网络栈下的 ICMP 流量-Action对匹配流量执行的动作Allow表示允许放行两条规则分别覆盖 IPv4 与 IPv6 场景建议同时创建如果目标域名同时解析出 IPv4 与 IPv6 地址Trippy 会按地址族分别探测缺少任何一条规则都可能导致对应地址族的探测无响应。启用防火墙规则规则创建后默认处于启用状态但如果规则曾被禁用例如出于安全演练或排查需要可以通过以下命令重新启用Enable-NetFirewallRule ICMPv4_TRIPPY_ALLOW Enable-NetFirewallRule ICMPv6_TRIPPY_ALLOWEnable-NetFirewallRule的参数直接使用创建规则时指定的-Name标识符ICMPv4_TRIPPY_ALLOW、ICMPv6_TRIPPY_ALLOW无需再写-Name前缀这是该 cmdlet 的位置参数用法。禁用防火墙规则当不再需要 Trippy 放行入站 ICMP例如诊断结束后希望恢复系统默认的严格策略时可以禁用规则而不删除它以便日后快速恢复Disable-NetFirewallRule ICMPv4_TRIPPY_ALLOW Disable-NetFirewallRule ICMPv6_TRIPPY_ALLOW禁用后入站 ICMP 将重新回到 Windows Defender 防火墙的默认拦截策略。若确定不再需要也可以直接删除规则Remove-NetFirewallRule -Name ICMPv4_TRIPPY_ALLOW Remove-NetFirewallRule -Name ICMPv6_TRIPPY_ALLOW手动图形界面配置方式如果更习惯使用图形界面操作也可以在 Windows Defender 防火墙的高级设置窗口中手工创建等价规则官方文档同时提供了一份逐步手动配置的指南。其核心步骤与上述命令一一对应按Win R输入wf.msc并回车打开“高级安全 Windows Defender 防火墙”点击左侧“入站规则”再点击右侧“新建规则…”规则类型选择“自定义”点击“下一步”“程序”选择“所有程序”点击“下一步”“协议类型”选择ICMPv4点击“自定义…”并选择“特定 ICMP 类型”或全部 ICMP 类型确认后继续“操作”选择“允许连接”按需决定是否勾选“公用”“专用”“域”配置文件为该规则命名如ICMPv4 Trippy Allow并完成创建重复上述步骤将协议类型改为ICMPv6创建第二条 IPv6 规则。手动创建的规则与 PowerShell 命令创建的规则在效果上等价适合一次性、交互式配置场景而 PowerShell 方式更利于脚本化批量部署。验证规则与故障排查确认规则状态创建完成后可通过以下命令验证两条规则是否已正确生效Get-NetFirewallRule -Name ICMPv4_TRIPPY_ALLOW, ICMPv6_TRIPPY_ALLOW | Select-Object Name, Enabled, Action, Profile输出中Enabled应为True、Action应为AllowProfile应至少覆盖当前活跃的网络配置文件域/专用/公用。排查 “Awaiting data...” 问题根据 FAQ当 Trippy 界面持续显示 “Awaiting data...” 时意味着本次探测没有收到任何响应通常有两种原因探测包未发出或更常见的是响应包未收到。在 Windows 上的排查顺序应为确认防火墙规则已创建并启用即上文两条 ICMPv4/ICMPv6 放行规则确认 Trippy 以管理员权限运行先用系统自带工具做对照实验运行tracert.exe 目标确认链路本身可用。注意即使tracert.exe正常仍必须为 Trippy 配置防火墙规则二者不能互相替代进一步可用抓包工具如 Wireshark、tcpdump观察 ICMP 请求是否发出、响应是否到达本机定位是发送侧还是接收侧的问题。安全注意事项放行入站 ICMP 会略微扩大本机的网络暴露面。建议遵循最小权限原则仅在需要运行 Trippy 时启用规则用完即Disable-NetFirewallRule禁用如本机同时用于其他生产服务可将规则限定到具体网络配置文件-Profile参数避免在公用网络如公共场所 Wi-Fi上放行。相关参考windows_firewall 官方指南本文核心命令的唯一权威来源与仓库根目录的 guides 版本 内容一致FAQ包含 “Awaiting data...” 的完整排查说明privileges 指南说明 Windows 下管理员权限的必要性Windows 平台实现原始套接字ICMPV4/ICMPV6、IPPROTO_RAW与 TCP ICMP 错误捕获的具体实现ICMP 报文类型定义Trippy 所依赖的 EchoReply、DestinationUnreachable、TimeExceeded 报文编码安装指南Windows 平台的各种安装方式。【免费下载链接】trippyA network diagnostic tool项目地址: https://gitcode.com/GitHub_Trending/tr/trippy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考