路由器、裝置與 Starlink

Starlink、路由器健檢、家裡 Wi-Fi 上的新裝置和家中的 Mac。

在 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 會印出相同內容,AI 代理程式可以透過 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 顯示路由器通常情況與目前情況、過去兩週及重新啟動記錄;AI 代理程式透過 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)、路由器或網狀網路節點、NAS,或未知。Kilobat 根據裝置在網路上宣告的 Bonjour 服務(Google Cast 接收器、AirPlay、印表機、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 下加入不設限制的設定檔,或為各裝置設定各自的簡易佇列;否則只能看到整條線路。佇列計數可能包含本機傳輸,也可能漏掉 FastTrack 或其他繞過佇列的流量,因此不是裝置完整的網際網路用量。
  • OpenWrt(LuCI 的 ubus 介面):以 root 或在 /etc/config/rpcd 中設定的使用者登入。若要查看各裝置的流量,請安裝 luci-app-nlbwmon;它約每 30 秒計數一次,未安裝時只能看到整條線路。
  • 任何其他路由器:其分享的 UPnP 計數僅涵蓋全家流量。

首次連接使用自有憑證的路由器時,會顯示其指紋:請與路由器上的指紋比較,再選擇信任並連接。此後 Kilobat 只信任該憑證,若憑證變更則會告知。開啟「裝置」、「設定」或進行通話時,Kilobat 每 10–15 秒讀取一次路由器;其他時候每隔幾分鐘讀取一次(FRITZ!Box 每兩分鐘一次,因其計數在 4 GB 時歸零)。每日總量在這部 Mac 上按住家網路分開保留 30 天。總量涵蓋 Kilobat 觀察到的時段,因此 Mac 睡眠或斷線期間的空缺可能使當天數據不完整。通話凍結時,可能會指出當時計數最繁忙的裝置,例如「臥室電視當時有大量網路流量」。這些計數可能包含本機傳輸,因此這只是觀察結果,不能證明該裝置導致凍結。路由器計數證據的優先順序高於已配對 Mac 的回報或剛加入的裝置;路由器檢查則根據路由器自身的運作時間計算重新啟動次數。在終端機中,kilobat router devices 透過 App 列出所有裝置(--json 供指令稿使用,get_home_usage 供 AI 代理程式使用),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 官方建置的版本則與 OpenWrt 公布的版本列表比較,該列表每週從 downloads.openwrt.org 讀取一次。Kilobat 絕不啟動、下載或安裝更新。對於 Kilobat 能辨識但未連接的路由器,若約三個月內沒有已知的韌體檢查,「健康狀態」會顯示較低調的提示並連結至路由器指南;選擇我已檢查可再隱藏三個月。kilobat router 和 kilobat router devices 顯示相同資訊。

智慧家庭:Matter、Thread 和 HomeKit

「工具」›「裝置」有一列智慧家庭資訊:「Thread:1 個網路(家),3 個邊界路由器 · Matter:5 部裝置 · HomeKit:4 個配件、1 個橋接器」。詳細資訊會列出每個 Thread 網路及其邊界路由器(HomePod mini、Apple TV、Google Nest 集線器、Echo、eero 等,按製造商和 Thread 版本顯示)、計算 Matter 裝置數量(即使某裝置出現在多個 App 中也只計一次)、指出等待設定的裝置,並計算 HomeKit 配件與橋接器。最有用的提示是指出有兩個 Thread 網路,常見情況是一個屬於 Apple、另一個屬於 Google:一個網路的裝置不能使用另一個網路的邊界路由器,因此各自的網狀網路比看起來稀疏。Kilobat 會說明如何合併為一個:用保留網路所屬的 App 新增 Thread 裝置,再以 Matter 配對碼分享給其他 App;或者,若邊界路由器支援 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 將其提供給指令稿;AI 代理程式使用 MCP 工具 check_smart_home。此檢查屬於 Kilobat Pro 的「裝置」分頁;「健康狀態」提示、CLI 和 MCP 為免費功能。