上周五快下班的时候,突然在群里收到很多线上用户反馈说:“系统访问非常卡”。
接着我赶紧打开电脑在终端里通过 ping 查看服务器连接情况,延迟 30 多毫秒看着挺正常的,但用户就是无法访问。
最后折腾半天同时打开几个终端窗口分别测 TCP、HTTP,才发现是网关屏蔽了 ICMP,相当耗时耗力。
这几天在 GitHub 找到了NetSonar这款开源免费的可视化网络诊断工具,刚好能解决我这个痛点。
它把 ICMP、TCP、UDP、HTTP 这 4 种协议集中在一个界面显示,并将延迟数据实时画成曲线,一目了然看到所有网络情况。
多协议测试,不用再靠猜
以前在终端里排查网络问题的时候,通过使用 ping 命令然而在发现不通的时候,却搞不清楚到底哪里出了问题。
是网络层不通呢?还是防火墙被拦了?又或者是服务挂了?信息量显示太少,基本都是我们靠猜,不断尝试。
现在有了 NetSonar 工具,它支持 ICMP、TCP、UDP、HTTP 四种协议,可直观地查看不同协议的连接状态。
甚至还把所有测试结果实时生成曲线图,让我们直观地看到所有网络的延迟波动,精确监控到那个时间点里出现丢包情况。
网卡管理,不用翻设置了
在日常我们使用笔记本电脑的时候,网络通常都是用 Wifi,但偶尔会接网线,此时虚拟机还装了几个虚拟网卡。
每次想看网卡配置,在系统设置里翻半天,或者在终端敲ipconfig在一堆输出里找相关信息。
现在 NetSonar 把所有网络接口整理在一个页面,IP、MAC、网关、DNS、收发包统计一目了然。
而且想临时禁用某个网卡,点个按钮就行,这个功能在不同网络环境切换的场景下,真能帮我们省不少时间。
子网扫描,不用一个个 IP 试了
NetSonar 的子网扫描比手动 ping 强太多:
快速扫描:输入 IP 段如 192.168.1.0/24,几秒钟列出整个网段在线设备;
端口检测:可指定常用端口 22、80、443,或自定义列表。不光知道哪些 IP 在线,还能知道开了什么服务;
导出 CSV:扫完导出表格,IP、端口、延迟全有,直接发同事或导 Excel 分析。
这功能对于在管局域网设备的朋友来说太有用了。
再也不用记一堆 nmap 参数,也不用盯终端数设备。现在每次新设备上架,第一件事就是扫一遍,省心省力。
安装很简单,轻松上手
NetSonar 支持 Windows、macOS 和主流 Linux,安装也不复杂。Windows 系统一条 Winget 命令即可:
winget install -e --idPTRTECH.NetSonar
装完开始菜单就能找到,或终端输NetSonar启动。
如果你用的是 macOS 和 Linux 系统,运行下面这条脚本:
bash-c"$(curl -fsSL https://raw.githubusercontent.com/sn4k3/NetSonar/main/scripts/install-netsonar.sh)"
脚本自动识别系统和 CPU 架构(x64/arm64),下载对应版本。
另外提醒下,Linux 或 macOS 用 ICMP 可能需要 root 权限,但 TCP、UDP、HTTP 不需要。
写在最后
断断续续用了 NetSonar 几天,总的来看还是挺适合经常需要排查网络问题的朋友。
其最大的亮点就是所有数据可视化,不像传统命令行工具盯着终端输出的数字,看着眼花缭乱的还容易漏。
不管你是运维、开发,还是网络管理员,若经常被网络问题折腾,不妨试试在这个工具。
GitHub 项目地址:https://github.com/sn4k3/NetSonar
今天的分享到此结束,感谢大家抽空阅读,我们下期再见,Respect!