如何判讀 SNSCDN 網路檢查結果:PASS、FAIL 與 SKIP
SNSCDN 的 netcheck 工具可協助找出單次檢查中最早出現異常的環節。它不是測速工具,也不會驗證訂閱、用戶端設定或所有地區的可用性。
下載或複製公開工具儲存庫後,請先進入儲存庫根目錄。在 macOS 或 Linux 執行:
bash bin/netcheck.sh example.com 443
在 Windows PowerShell 執行:
.\bin\netcheck.ps1 example.com 443
請將 example.com 替換為需要檢查的公開主機名稱。不要使用訂閱網址、包含權杖的 URL、管理介面網址、私有 IP 位址或其他非公開位址。
工具不會將檢查結果上傳至 SNSCDN,但仍會進行一般 DNS 查詢並連線至指定目標。DNS 解析服務與目標伺服器可能看到一般的查詢或連線中繼資料。
先確認執行的是哪一個版本
| 行為 | macOS / Linux | Windows PowerShell |
|---|---|---|
| DNS | 使用系統中可用的解析工具 | 使用 .NET DNS 解析 |
| TCP | 系統已安裝 nc 時才執行 | 執行,逾時時間約為 5 秒 |
| TLS | 僅在連接埠為 443 且已安裝 OpenSSL 時顯示獨立結果 | 沒有獨立的 TLS 結果 |
| HTTP | curl 傳送一般 GET 要求;2xx/3xx 顯示 PASS | Invoke-WebRequest 傳送 HEAD 要求 |
| SKIP | 缺少必要工具或不符合 TLS 檢查條件時可能出現 | 目前不會顯示 SKIP |
部分服務不接受 HEAD 要求,因此 Windows 版本可能回報 403、405 或一般性 HTTP 失敗,但瀏覽器使用 GET 仍可開啟頁面。這項差異本身不能證明網站已離線。
依照輸出順序由上而下判讀
DNS lookup failed
本次解析未取得目標主機名稱的 IP 位址。請先確認主機名稱拼寫正確,再保持其他條件不變,分別使用 Wi-Fi 與行動網路測試。
若只有一個網路失敗,應優先檢查該網路或其 DNS 解析路徑;若多個網路都失敗,再檢查網域的公開 DNS 解析狀態。單憑這一行不能證明伺服器已離線。
TCP port ... is unreachable
裝置未能在限定時間內連上目標連接埠。原因可能位於本機防火牆、目前使用的網路、路由、連接埠政策或遠端服務。
後續 HTTP 檢查也可能因此失敗,所以應先處理最早出現的 TCP 錯誤,不要將每一個失敗項目視為彼此無關的問題。
TLS certificate received
這只表示 Bash 指令碼透過 TLS 連線收到 OpenSSL 可以解析的憑證資料。這項檢查不會完整驗證憑證信任鏈、主機名稱是否相符、有效期間或瀏覽器是否接受,因此不能將這一行解讀為「憑證完全有效」。
若瀏覽器仍顯示憑證警告,請另外檢查裝置時間、主機名稱、憑證有效期間與信任鏈。不要忽略憑證警告,也不要以關閉憑證驗證作為處理方式。
TLS handshake or certificate check failed
Bash 指令碼未取得可供 OpenSSL 解析的憑證資料。主機名稱、網路中介設備、TLS 設定或遠端服務都可能造成這項結果;不能只憑這一行判定憑證已過期。
Windows 版本沒有獨立的 TLS 結果,相關例外通常會顯示在後面的 HTTP request failed: ... 中。
明確的 HTTP 4xx 或 HTTP 5xx
只有工具收到明確的 HTTP 狀態碼時,才能確認已取得 HTTP 回應。4xx 通常表示要求遭到拒絕或不符合端點要求;5xx 表示伺服器端未能正常處理要求。兩者都不等於「網路完全不通」。
Bash 版本會將 2xx/3xx 顯示為 PASS,並將其他明確狀態碼顯示為 FAIL。它不會自動跟隨重新導向,因此 [PASS] HTTP 301 或 302 只表示收到重新導向回應,不能證明重新導向後的目標可用。
Windows 版本使用 HEAD 要求,並可能將非成功狀態放在例外訊息摘要中。
一般性的 HTTP request failed
這項結果不能證明要求已到達 HTTP 服務。DNS、TCP、TLS、逾時、連線中斷、服務拒絕 HEAD 要求或非成功狀態,都可能產生一般性失敗。
PowerShell 版本應先查看同一行中的例外訊息摘要。Bash 版本不會顯示 curl 的錯誤摘要,因此應回頭查看上方最早出現的 DNS、TCP 或 TLS 結果。
[SKIP] 與最後一行 [PASS]
[SKIP] 表示該項檢查沒有執行,不表示檢查已通過。
Bash 指令碼只會統計 [FAIL]。即使上方出現一個或多個 [SKIP],最後仍可能顯示 [PASS] No blocking problem detected。因此必須查看所有項目,不能只閱讀最後一行摘要。Windows 版本目前不會輸出 SKIP。
即使所有可執行項目都顯示 PASS,也只代表本次檢查沒有發現阻斷性問題。工具不會測量頻寬、不會驗證用戶端設定,也不能證明其他網路、地區、路由、時間或線路都保持穩定。
如需進一步檢查帳戶、訂閱、用戶端或路由問題,請繼續閱讀連線故障與支援工單指南。
安全整理支援工單資訊
建議只提供:
- 裝置作業系統與版本;
- 網路類型,例如家用 Wi-Fi 或行動網路;
- 測試日期、時間與時區;
- 使用的公開主機名稱與連接埠;
- 各項檢查的
[PASS]、[FAIL],以及 Bash 版本可能出現的[SKIP]; - 同一時間由瀏覽器或用戶端顯示的簡短錯誤。
分享前請移除解析出的 IP 位址、完整 URL、憑證詳細資料、帳戶電子郵件地址、訂單資訊、訂閱網址、QR 碼、存取權杖及其他認證資訊。
PowerShell 的例外訊息摘要也可能包含 URL 或內部資訊,分享前必須先檢查並遮蔽。不要將完整診斷記錄貼到公開 Issue、論壇或群組聊天室;帳戶、訂單與訂閱問題,應先登入,再透過支援工單系統提交。