先判斷問題發生在哪一層
ChatGPT 顯示「無法連線」、頁面一直轉圈、登入後立即逾時,未必代表節點本身失效。從瀏覽器送出請求到 ChatGPT 完成載入,中間至少會經過本機網路、DNS 解析、Clash 入站、規則比對、代理節點與遠端服務等環節。只要其中一層沒有按照預期工作,瀏覽器最後看到的都可能是相同的逾時畫面。
排查前先記錄目前的環境:使用的是公司網路、校園網路、公共 Wi-Fi、家用寬頻還是手機熱點;使用 FlClash、Clash Verge Rev、Clash for Windows、ClashX 或其他客戶端;核心是經典 Clash 還是 mihomo;以及目前採用系統代理、TUN 或兩者同時啟用。這些資訊有助於區分「流量沒有進入 Clash」與「流量進入後由錯誤規則或節點處理」兩種完全不同的問題。
| 表現 | 較可能的原因 | 優先檢查位置 |
|---|---|---|
| 所有網站都無法開啟 | 核心未啟動、代理連接埠錯誤或系統代理指向舊連接埠 | 核心狀態、mixed-port、系統代理 |
| 一般網站正常,ChatGPT 逾時 | 規則未命中、相關網域走直連或節點不適用 | 連線記錄、策略組、網域規則 |
| ChatGPT 首頁能開,登入或對話失敗 | API、驗證、靜態資源或 WebSocket 流量未使用同一策略 | 請求網域、規則命中結果、DNS |
| 只有公司或校園網路失敗 | 網路防火牆、代理限制、TLS 檢查或 UDP 不可用 | 切換手機熱點比較,並檢查 TUN 與節點協定 |
| 啟用 TUN 後才無法連線 | 路由、DNS 劫持、虛擬網卡或系統權限設定不完整 | TUN 狀態、DNS 模式、核心日誌 |
確認核心、節點與本機代理是否正常
首先在客戶端的「設定」「一般」或「核心」頁面確認 mihomo 正在執行。客戶端視窗能夠開啟,不代表核心已經成功啟動;若核心啟動失敗、設定檔解析錯誤,或監聽連接埠被其他程式占用,瀏覽器即使設定了代理,也只會收到連線遭拒或逾時。
常見的本機代理設定如下,但實際值必須以目前設定檔為準:
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
mixed-port 是提供 HTTP 與 SOCKS 混合代理的入站連接埠,external-controller 則是客戶端用來控制核心的介面。兩者用途不同,不能把 9090 填入瀏覽器的代理欄位,也不能因為控制介面能開啟,就直接判定代理轉送一定正常。
檢查節點健康狀態
在策略組中先選擇一個明確可用的節點,不要一開始就使用「自動選擇」或多層巢狀策略組。對選定節點執行延遲測試,觀察是否出現 timeout、connection refused、TLS 錯誤或長時間沒有回應。延遲測試成功只代表探測網址可以建立連線,不代表 ChatGPT 所需的所有網域都能順利使用;仍要配合實際連線記錄判斷。
如果所有節點同時失敗,先不要逐一修改節點參數。確認訂閱是否已更新、系統時間是否正確,以及目前網路是否限制代理協定。若只有某個節點失敗,可能是伺服器過載、憑證失效、端口被封鎖或該節點的傳輸方式不適合目前網路。
- 先測試一個 TCP 類型的節點,再測試 Hysteria2 或 TUIC 等依賴 UDP 的節點。
- 確認節點的伺服器名稱、連接埠、UUID、密碼、TLS 與傳輸參數沒有被訂閱轉換器改寫。
- 若公共 Wi-Fi 對 UDP 或非標準連接埠有限制,優先比較 TCP 節點的結果。
- 不要同時啟用兩個 Clash 客戶端,否則可能出現連接埠衝突與代理環回。
確認系統代理指向目前核心
若採用系統代理模式,請檢查作業系統的 HTTP、HTTPS 或 SOCKS 代理是否指向 127.0.0.1 與目前的 mixed-port。舊版客戶端可能曾使用 7890,新版設定卻改成 7897;此時 FlClash 顯示核心正常,但瀏覽器仍連往沒有程式監聽的舊連接埠。
也要確認瀏覽器本身沒有覆寫系統代理。部分瀏覽器擴充功能、企業管理政策或安全軟體會使用獨立代理設定。測試時可以先停用其他代理擴充功能,關閉客戶端內的「代理自動切換」,只保留一條清晰的流量路徑。
檢查 ChatGPT 相關規則是否命中正確策略
在 mode: rule 下,mihomo 會按照 rules 的排列順序由上而下比對。若 ChatGPT 的網域在前面被 GEOIP,CN,DIRECT、某個自訂直連規則,或錯誤的代理組攔截,後面新增的網域規則不會再生效。這也是「節點測試正常,但 ChatGPT 一直逾時」最常見的原因之一。
不要只檢查首頁網域。載入頁面時,瀏覽器可能同時請求主站、登入服務、靜態資源、驗證服務、對話 API 與 WebSocket。不同版本的網站請求網域可能變動,因此應以連線記錄中實際出現的主機名稱為準,再判斷每一筆請求的策略、狀態與錯誤訊息。
| 觀察項目 | 正常方向 | 異常訊號 |
|---|---|---|
| 請求是否出現在 Clash 連線頁 | 能看到網域、入站與出站資訊 | 完全沒有記錄,可能是瀏覽器未使用系統代理 |
| 規則命中結果 | 相關請求使用預期的代理策略 | 被 DIRECT、REJECT 或錯誤策略組處理 |
| DNS 結果 | 取得可連線的地址並完成握手 | 解析逾時、地址異常或反覆切換失敗 |
| 連線狀態 | 請求完成,WebSocket 保持連線 | TCP reset、TLS handshake timeout 或 connection closed |
若需要加入自訂規則,應將較精確的網域規則放在廣泛的 GEOIP、MATCH 或兜底規則之前。規則寫法必須符合目前核心與設定格式,修改前先備份 YAML。示意如下,實際策略組名稱請替換成設定中已存在的名稱:
rules:
- DOMAIN-SUFFIX,openai.com,ChatGPT
- DOMAIN-SUFFIX,chatgpt.com,ChatGPT
- DOMAIN-SUFFIX,oaistatic.com,ChatGPT
- MATCH,Final
動手操作:逐項定位逾時來源
以下流程適合 FlClash、Clash Verge Rev 與其他採用 mihomo 的桌面客戶端。每完成一個步驟就重新測試一次,避免同時改動節點、DNS、規則與 TUN,導致最後無法知道真正有效的修正。
- 關閉其他代理程式:退出 Clash for Windows 舊版本、VPN 軟體、瀏覽器代理擴充功能與系統級加速工具,只保留一個 Clash 客戶端。
- 確認核心狀態:在客戶端確認 mihomo 已啟動,查看日誌是否有 YAML 解析錯誤、端口占用或核心反覆重啟。
- 固定單一節點:在「代理」或「策略」頁面選一個延遲測試成功的節點,暫時不要使用自動測速組。
- 確認流量進入 Clash:開啟連線記錄後重新整理 ChatGPT。若完全沒有相關請求,檢查瀏覽器與系統代理;若有請求,記錄它們的規則與出站策略。
- 檢查命中結果:若請求被 DIRECT 或 REJECT,檢查規則順序與規則集更新狀態;若命中預期代理但握手失敗,改測另一個節點。
- 切換網路比較:用手機熱點測試同一節點與同一設定。熱點可用、公司網路不可用,通常指向區域網路的防火牆、DNS 或代理限制。
- 最後才調整 DNS 或 TUN:先保存目前設定,再一次只修改一個選項,重新啟動核心後觀察結果。
桌面系統也可以先用命令確認本機代理是否真的在監聽。以下只檢查本機連接埠,不會暴露訂閱內容:
curl -I --proxy http://127.0.0.1:7890 https://chatgpt.com
curl -I --proxy http://127.0.0.1:7890 https://openai.com
如果命令回報無法連接 127.0.0.1:7890,優先修正核心或端口,不要先修改遠端 DNS。若能建立代理連線但回傳 TLS 或逾時錯誤,再回到節點、規則與網路環境繼續排查。公司或校園網路若要求先通過瀏覽器登入認證頁,也要先完成 captive portal 登入,否則任何代理測試都可能受到限制。
處理 DNS、TUN 與瀏覽器快取
DNS 回應異常時的檢查方向
DNS 問題常見表現是主頁偶爾能開、登入頁載入不完整,或不同重新整理結果指向不同地址。若啟用 mihomo 的 DNS 接管,請確認 dns.enable、監聽位址、fake-ip 或 redir-host 模式,以及系統網卡是否真的使用該 DNS。系統代理只處理應用程式主動送出的代理請求,未必能接管所有 DNS 查詢;TUN 模式則可能改變整台裝置的解析路徑。
測試時可暫時使用較簡單的 DNS 配置,避免同時啟用多組 nameserver-policy、遠端規則與複雜的 fake-ip 過濾清單。若只在 fake-ip 模式下失敗,可以比較 redir-host 模式;若切換後恢復,應檢查 fake-ip-filter 是否排除了必要網域,以及瀏覽器或系統是否快取了舊解析結果。
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
nameserver:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
以上只是結構示例,不是所有網路環境的通用答案。公司政策可能禁止外部 DNS,某些公共 Wi-Fi 也會攔截 DNS over HTTPS。若採用加密 DNS 後反而完全無法解析,應依網路管理規範選擇可用解析器,而不是不斷增加伺服器地址。
TUN 模式與系統代理的取捨
瀏覽器通常支援 HTTP 或 SOCKS 系統代理,因此可先用系統代理驗證 ChatGPT 連線。TUN 適合接管不遵循系統代理的命令列程式、遊戲或其他應用程式,但它也會引入虛擬網卡、路由表、DNS 劫持與系統權限等額外變數。若啟用 TUN 後出現所有網站變慢、區域網路失效或核心流量重複轉送,先停用自動路由或 TUN,確認基本代理恢復後再逐項開啟。
- 確保只有一個軟體負責建立 TUN 虛擬網卡。
- 檢查客戶端是否已取得管理員或系統網路權限。
- 不要讓系統代理與另一個 VPN 同時接管相同流量。
- 若只有瀏覽器需要代理,優先採用系統代理,降低排查複雜度。
- 測試完成後關閉不必要的「允許區域網路連線」,避免擴大本機代理的暴露範圍。
清除快取並重新登入
規則或 DNS 已修正但頁面仍然卡住時,可以先關閉 ChatGPT 分頁,清除該網站的 Cookie、快取與 Service Worker,再重新開啟瀏覽器。不要一開始就刪除整個瀏覽器設定;先使用無痕視窗測試,能快速區分網路問題與登入狀態、擴充功能、快取資料造成的問題。
仍然無法連線時的處理順序
如果完成上述檢查後仍無法使用,請將問題拆成「本機代理」「節點出口」「網路政策」三個方向。先用同一台裝置、同一個客戶端與手機熱點測試;再用同一個網路換另一個節點;最後使用不含敏感權杖的日誌,查看失敗發生在 DNS、TCP、TLS 還是 HTTP 層。這比反覆重新匯入訂閱更容易得到可靠結論。
| 測試結果 | 下一步 |
|---|---|
| 手機熱點與家用網路都失敗 | 檢查核心版本、規則、訂閱內容與節點本身 |
| 手機熱點成功,公司網路失敗 | 檢查公司代理、TLS 檢查、DNS 政策與 UDP 限制 |
| 只有某個節點失敗 | 更換節點並檢查該節點協定與伺服器參數 |
| 連線頁完全沒有請求 | 檢查瀏覽器是否使用系統代理,或是否被獨立代理設定覆寫 |
| 請求有記錄但規則為 DIRECT | 調整規則順序,確認規則集已成功載入 |
| 請求命中代理但 TLS 逾時 | 測試其他節點、傳輸協定與 DNS,並查看核心日誌 |
最後,請避免公開分享完整訂閱 URL、控制介面密鑰、節點密碼、Cookie 或帶有身分權杖的截圖。若需要提交錯誤資訊,保留時間、錯誤類型、核心版本、客戶端名稱與已遮蔽的網域即可。通常只要先確認流量是否進入 Clash,再檢查規則命中與 DNS,便能把「ChatGPT 連不上」從模糊的網頁錯誤縮小為可處理的具體設定問題。