---
title: "健康狀態與速度 | Kilobat 說明文件"
url: "https://kilobat.app/zh-hant/docs/health"
description: "為什麼連不上、速度測試、卡頓、路由歷史、斷線，以及給電信業者的報告。"
---

# 健康狀態與速度

為什麼連不上、速度測試、卡頓、路由歷史、斷線，以及給電信業者的報告。

## 連不上的時候

`kilobat why <host>`（MCP：`diagnose_connection`）會從這台 Mac 逐層檢查一台主機，不經過 `curl` 或 `nc`，所以嚴格的設定檔不會擋住檢查本身。它會分別嘗試 IPv4 和 IPv6，所以當網路的 IPv6 壞掉（這是代理程式卡住或不停重新連線的常見原因）時，也能得到明確的答案。它會指出使用的介面，例如 Wi-Fi、手機熱點或 VPN，有多個介面時會逐一嘗試。它會回報系統或其 PAC 檔選用的代理伺服器；搭配 `--app` 時，還會回報該 App 環境中的 `HTTPS_PROXY`，但不含密碼。開著 VPN 或代理伺服器時，它會比較直連路徑和通道。私有名稱送到 VPN 自己的解析器時，會說明是哪一個，以及它有沒有回應。在容器、虛擬機器或遠端機器中執行的程式碼有自己的網路：傳入 `--context`，報告最後會附上一個要在那裡執行的指令。當代管服務從自己的伺服器發出請求時（例如 Warp 對自訂推論端點的做法），`--context provider` 會說明目標是否為私有位址（`localhost`、LAN 或 Tailscale 位址），因此對方連不到，即使從 Mac 連得上。

請給它失敗的確切 URL，包含查詢參數：它會請求那個 URL，但所有輸出都會把查詢參數值顯示為 `[redacted]`，所以簽署過的下載連結不會外洩。它會用 App 的方式送出請求：透過 App 的 `HTTPS_PROXY`、系統代理伺服器，或用 `--proxy <url>` 指定 App 在自己設定中填寫的代理伺服器位址。當代理伺服器能用而直連不行時（很多公司網路都是如此），它會說明這一點，而不是回報失敗；當直連可行，但透過 App 的代理伺服器發出的請求失敗時，它會說網路沒問題，是 App 的路徑有問題。對於它無法讀取或無法經過的設定，例如 LM Studio 下載 huggingface.co 時用的 Hugging Face 代理開關，會另外附上一則註記，引用使用者回報的情況，判定結果則改為說明網路連得到主機，而不是 App 的請求能成功。Kilobat 絕不更改其他 App 的設定。拒絕 HEAD 的伺服器會收到一次只取一個位元組的 GET，絕不會真的下載。它最多跟隨五次重新導向，指出失敗的是哪一跳，並對重新導向最終抵達的主機檢查 IPv4 和 IPv6。搭配 `--app` 時，它會列出 App 連到該主機或其代理伺服器的開啟中連線，說明它們是否用了和這次檢查不同的 IP 版本或伺服器，並在幾秒後再看一次：沒了動靜的傳輸會回報為「沒有動靜」，絕不會說成「已完成」。報告會記錄 App 的名稱和版本、送出的方法、走的路徑；搭配 `--failed-at` 時，還會把 App 失敗的時間和檢查執行的時間並列。檢查通過，代表這個請求此刻能從這台 Mac 經由那條路徑成功；它看不到已經在進行的傳輸狀況如何，那部分請用 `kilobat bandwidth <app>` 觀察。

