Skip to content
chenjw269Public

About

Desktop widget that shows which hop is causing network trouble.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

Repository files navigation

NetWatch

桌面悬浮窗小组件,用于网络波动检测和诊断,并辅助定位网络问题出现在哪一段链路(电脑→路由器→互联网)。平时基本不占用资源,固定一段时间检测一次网络质量。

展开详情,看到诊断结果和链路测试,再收起

安装

下载 NetWatch-Setup.exe

双击安装,不用管理员权限。装完自己打开,停在屏幕右下角,开机也会启动。

窗口不在任务栏里。要退出,展开后点「退出」,或在窗口上右键选「退出」。

怎么看

左边是这一轮的结论,右边是到互联网的延迟。下面两行分别是到路由器、再到互联网。最后一行时间是上一轮测完的时刻。

单击概况可以展开,按住可以拖动。展开后底部改监测间隔。右键里可以立刻重测、暂停、开关机启动,也可以做丢包率测试、复制诊断结果。

到互联网测的是 223.5.5.5,不走系统代理。每一轮向路由器和这个地址各发 4 个包,每个包最多等 800 毫秒。

判定规则

一轮里可能同时有好几样问题,窗口只显示先碰到的那一条。

窗口上的结论 什么时候会这样
网络正常 两段都有回复,延迟稳定,没有明显丢包。路由器不回 ping、但互联网有回复,也算正常,它只是不回答,包还在转发。
电脑→路由器 未连接 找不到路由器。电脑没连上 Wi-Fi,或网线没插好。
电脑→路由器 链路不通 到路由器超时,或 4 个包里丢了一大半(至少 60%,或连续 3 个超时)。到互联网也不通时,同样先看这一段。
电脑→路由器 链路丢包 到路由器还能通,但丢包达到 5%。
电脑→路由器 链路抖动 到路由器有回复,最慢的那个包超过 100 毫秒,并且至少是平均延迟的 3 倍。
电脑→路由器 信号偏弱 Wi-Fi 信号低于 45%,或 RSSI 不高于 -75。已经在丢包、抖动时,会优先显示这一条。
电脑→路由器 2.4GHz 干扰 连的是 2.4GHz,信号并不弱(不低于 70%,或 RSSI 不低于 -65),但延迟突然变大,或连续几个包超时。
路由器→互联网 链路不通 到路由器是通的,只有到 223.5.5.5 超时或丢了一大半。
路由器→互联网 链路丢包 路由器正常,到 223.5.5.5 有丢包。丢包达到 20% 会标成严重。
路由器→互联网 链路抖动 到互联网的最慢包超过 100 毫秒,并且至少是平均延迟的 3 倍。
路由器→互联网 没有回应 开着 VPN,到 223.5.5.5 没有回应。这一下不能说明路由器坏了,包可能进了 VPN。
代理网络不通 系统代理开着,国内网站能开,国外网站都不通。
代理延迟偏高 国内网站很快,国外网站都能打开,但都要 1.2 秒以上。
国内网站不通 地址能 ping 通,国内网页却没有回应。
DNS 解析失败 地址能 ping 通,网页失败是因为域名没有解析出来。

建议操作

先看窗口上的结论,再做对应的那一步。做完后右键选「立即检测」,或等下一轮,不要连着重启一堆设备。

看到的结论 建议操作
网络正常 不用处理。路由器不回 ping 时也不要重启。
电脑→路由器 未连接 打开 Wi-Fi,或把网线插紧。还是没有,就关掉 Wi-Fi 再打开。
电脑→路由器 链路不通 关掉 Wi-Fi 再打开。用网线就拔下来重插。还不通,重启路由器,等指示灯稳定后再测。
电脑→路由器 链路丢包、链路抖动、信号偏弱、2.4GHz 干扰 靠近路由器。手机或电脑能连 5GHz 就不要用 2.4GHz。还不行,关掉 Wi-Fi 再打开,最后再重启路由器。
路由器→互联网 链路不通、链路丢包、链路抖动 先重启路由器。家里其他手机、电脑也不上网,再等一会儿,或联系运营商。这一步不用动代理。
路由器→互联网 没有回应 先断开 VPN,再检测一次。不要为此重启路由器。
代理网络不通 退出代理软件再打开,或换一个节点。看一下系统代理是不是开着。
代理延迟偏高 换一个节点。不用重启家里的路由器。
DNS 解析失败、国内网站不通 关掉 Wi-Fi 再打开。还不行就重启路由器。只有一个网站打不开,多半是那个网站自己的问题,先等一会儿。

从源码运行

Windows 10 1809 或更新,需要 .NET 8 SDK。

dotnet run --project src/NetWatch.App/NetWatch.App.csproj -c Release

再运行一次会直接退出,避免开出两个窗口。

打包

在仓库根目录执行:

powershell -ExecutionPolicy Bypass -File build.ps1

需要 .NET 8 SDK 和 Inno Setup 6。安装包生成在 dist\NetWatch-Setup.exe。不要把 publish、bin 或 dist 提交进 git。

About

Desktop widget that shows which hop is causing network trouble.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages