本文目錄
ChatGPT 或 Claude 的首頁能開啟,登入或傳送訊息卻失敗時,重試首頁無法解答問題。應把失敗操作的狀態碼與 Clash 記錄對照,區分未進入代理、出口錯誤,以及請求已到服務但遭拒絕。測試時固定節點,再分別檢查登入工作階段與持續回覆,避免出口變化干擾判斷。
超時、403 和回覆中斷分別代表什麼?
記錄錯誤原文、發生時間與剛才的操作,分別確認是登入失敗、頁面元件空白,還是回覆中斷。不要把幾種現象都記成「連不上」,它們可能來自不同請求。
錯誤提示與檢查方向
| 看到的現象 | 優先判斷 |
|---|---|
| 頁面框架出現,圖示、按鈕或登入元件空白 | 靜態資源網域可能走了不同規則或出口 |
| ERR_CONNECTION_TIMED_OUT / 請求超時 | 網路路徑、節點或長連線失敗 |
| 401 / Unauthorized | 登入狀態、令牌或 API 認證資訊 |
| 403 / Access Denied | 服務策略、帳號狀態或請求被拒絕 |
| 429 / Too Many Requests | 頻率或額度限制,不是節點延遲 |
| 500 / 502 / 503 | 伺服器端或上游臨時異常,先看官方狀態 |
| 回覆寫到一半停止 | 串流連線、節點切換或網路抖動 |
頁面框架出現、內容卻未載入時,查看指令碼、圖片和登入元件的請求,這些資源可能來自不同的靜態資源網域。登入跳轉、檔案上傳與模型串流回覆也會另外發出請求。在 Connections 中逐項核對資源與模型請求是否使用同一穩定出口,不要拿另一個網頁代替測試。
固定節點,觀察失敗請求的出口
建立可復現的測試
在 Proxies 固定一條節點
暫時不要使用 url-test 或 fallback,避免測試過程中出口變化。
保持 Rule 模式
開啟 Connections,準備觀察失敗動作對應的網域與規則。
只重複一個動作
例如按一下登入、傳送同一句短訊息,或上傳同一個小檔案。
儲存頁面狀態和 Clash 結果
記下 HTTP 狀態、連線出口、耗時與日誌錯誤。
如果失敗動作在 Connections 中完全找不到,瀏覽器或桌面應用可能沒有經過目前 Clash。若記錄出現但命中 DIRECT,檢查規則;已經走到固定節點卻 timeout,才值得換節點或網路做對照。
登入循環:檢查瀏覽器會話與認證請求
登入循環常表現為輸入帳號後又回到登入頁,或者驗證碼完成卻沒有進入對話。此時先在同一瀏覽器的無痕視窗重試,排除過期會話和擴展干擾;不要一上來清掉所有網站資料,那會同時退出其他帳號。
觀察按一下登入後的請求:認證跳轉若沒有進入 Clash,處理瀏覽器代理;請求進入後回傳 401 或 403,則網路已經到達服務,繼續檢查帳號、登入方式和服務提示。頻繁換地區或出口還可能讓一次登入跨越多個會話環境,測試期間應保持固定節點。
403 Access Denied:帳號、地區與服務限制
明確的 403 或 Access Denied 通常說明請求已到達網站,但被拒絕。檢查頁面原因、帳號狀態、地區限制、服務支援範圍,以及目前出口是否符合服務條款。這類拒絕與 DNS 逾時、連接埠未開放的原因不同。
Global 模式最多用於判斷某條規則是否把請求送錯了出口,不能把伺服器端拒絕變成網路成功。若 Rule 和 Global 都在同一固定節點上回傳同一個 403,應停止調整 Clash,轉而處理帳號或服務政策。
長回覆中斷時,比較節點與接入網路
模型回覆會持續返回資料,節點完成一次延遲探測,不代表它能穩定維持幾十秒的連線。測試時將策略群組改為 select(手動選擇),固定一條節點,用可重複的長提問觀察中斷時 Connections 的結束原因。
同一固定節點在家庭網路和手機熱點上各試一次。若只在其中一個網路中斷,重點檢查這個網路和 DNS;若兩個網路都在相近位置中斷,換另一條協議或節點對照。不要用一次成功就下結論,至少重複兩三次相同請求。
網頁正常但桌面應用或 API 無法存取
瀏覽器通常遵循 Windows 或 macOS 系統代理,終端中的 curl、SDK 和部分桌面應用程式可能使用自己的網路設定。同一 API 請求在 Connections 中沒有新紀錄時,先確認應用程式是否使用目前代理,而不是立即換節點。
命令列工具可以按自身文件設定 HTTP_PROXY、HTTPS_PROXY;需要統一接管多個不讀取系統代理的應用時,再考慮 TUN。API 回傳 401 代表請求已經到伺服器端,應該核對 API key 和請求格式,而不是繼續擴大代理範圍。
CLASH_PORT=7890
export HTTP_PROXY="http://127.0.0.1:${CLASH_PORT}"
export HTTPS_PROXY="http://127.0.0.1:${CLASH_PORT}"
export NO_PROXY="localhost,127.0.0.1,::1"
curl -I https://example.com$CLASH_PORT = 7890
$env:HTTP_PROXY = "http://127.0.0.1:$CLASH_PORT"
$env:HTTPS_PROXY = "http://127.0.0.1:$CLASH_PORT"
$env:NO_PROXY = "localhost,127.0.0.1,::1"
curl.exe -I https://example.com訊息完整返回後,恢復自動節點選擇
回到固定節點和 Rule 模式,完成一次登入並傳送一條短訊息;原問題是長回覆中斷時,也要重複同一長請求。Connections 應能看到相關請求,頁面不再回傳原來的錯誤,回覆也能完整結束。
短訊息與原本失敗的請求都能完整回傳後,再恢復 url-test 或 fallback。若自動群組恢復後問題重現,就有明確的對照:帳號和規則沒有變化,變化的是出口選擇。