當主機或 App 屬於有公開狀態頁面的服務（例如 slack.com 或 GitHub）時，檢查會以**狀態頁面**層結束，說明該頁面的回報。如果頁面回報故障且此 Mac 上沒有檢查失敗，結論會首先顯示：「Slack 對所有人都無法使用，不是你的問題」，並附有事件標題和連結。如果此 Mac 本身的網路發生故障，服務故障會作為附註。綠色狀態頁面也會照實說明。請參閱[是服務的問題還是我的問題？](https://kilobat.app/zh-hant/docs/health#is-it-down)當故障可能來自此網路本身時，**網路封鎖**層會說明它是否封鎖網站；當服務拒絕你的連線顯示所在的地區時，**地區**層會說明；兩者都會成為結論的重點。請參閱[此處遭封鎖，並非故障](https://kilobat.app/zh-hant/docs/health#blocked-here)。

## 為什麼各家速度測試結果不一樣

Kilobat 的速度測試一次只對 Cloudflare 最近的資料中心建立一條 HTTPS 連線，每個方向 8 秒、最多 80 MB，並在傳輸前和傳輸期間 ping 1.1.1.1。Ookla 的 Speedtest、fast.com 和 macOS 的 `networkQuality` 會同時開多條連線，並自行挑選伺服器，所以在高速或遠距離的線路上，數字通常比較高。在「速度」分頁的測試按鈕旁選擇 *4 條連線*，或執行 `kilobat speedtest --parallel`，就能看出這在你的連線上差多少。每次儲存的測試都會保留 Cloudflare 資料中心、連線數、連結資訊（Wi-Fi 頻段、頻道、訊號和連結速率，或乙太網路）、經過的 VPN，以及這台 Mac 同時傳輸了多少其他流量。「歷史記錄」›「速度測試比較」、`kilobat speed-compare` 和 MCP 的 `compare_speed_tests` 會把兩次測試並排，列出差異，並說明每項差異如何影響結果。它們列出的是差異，不是原因：網路上的其他裝置也在搶頻寬，而 Kilobat 看不到它們。

## 路由歷史記錄

「工具」›「DNS 與 LAN」›「追蹤 3 次」或 `kilobat trace <host> --rounds 3` 會追蹤一條路由三次，每一跳送三個探測封包，並儲存每次追蹤。「歷史記錄」›「已儲存的路由」會把對某台主機的所有已儲存追蹤逐跳彙整，像 mtr 一樣：封包遺失、最佳、平均、最差和最後一次延遲、哪幾跳換了路由器，以及持續延遲從哪裡開始。某一跳不回應、但後面幾跳都有回應，代表那台路由器在限制探測封包的速率，而不是封包遺失。只測本機網路的話，`kilobat lan-test <device>` 會對執行 `iperf3 -s` 的裝置跑五秒 iperf3；iperf3 請自行安裝，Kilobat 從不安裝任何東西。

## 卡頓測試

通話、遊戲串流和遠端桌面可能會卡頓，速度和封包遺失卻看起來正常，因為幾百毫秒的 ping 突波會被平均值吃掉。「健康狀態」中的卡頓測試會每 50 ms ping 一次你的路由器（或網際網路），持續 20 秒，並畫出每一次回應，突波以玫瑰色標示，附上中位數、p95、p99 和最差的 ping。它會告訴你突波是否以固定間隔重複出現（通常指向 AirDrop/AWDL 掃描），還是隨機出現（指向網路繁忙、干擾或訊號弱）。很多路由器每秒只回應大約十個 ping；Kilobat 認得這種模式，不會把它算成封包遺失。有 Pro 的話，*開啟低延遲後比較*會在暫停 AirDrop/AWDL 的情況下重跑測試，並告訴你有沒有幫助。

低延遲暫停會關閉 AirDrop、Sidecar 和通用控制 15 分鐘、1 或 2 小時，或直到你的遊戲或通話 App 結束，最長 4 小時。時間到、App 結束、Kilobat 結束或網路改變時，它一定會還原；若 Mac 當機，則會在下次啟動時還原。macOS 會要求管理者核准。「健康狀態」的「附近」面板也會顯示 AirDrop 的無線電是否在運作、誰在使用它、你的 AirDrop 可見度，以及（在你要求時）與 Wi-Fi 共用 2.4 GHz 頻段的藍牙裝置。

Wi-Fi 選單會在網路下方列出你的藍牙裝置：按一下即可連接或中斷連接。2.4 GHz 標籤會標出與 Wi-Fi 共用頻段的已連接耳機、鍵盤和滑鼠，並附上切換到已知 5 GHz 網路的捷徑。再下面是 AirDrop，包括它的可見度、正在使用這個連結的項目，以及低延遲暫停。只有在你選擇「顯示藍牙裝置」後才會出現藍牙，所以 macOS 也只會在那時要求取用權限。

## 是他們的問題，還是我的？

Slack、Zoom 或 GitHub 打不開時，問題在於是你的連線還是對方出了問題。Kilobat 會讀取七十多個 Mac 使用者常用服務的公開狀態頁面，包括 AI 供應商（見下方的[AI 代理程式](https://kilobat.app/zh-hant/docs/health#ai-agents-down)）：Zoom、Slack、Microsoft Teams Free、Outlook.com、OneDrive、Google Meet、Gmail、Google Drive、Docs、Calendar 和 Chat、Discord、GoTo Meeting、FaceTime、iMessage、iCloud、App Store、Apple Music 和 Apple TV、Dropbox、Box、Notion、Airtable、Proton、1Password、Figma、Canva、Miro、Linear、Asana、Jira、Confluence、Trello、Grammarly、Claude、ChatGPT、Perplexity、Cursor、GitHub、GitLab、Bitbucket、npm、Docker、Postman、Vercel、Netlify、Supabase、Cloudflare、Tailscale、Epic Games 和 Reddit。它依 bundle ID 對應每個 App，依網域對應每個網站。`kilobat down --list` 會顯示每個頁面以及 Kilobat 讀取的位址。

它只在有理由時才會查詢：當你打開「健康狀態」且自己的線路正常時，查詢前景或正在傳輸資料的 App；當連線檢查指向有狀態頁面的主機或 App 時；當通話在路由器之外卡頓時；以及當有狀態頁面的 App 一直無法建立連線（連續兩次取樣中，連線都在等待伺服器回應），而你的線路正常時，每分鐘查詢一次。接著它會針對每個事件通知你一次，例如「Slack 服務中斷」，並附上一個打開狀態頁面的按鈕。每個頁面的結果保留三分鐘，最多等待五秒。可在「設定」›「監控」›「我使用的服務中斷時通知我」中關閉通知。服務中斷會顯示在「健康狀態」頂端，以及選單和「總覽」中的**服務**一列；這一列只在你使用的服務出問題時才會出現。

Kilobat 只轉述頁面上的內容。只有當服務的頁面回報服務中斷時，它才會說該服務對所有人都無法使用；只有當你自己的線路檢查正常時，才會說「不是你這邊的問題」。頁面顯示正常時，它會說頁面沒有回報任何問題；無法讀取的頁面絕不會被當成服務中斷。有些服務不公開狀態：Webex、公司或學校版 Teams（其狀態只向管理員顯示）、Spotify、Steam、WhatsApp、Telegram 和 Signal。瀏覽器中的通話和網站透過連線檢查來確認，因為 Kilobat 看不到瀏覽器分頁開的是哪個網站。在終端機中，使用 `kilobat down slack`、`kilobat down github.com`，或用 `kilobat down` 查看正在執行的 App；AI 代理程式使用 `service_status`。此功能免費。

### AI 代理程式和模型供應商

很多 AI 狀態頁面分成多個部分，Kilobat 會讀取每個 App 所用的那一部分：Anthropic 的頁面包含 claude.ai、Claude API 和 Claude Code，所以 claude.ai 的服務中斷不會算到 Claude Code 頭上，而點名 Claude Code 的 API 事件則會算。OpenAI 的頁面分為 ChatGPT、Codex 和 API；GitHub 的頁面把 Copilot 獨立列出；Cursor 的頁面包含 IDE 及其 CLI。如果頁面上沒有任何指定的部分，就以整個頁面為準。支援：Claude、Claude Code 和 Claude API；ChatGPT、Codex 和 OpenAI API；GitHub Copilot；Cursor 及其 CLI；來自 Google Cloud 資訊來源的 Gemini Code Assist（用 Google 帳號登入時，Gemini CLI 會用到它）和 Vertex AI；Mistral、Groq、Cohere、Fireworks AI、Together AI、Hugging Face 和 Perplexity；Windsurf、Zed、Warp、Replit、Lovable、Bolt 和 v0。

程式碼代理程式依程序辨識（`claude`、`codex`、`gemini`、`cursor-agent`、`copilot`），任何 App 則依其連線的 API 辨識：一旦連線卡住，Kilobat 會查詢 api.anthropic.com、api.openai.com、api.githubcopilot.com、api.mistral.ai、api.groq.com 以及其他供應商 API 主機的位址，並保留十分鐘。因此，像 Aider 這種使用你所設定之供應商的代理程式，或呼叫 Claude API 的編輯器，也能被辨識出來。當其中之一一直無法連線、而你的線路正常且供應商回報問題時，通知會同時點出兩者：「Claude Code：Anthropic 回報發生服務中斷，不是你的連線問題。」卡在錯誤上的代理程式可以自己查詢：`kilobat down claude-code`、`kilobat down api.openai.com` 或 MCP 工具 `service_status`；`kilobat down claude` 和 `kilobat down openai` 會列出該頁面的每個部分。

由於沒有 Kilobat 能讀取的公開資訊來源，以下服務並未涵蓋：Grok 和 xAI API（其頁面拒絕非瀏覽器的請求）、DeepSeek、OpenRouter、Replicate（其狀態現已併入 Cloudflare 的頁面）、JetBrains AI、Kiro 和 Amazon Q（需登入 AWS），以及 Google AI Studio 中的 Gemini API。Ollama 和 LM Studio 在你的 Mac 上執行。

### 此處遭封鎖，並非故障

狀態頁面顯示綠色但網站仍無法載入，可能意味著目前網路封鎖了它：例如飯店或機場 Wi-Fi、學校或辦公室網路、行動電信業者或國家規定。當連線檢查、`kilobat down` 或持續失敗的 App 出現這類跡象時，Kilobat 會測量並說明，例如：「Slack 看起來在此網路上遭封鎖，並非故障：此處無法解析其名稱，而安全解析器傳回了真實位址。」它會指出網路類型（在「裝置」中標記的家庭網路、行動數據或手機熱點、顯示過登入頁面的公共 Wi-Fi，或一般 Wi-Fi），並僅建議中立選項：其他網路、行動數據或漫遊，或詢問網路管理者。Kilobat 測量封鎖情況；它不會協助繞過封鎖，也絕不會建議繞過的方法。

判定依據及每項檢查所需的對照：

- **DNS 竄改。**此 Mac 的 DNS 表示名稱不存在、沒有回應、傳回公共服務不使用的位址（0.0.0.0、127.0.0.1 或私人位址）、傳回與虛構名稱相同的位址，或將其指向無法為該名稱出示有效憑證的伺服器，而向可信解析器發出的一次 DNS-over-HTTPS 查詢傳回了能夠出示有效憑證的公用位址。能夠出示有效憑證或位於同一位址區塊的不同位址，屬於 CDN 選擇附近伺服器，而非竄改。可信解析器也認為不存在的名稱、對所有名稱都失敗的 DNS、VPN 或公司針對該網域的分離 DNS，以及只有私人網路認識的名稱，絕不計入。
- **安全連線遭中斷。**連線建立後，一旦指定網站，TLS 交握就被重置或沒有回應，兩次均如此；而指定為其他網站時同一伺服器會回應。對任何名稱都不回應的伺服器、第二次嘗試成功或始終無法建立的連線，都屬於一般故障。
- **全部無法連線。**服務的所有位址都無法連線，但可信解析器本身有回應。只有服務狀態頁面未回報問題時才計入，結論會說明頁面尚未回報的故障也會呈現相同現象。
- **封鎖頁面。**一般 HTTP 要求傳回 HTTP 451 或重新導向到服務本身網域之外，可以佐證上述某項結果；單獨出現時證據不足。

Wi-Fi 登入頁面、Kilobat 本身的規則、防護或斷線保護，以及狀態頁面回報的故障，都能更好地解釋連線失敗，因此都不會回報為封鎖。VPN 開啟時，檢查會經過 VPN，結論會註明：封鎖在 VPN 路徑上，不一定在此網路上。

**隱私權。**DNS-over-HTTPS 查詢只發往你的可信解析器：預設為 Cloudflare（1.1.1.1），除非在「設定 › 監控」或使用 `kilobat settings block-check-resolver quad9` 選擇 Quad9（9.9.9.9）；使用其位址，且只在診斷故障時查詢：針對一個失敗名稱只查詢一次。交握發往服務本身的位址，虛構名稱位於 example.com 下。Kilobat 絕不檢查遭封鎖網站列表，也不在背景掃描。

有狀態頁面的 App 持續失敗而頁面未回報故障時，Kilobat 對每項服務和網路最多每小時檢查一次，在「服務」下列出封鎖，並對每項服務、網路每天傳送一次通知；可在「設定 › 監控 › 當服務看起來在此網路上遭封鎖時通知我」或使用 `kilobat settings block-alerts off` 關閉。`kilobat down slack` 對你指定的每項服務建立一次連線，失敗時執行相同檢查；`kilobat why slack.com` 或 `kilobat doctor slack.com` 將它作為一層加入。AI 代理程式透過 `service_status` 和 `diagnose_connection` 的 `block` 欄位取得相同資訊。與狀態頁面一樣，此功能免費。

### 你所在地區無法使用

有些服務以及某些功能（例如歐盟部分地區的 AI 工具）並非到處提供，服務本身會根據你的位址顯示的位置拒絕存取。這不是故障，也不是此網路的封鎖。Kilobat 只有從經過驗證的連線收到服務本身的回應時才會這樣說明：HTTP 451，或曾觀察到的措辭，例如 OpenAI 的 `unsupported_country_region_territory`、claude.ai 的地區頁面、Anthropic API 關於不支援國家、地區或領土的錯誤，以及 Gemini API 的「User location is not supported」。結論例如：「OpenAI 表示其服務在你所在地區無法使用。你的連線目前顯示位於德國」，其中的國家是公網位址註冊的國家（以 `kilobat ip --public` 的方式查詢，包括經過任何 VPN）。當 VPN 或漫遊 eSIM 將出口放在另一個國家，或此 Mac 的時區設為另一個國家時，它會說明。它只陳述事實，絕不會建議繞過地區限制的方法；繞過可能違反服務條款。可選方式是查看服務支援的國家列表並聯絡其支援團隊。透過 `kilobat why api.openai.com --error '…'` 貼上 App 收到的錯誤，或在 `diagnose_connection` 中使用 `error`，即可識別。

## 給業者的報告

連線不佳時，供應商或 IT 服務台需要證據。在「健康狀態」中，報告按鈕會根據 Kilobat 在此網路上過去 24 小時或 7 天的記錄產生報告。內容包括斷網、路由器及其之外的延遲、ping 遺失、與方案比較的速度測試，以及加入失敗網站後的檢查。每條結果說明測量了什麼、在哪裡測量，絕不判斷責任歸屬。可拷貝為文字用於支援聊天，也可儲存或分享為 PDF。報告不包含網路名稱、本機 IP 和硬體位址、裝置名稱或哪些 App 使用了網路。在終端機中執行 `kilobat support-report --host github.com`，或使用 `--html --output report.html` 查看頁面。預設省略網站名稱、URL 及其路徑，包括重新導向中的內容。只有希望報告包含這些名稱時，才勾選*包含網站名稱*，或在 CLI 中傳入 `--include-sites`，或向 MCP `create_support_report` 傳入 `include_site_names: true`。網站檢查的公網 IP 測量仍會保留。

## 斷線補償

很多業者在長時間斷線後應提供補償，有些甚至不必申請就會發放。「歷史記錄」›「斷線補償」會加總本月 Kilobat 能證明問題出在業者那一端的斷線，並與你的業者公布的規定對照。只有在兩台網際網路伺服器和一項 HTTPS 檢查都失敗、而你的路由器仍在回應 Kilobat 的檢查時，或 Starlink 天線將其記錄為 Starlink 網路的問題（沒有衛星、沒有回應）時，斷線才會計入。你自己的路由器或 Wi-Fi 造成的斷線、飯店或咖啡廳 Wi-Fi 登入頁面佔住連線的時間、檢查次數不足而無法判斷的斷線，以及 Mac 睡眠的所有時間，都不計入，並另外顯示。卡片會在規定門檻旁顯示最長斷線和本月合計；當 Kilobat 核實過的規定適用時，也會顯示可能獲得的補償。

選擇你的業者，或按「偵測」：Kilobat 會向 Cloudflare 查詢你的公用位址，向 RIPE NCC 查詢它所屬的網路，然後將該網路與自己的清單比對。輸入你每月的網路費用以便估算。這些規定都內建在 App 中，每條都附有來源和核對日期：適用於 BT、EE、Plusnet、Sky、Virgin Media、Vodafone、TalkTalk 和 Hyperoptic 的 [Ofcom 自動補償](https://www.ofcom.org.uk/phones-and-broadband/service-quality/automatic-compensation-need-know)（報修的故障在兩個完整工作天內未修復時，每天 £10.34）、適用於德國所有業者的 § 58 TKG、西班牙的 Real Decreto 899/2009 和義大利 AGCOM 的補償規定，以及 Xfinity、AT&T Fiber 和 Internet Air、Orange 和 Free 公布的條款。對於 Kilobat 無法核實規定的業者，例如 Spectrum、Verizon、Cox、T-Mobile Home Internet 或 Starlink，卡片會告訴你仍然可以憑同樣的證據申請。

「拷貝申請」會產生一則使用 App 語言的訊息，包含帳號欄位、每次斷線的日期和時長、Kilobat 的測量結果、規定和金額；「打開申請頁面」會帶你前往業者受理申請的頁面，「儲存業者報告」會將測量結果存成 PDF 以便附上。當規定有申請期限時，例如 Xfinity 的 120 天，「提醒我」會在期限前設定一則通知。Kilobat 從不傳送任何內容。它從斷線開始時計算，而業者從你報修時開始計算，並決定哪些符合條件，所以它只會說「可能符合」。打開「設定」›「監控」›「斷線可能符合補償條件時通知我」後，Kilobat 每次斷線只通知一次，每天最多一次。卡片中的估算、申請和通知屬於 Kilobat Pro。在終端機中，`kilobat credit` 會顯示本月情況，`--draft` 會輸出申請，`credit providers` 會列出規定；AI 代理程式可以透過 `get_outage_credit` 讀取。

## 方案檢查

看看你是否得到了付費購買的速度。在「設定」›「網路」›「方案速度」中或速度測試結果下方，輸入這個網路方案的下載速度。之後，「速度」標籤頁會把這個網路過去 30 天的測試與它比較：「你獲得了 500 Mbps 的 61%」、中位數、晚間中位數與其他時段的對比，以及測試結果不到方案一半的頻率。每個網路都有自己的方案，所以咖啡廳的結果不會算進你家裡的方案。使用 Kilobat Pro 時，打開「設定」›「網路」›「方案檢查」，Kilobat 每天最多會進行三次輕量測試，每天的時間都不同，而且一定有一次在晚間尖峰（晚上 7 點到 11 點），這是業者最常變慢的時段。每次檢查透過四條連線使用 25 到 80 MB 流量，以你的方案速度約需兩秒。它會等到沒有進行中的通話、沒有 VPN 承載流量、Mac 的其他流量很少，而且接上電源或電量超過 50% 時才執行，也絕不會在計量網路上執行。業者報告會以這個月的結果開頭：「30 天內 41 次排程檢查：下載中位數 305 Mbps，你付費的方案為 500 Mbps（61%）；晚間 180 Mbps。」在終端機中，`kilobat plan` 會顯示相同內容，AI 代理程式可以透過 `get_plan_check` 取得。

## 服務速度

速度測試測量的是到附近測試伺服器的路徑。你實際下載的服務，例如 GitHub、iCloud、Steam、npm、Docker 或 Hugging Face，位於其他路徑的終點；供應商到其中某個服務的連結可能壅塞，而網際網路其他部分依然很快。Kilobat 測量你本來就在進行的下載：每個 5 MB 或以上的下載，將同一服務的連線合併，依實際傳輸的秒數計算。它根據 App 要求的網站（網路過濾器運作時）、App、反向 DNS 名稱，或位址所屬網路來命名；後者使用 App 內建的 GitHub、Apple、Valve、Dropbox、Akamai、Fastly、Cloudflare、Amazon CloudFront、Google 和 Microsoft 公開位址列表。不產生額外網路流量。影片、音樂和通話依播放速度傳輸，因此從不計入；VPN 承載流量時也不計入。

「速度 › 服務」列出此網路上的每項服務：30 天內的典型速度、最近一次下載及其占線路速度的比例。線路速度取此網路最新速度測試或 Kilobat 在此觀察到的最快下載，兩者中較高者。使用 Kilobat Pro 時，「健康狀態」只在證據明確時提示：過去一天從同一服務下載至少三次，速度低於線路的三分之一；每次下載的同一小時內，另一網站或速度測試至少快三倍；該服務當天大多數下載都很慢；且該服務在你使用的其他網路上並非都很慢。被你自己的其他下載擠占的下載不計入。「今晚供應商到 GitHub 的路徑很慢。3 次 GitHub 下載約為 7 Mbps，而同一小時內其他網站達到 267 Mbps。減速發生在供應商與 GitHub 之間，而不是 Wi-Fi 或此 Mac。」

隨後顯示證據。如果服務的狀態頁面回報問題，結果會說明很可能是服務端問題。否則它會追蹤一次到服務伺服器的路由，指出延遲在哪一跳躍升。歷史記錄足夠時，它會找出速度慢的時段，例如每天晚上 7 點到 11 點——這是尖峰時段兩個網路之間連結壅塞的典型跡象。接下來給出建議：嘗試 VPN 或其他 DNS，以另一條路徑連接服務；聯絡供應商，供應商報告中包含相關部分；或稍後再試。

*測試此服務*會從服務提供的公開下載檔案中最多下載 25 MB，例如 GitHub 發行版、Apple 的 macOS 還原映像檔、npm 或 PyPI 套件，或 Cloudflare 速度測試。只在按下時下載一次，絕不會在計量網路上進行。在終端機中，`kilobat service-speed` 顯示表格和結果，`--test github` 執行測試，`--list` 顯示檔案；AI 代理程式透過 `get_service_speed` 取得歷史記錄。
