路由器、设备与 Starlink
Starlink、路由器体检、家里 Wi-Fi 上的新设备和家中的 Mac。
Starlink
在 Starlink 天线的网络上,“健康”会显示 Starlink 面板。Kilobat 会在网络变化时以及之后每五分钟,向 192.168.100.1(Starlink App 使用的地址)询问天线状态来找到它;没有天线时,请求会在大约一秒内失败,不会显示任何内容。它在你自己的网络上通过 gRPC-Web(端口 9201)或 gRPC(端口 9200)读取天线的本地 API,只读取,从不收起、重启或重新配置天线。有关它的任何信息都不会离开你的 Mac。
- 状态。在线、有遮挡、正在搜索或正在重启;到 Starlink 地面站的 ping 以及其中丢失的比例;天线当前为所有设备传输的流量;已运行多久;软件版本。
- 警报用通俗语言说明,并告诉你该怎么做:因过热降速或关闭、正在融雪、电机卡住、支杆倾斜、超出服务区域、线缆速度慢、进水,以及有更新等待重启。
- 天空地图。以 Kilobat 的配色显示天线自己的遮挡地图:蓝色表示它清楚看到过卫星的地方,玫红色表示有东西挡住的地方,并用一句话说明方向和高度,例如“东北方向被遮挡,位置较低,比如树木、建筑或山丘。”同时显示天空被遮挡的频率和时长。
- 断网来自天线的日志,在你的 Mac 上保留 30 天,每一次都归入能解决它的一方:你的设备(遮挡、过热、省电、线缆)、Starlink 的网络(视野中没有卫星、地面站没有回应)或天线重启(更新、调整位置)。给运营商的报告会包含这份日志,但不含天线的序列号或位置。
- 通话。在天线断网或被遮挡期间发生的通话卡顿会归因于此:有东西挡住了天空、视野中没有卫星,或天线正在重启。
- 流量套餐。Roam 100 GB、Roam 300 GB 或不限量:有流量上限的套餐会把网络标记为按流量计费,使用 Pro 时还会按上限设置每月预算。预算只计算这台 Mac;面板还会显示天线在最近 15 分钟内为所有设备传输的流量。
天线的状态、ping、警报、天空被遮挡的比例和天空地图都是免费的,kilobat starlink 和它的 MCP 工具也是。被哪个方向遮挡以及该移开什么、按来源分类的断网、把 Starlink 指为通话卡顿或卡顿测试中延迟尖峰的原因、给运营商的报告中的天线日志以及 Roam 预算,都属于 Kilobat Pro 功能。如果你自己的路由器处于旁路模式,通常仍然可以访问天线;如果不行,请通过路由器的 WAN 端口添加一条到 192.168.100.0/24 的路由。在终端中,kilobat starlink 会打印同样的内容,智能体可以通过 get_starlink_status 读取。
路由器体检
有些路由器运行得越久越慢,重启后能好上一阵子。有了 Kilobat Pro,“健康”会留意这种情况并告诉你:“你的路由器越来越慢了。最近 3 天,它的响应用时 19 ms,而不是平时的 4 ms。最近 3 次都是重启后就好了。”它使用的是 Kilobat 本来就大约每分钟进行一次的后台检查:ping 一次路由器,再做一次名称查询。它只统计 Mac 自身流量较少、也没有 Wi-Fi 登录页面挡道时的检查,因为大文件下载、通话或酒店的登录页面都会让任何路由器看起来很慢。不会额外占用网络流量。
在一个网络上,它需要 7 天有足够多的安静检查才会做出判断,而且每台路由器只和它自己比较:和它在前两周里的平常一天比较。只有当最近三个有数据的日子每天都明显变差时,它才会提醒:响应时间至少是平时的两倍且至少慢 5 ms、丢失的 ping 至少多 3 个百分点,或连接每天至少断开 3 次。偶尔一个晚上不顺、周末外出或某个下午网络繁忙都不会算进去。Wi-Fi 信号变弱、换了频段或连到了另一个 Mesh 接入点也不算;这些情况下,“健康”会改为指出它们。经由路由器的名称查询变慢会被提到,但单凭这一点绝不会触发提醒,因为它也包含了运营商服务器的耗时。每个网络和每台路由器都有各自的记录;同一网络上换了新路由器会重新开始。
重启路由器时,点按我已重启。当 Mac 处于唤醒状态时,如果路由器消失 30 秒到 10 分钟后同一台路由器重新出现,Kilobat 也会自行检测到重启。一天后,它会比较重启后的那一天、重启前的一天和路由器的通常表现:“重启后:恢复到 4 ms ✓”,或显示重启没有帮助。后续结果会引用这段历史。两次重启都没有帮助时,它会建议更新固件、移到更开阔的位置,或在路由器老旧时更换。Kilobat 仅观察到的重启绝不会计为无效重启,因为 Mac 的 Wi-Fi 断开在此处看起来相同。连接路由器后(见下文),Kilobat 会读取其自身运行时间,因此每次重启都会计入,包括 Mac 睡眠期间的夜间重启。每次速度下降最多通知一次,每周最多一次;可在“设置 › 监控”中关闭。在终端中,kilobat router 显示路由器通常情况与当前情况、过去两周及重启记录;智能体通过 get_router_checkup 获取。
家里 Wi-Fi 上的新设备
在家庭网络上打开“工具 › 设备”,开启这是我的家庭网络(也可在“设置 › 网络”中开启)。Kilobat 会先默默记下已经在网络上的每台设备,之后每隔几分钟再查看一次(低电量模式下每十五分钟一次),有它没见过的设备加入时就通知你:先是“有新设备加入了”和你的网络名称,然后是设备的名称或制造商、地址和加入时间。这是我的会把它归档;我不认识会在“设备”中打开它,显示 Kilobat 知道的信息和该怎么做:在路由器的已连接设备列表中找到它;如果还是不认识,就更改 Wi-Fi 密码。新设备在列表中带有“新”标记,你可以在那里给每台设备命名,并说明它是你的、你不认识的还是要忽略的。Kilobat 只监视你标记的网络,除非你标记,否则不会监视热点或咖啡馆的网络。
每次查找时,Kilobat 会向 Mac 所在子网中的每个地址(最多 254 个)各发送一个空数据包,让 macOS 知道哪些设备会响应,然后读取 Mac 的邻居列表。新设备自报的名称来自你网络中的路由器和 Bonjour,绝不会来自网络之外的 DNS 服务器。手机和笔记本电脑使用私有 Wi-Fi 地址,它会隐藏制造商,而且可能变化;如果设备有专属的名称(比如 Ritas-iPad),Kilobat 能在地址变化后认出它,但如果名称是同类设备共用的(比如 iPhone),就认不出来。处于睡眠状态或从不响应的设备可能不会出现。Kilobat 找到的内容保存在你 Mac 上的一个文件中。借助路由器的流量计数器(UPnP),当通话报告把原因归于你网络中的另一台设备、而卡顿前十分钟内恰好只有一台设备加入时,报告会指出它的名字:“由 Rita 的 iPad 下载导致”。在终端中,kilobat devices 会把每台设备标为新、已知、未知或已忽略,kilobat devices mark <MAC> mine 则为某一台设备作答。新设备提醒和“设备”标签页一样,是 Kilobat Pro 的功能。
设备类型和摄像头上传
“设备”会列出每台设备的类型:摄像头、门铃、电视或流媒体棒、投屏设备、扬声器、打印机、智能插座或开关、集线器或网桥、游戏机、手机或平板电脑、电脑、无人机或运动相机(DJI、GoPro、Insta360)、路由器或 Mesh 节点、NAS 或未知。Kilobat 根据设备在网络上通告的 Bonjour 服务(Google Cast 接收器、隔空播放、打印机、Sonos、HomeKit 配件类别、Matter 设备类型)、设备在网络上提供的 UPnP 描述、该地址注册的制造商及其名称判断。它只保留其中的型号和制造商名称,绝不保留你为扬声器或电视取的名称。设备自行说明类型时会直接显示,例如“摄像头(Wyze)”。只有制造商或名称提供线索时,Kilobat 会显示“很可能是摄像头(Wyze)”或“可能是智能插座或开关”;只有确定时,新设备通知才会指出类型,例如“新的 Wyze 摄像头已加入”。标签标记 HomeKit 和 Matter 设备及 Thread 边界路由器,例如 HomePod mini 或 Apple TV。如果 Kilobat 判断错误,可在设备详情中选择类型(包括选择“未知类型”以抑制推测),或运行 kilobat devices type <MAC> camera;auto 恢复 Kilobat 的判断。kilobat devices --json 和 MCP list_devices 增加 type、confidence(已设置、高、中或低)、typeLabel 和 tags。
云摄像头可能持续上传、在事件发生时上传或在你观看实时视频时上传,与通话和直播争用带宽。Kilobat 无法从 Mac 看到其他设备的流量,因此单独使用时只会说明云摄像头可能占用大量上传带宽,并列出制造商公布的数据:Google 称 Nest 摄像头为 0.15–4 Mbps,全天录像每月最多 300–400 GB;Ring 每台设备 720p 为 1 Mbps、1080p 为 2 Mbps(2K 和 4K 分别为 10 和 15 Mbps);Arlo 每台摄像头视型号为 1–3 Mbps,每个门铃为 2 Mbps。这些是制造商的数据,不是对你设备的测量。当前路由器集成无法测量各摄像头的互联网上传量:UniFi 和 MikroTik 客户端计数器可能包含本地流量,OpenWrt 的 nlbwmon 统计穿过配置的本地子网的流量,而非经过验证的互联网接口;FRITZ!Box TR-064 只有全家庭计数器。因此,即使连接了路由器,Kilobat 显示的仍是制造商公布的摄像头上传数据,不会将路由器客户端总量当作摄像头的互联网用量或家庭上传占比。当最近一次速度测试的 ping 在上传期间上升至少 60 ms 时,“健康”会提及摄像头;当另一设备的上传使通话卡住时,通话报告也会提及。
家中的 Mac
如果家里每个人都用 Mac,运行 Kilobat 的 Mac 就能互相告知自己此刻的流量。路由器归咎于其他设备的卡顿,就会直接点名:“由 Anna 的 MacBook 下载(Steam)导致”,而不是“你网络上的其他设备”。这只在你标记为家庭网络的网络上、并且只在你配对的 Mac 之间有效。共享默认关闭,需要在每台 Mac 上分别打开。
要配对两台 Mac,请在家里的 Wi-Fi 上,在两台 Mac 上都打开“设置 › 家中的 Mac”,并分别选择配对 Mac。在任意一台上从列表中选择另一台 Mac。两台 Mac 会显示相同的六位数代码:确认它们一致后,在两台上都选择代码一致。如果不一致,请取消。在每台需要共享的 Mac 上打开与已配对的 Mac 共享这台 Mac 的使用情况;如果电脑自带的名称不够清楚,就给它起个名字。取消配对会忘记另一台 Mac 及其密钥。
已配对的 Mac 会共享它的名称、当时的下载和上传速度、最忙的三个 App 的名称,以及是否在通话中。不包括它访问的网站或服务器,也没有历史记录。另一台 Mac 每隔几秒询问一次,但只在通话期间、“设备”或家中的 Mac 设置打开时,或你运行 kilobat household 时才会询问。不经过任何服务器:两台 Mac 通过你网络上的 Bonjour 找到彼此并直接通信,使用只有它们两台才有的密钥,保存在各自的钥匙串中。请求经过签名,回应经过加密,因此你 Wi-Fi 上的其他设备无法读取或重放它们。macOS 会请求一次“本地网络”访问权限;如果它已关闭,设置会告诉你在哪里打开。
在“工具 › 设备”中,已配对的 Mac 带有 Kilobat 标记,并显示其速度和最忙的 App。通话期间,如果某台已配对的 Mac 忙到足以让通话卡顿,菜单会提到它。任何 Kilobat 都可以共享;查看其他 Mac 并让通话报告指出它们,是查看方 Mac 上 Kilobat Pro 的功能。在终端中,kilobat household 会列出已配对的 Mac 以及每台正在做什么,--json 则为脚本提供相同信息;配对只能在 App 中进行。
连接路由器
Kilobat 自行统计此 Mac 的流量。连接受支持的路由器后,可在“工具 › 设备”中查看其流量计数器。有各设备计数器的路由器会以你给出的名称显示每台设备当前的下载和上传速度,以及今天记录的总量。FRITZ!Box 只提供设备列表和全家庭流量。Kilobat 登录路由器自身的本地界面,只读取信息,不会在路由器上安装任何内容或更改设置。它只在标记为家庭的网络上工作,只连接本地网络地址;密码或 API 密钥保留在此 Mac 的钥匙串中,绝不写入文件或同步。在“设备”或“设置 › 你的路由器”中选择连接路由器;Kilobat 根据路由器在网络上的响应识别 FRITZ!Box、UniFi、MikroTik 或 OpenWrt 并填入地址。
- FRITZ!Box(TR-064):在 System › FRITZ!Box Users 下为 Kilobat 添加专用用户,授予 FRITZ!Box Settings 权限,不允许从互联网访问。该权限用于读取线路总量和设备运行时间;仅有 Voice messages 权限时,Kilobat 仍可查看设备列表和线路速度。TR-064 列出在线设备,但没有各设备的流量,因此 Kilobat 会按名称显示此 Mac 和已配对 Mac,线路其余部分显示为其他设备。Kilobat 向设备查询其 HTTPS 端口并连接。
- UniFi(UniFi Network 9.3 或更高版本):在 Settings › Control Plane › Integrations 下创建 API 密钥。官方 API 列出客户端;控制台允许时,各客户端流量来自控制器较旧的统计 API。如果该 API 不可用,Kilobat 会说明并只显示可读取的计数器。客户端计数器可能包含家庭网络内的传输,因此是设备流量,而不是仅限互联网的总量。没有 Integrations 的旧版控制台使用本地账户登录。
- MikroTik(RouterOS 7 REST API):开启带证书的
www-ssl,并在仅具有 read 和 rest-api 权限的组中添加用户。要查看各设备流量,请在 IP › Kid Control 下添加不设限制的配置,或为设备分别设置 simple queue;否则只能看到整条线路。队列计数器可能包含本地传输,也可能遗漏 FastTrack 或其他绕过队列的流量;它不是设备完整的互联网用量。 - OpenWrt(LuCI 的 ubus 接口):以 root 或在
/etc/config/rpcd中设置的用户登录。要查看各设备流量,请安装luci-app-nlbwmon,其计数间隔约为 30 秒;否则只能看到整条线路。 - 其他路由器:其共享的 UPnP 计数器只覆盖整个家庭。
使用自有证书的路由器首次连接时会显示指纹:请与路由器上的指纹对比,然后选择信任并连接。此后 Kilobat 只信任该证书,证书更改时会提示。打开“设备”“设置”或通话期间,每 10–15 秒读取一次路由器;其他时候每隔几分钟读取一次(FRITZ!Box 每两分钟一次,其计数器在 4 GB 时回绕)。每日总量按家庭网络分别保存在此 Mac 上 30 天。它们只覆盖 Kilobat 观察到的时段,因此 Mac 睡眠或断开连接造成的空档可能使一天的数据不完整。通话卡住时,报告可能指出当时计数器最繁忙的设备,例如“同时卧室电视正在大量使用网络流量”。这些计数器可能包含本地传输,因此这是观察结果,不能证明该设备导致卡顿。路由器计数器证据优先于已配对 Mac 的报告或刚加入的设备;路由器检查根据其自身运行时间统计重启。在终端中,kilobat router devices 通过应用列出每台设备(--json 供脚本使用,get_home_usage 供智能体使用),kilobat router connect 输出各路由器的步骤,kilobat router disconnect 忘记路由器及其密码。CLI 绝不接收路由器密码。连接路由器是 Kilobat Pro 功能。
固件:路由器自身界面提供信息时,“设备”和“健康”会温和提示有新版本,例如“FRITZ!OS 8.10 可用;当前为 8.00”,并提供进入路由器自身更新屏幕的按钮。FRITZ!Box 会说明自己是否发现新版 FRITZ!OS;UniFi Network 会将网关标记为可升级;RouterOS 显示上次有人在 System › Packages 中选择 Check For Updates 时发现的版本(Kilobat 绝不运行该检查);OpenWrt 自身发行版会与每周一次从 downloads.openwrt.org 读取的 OpenWrt 公开发行列表比较,仅适用于项目自身的构建。Kilobat 绝不会启动、下载或安装更新。Kilobat 能识别但未连接的路由器,如果约三个月没有已知的固件检查,“健康”会显示较轻的提示并链接路由器指南;我已检查会将提示再隐藏三个月。kilobat router 和 kilobat router devices 显示相同信息。
智能家居:Matter、Thread 和 HomeKit
“工具 › 设备”有一行智能家居信息:“Thread:一个网络(家庭),包含 3 个边界路由器 · Matter:5 台设备 · HomeKit:4 个配件、1 个网桥”。详情列出各 Thread 网络及其边界路由器(HomePod mini、Apple TV、Google Nest 集线器、Echo、eero 等,按制造商和 Thread 版本显示),统计 Matter 设备(即使设备在多个应用中也只计一次),说明哪些等待设置,并统计 HomeKit 配件和网桥。最有用的提示是你有两个 Thread 网络,通常分别属于 Apple 和 Google:一个网络的设备无法使用另一个的边界路由器,因此各 Mesh 网络的实际冗余都比看起来少。Kilobat 说明如何合并:使用保留网络对应的应用添加新 Thread 设备,通过 Matter 配对码共享到其他应用;或者在边界路由器支持 Thread 1.4 凭据共享时,让它加入保留的网络。
同一检查还会查看网络是否为 Matter 准备就绪:IPv6 地址和观察到的前缀通告设备(Matter 需要 IPv6;缺少前缀不能证明路由器关闭了 IPv6)、Bonjour 响应、其他设备的可见性(空网络无法证明客户端隔离)、位于另一子网或 VLAN 的智能家居设备,以及 Wi-Fi 是否使用 2.4 GHz(大多数 Wi-Fi 智能家居设备设置时需要)。每项检查会说明如何调整;Kilobat 知道路由器时会提供指南,无法判断时也会说明。网络上的智能家居设备有问题时,“健康”会用一行显示。
它只监听:Kilobat 会花几秒读取 _meshcop._udp、_matter._tcp、_matterc._udp 和 _hap._tcp 的 Bonjour 通告及此 Mac 自身的网络设置,绝不会设置、配对或控制设备。macOS 会要求一次本地网络访问权限。在终端中,kilobat smarthome 显示相同信息,--json 将信息提供给脚本;智能体使用 MCP 工具 check_smart_home。检查属于 Kilobat Pro 的“设备”标签;“健康”中的提示、CLI 和 MCP 免费。