為什麼 Claude Code 會出現登入失敗與回應逾時?
對台灣與香港的開發者來說,Claude Code 的使用體驗不只取決於終端機裡輸入了什麼指令,也取決於登入、模型請求、套件下載與 Git 操作是否走在穩定且一致的網路路徑上。很多人第一次安裝後會遇到這些情況:瀏覽器可以開啟 Anthropic 登入頁面,但終端機中的 OAuth 流程一直等待;登入完成後,Claude Code 顯示 ETIMEDOUT、ECONNRESET 或 fetch failed;簡單問題可以得到回覆,讀取專案檔案或執行較長任務時卻突然中斷。
這些現象不一定代表帳號或 API 金鑰有問題。Claude Code 通常會由 Node.js 程式在背景建立 HTTPS 連線,並且可能依序接觸登入服務、API 端點、遙測或更新服務,以及 npm 套件來源。只開啟瀏覽器的系統代理,並不能保證所有終端程式都會自動使用相同代理。如果瀏覽器走代理、Node.js 直連,便會形成「網頁登入成功,但 CLI 無法完成認證」的分裂狀態。
Clash Verge 的作用,是在本機管理設定檔、代理群組、DNS 與分流規則,讓不同網域依照預期選擇直連或代理出口。它本身不提供遠端節點,使用者仍須準備合法且可信的訂閱或設定檔,並遵守所在地法規、公司網路政策與 Anthropic 服務條款。本文的重點不是追求把所有流量都送進代理,而是為 Claude Code 建立可觀察、可切換、方便排錯的開發環境。
先確認版本:Clash Verge 的選單名稱、核心版本與 TUN 權限流程可能隨 2026 年的更新而改變。本文使用「Profiles/代理/設定/連線」等常見名稱說明,實際畫面請以你目前安裝的版本為準。
先準備 Clash Verge 與可用訂閱
開始調整 Claude Code 之前,先把 Clash Verge 的基本代理功能獨立驗證。若連一般 HTTPS 網站都無法穩定開啟,直接修改 Claude Code 的環境變數或 YAML,只會讓問題變得更難定位。建議先確認作業系統時間正確、網路連線正常,並關閉其他可能同時接管流量的 VPN、代理工具或安全軟體網路過濾功能,避免多個虛擬網卡互相搶路由。
- 從可信來源取得適用於 Windows、macOS 或 Linux 的 Clash Verge 安裝檔。若裝置使用 Apple Silicon、Windows on ARM 或一般 Intel/AMD x64,請依架構選擇對應版本。
- 完成安裝並啟動程式,在「Profiles」或「設定檔」頁面貼上你所持有的合法 Clash 訂閱連結,先執行更新,再選取一份設定檔使其生效。
- 進入「代理」頁面,確認策略群組中有可用節點。先使用延遲測試或實際開啟一個測試網站,不要一開始就頻繁切換節點。
- 在「設定」或「General」中確認 HTTP/混合代理埠,例如
7890或畫面實際顯示的其他埠號,並記下 SOCKS 埠與 API 埠是否不同。 - 先開啟「系統代理」測試瀏覽器與支援系統設定的應用程式;若要讓不遵循系統代理的終端與開發工具也被接管,再考慮啟用 TUN 模式。
訂閱匯入成功,不代表所有節點都適合 Claude Code。對互動式程式開發而言,節點的延遲、封包穩定性、長連線保持能力與高峰時段表現往往比一次性的測速數字更重要。建議挑選兩至三個候選節點,分別執行登入、短對話與較長程式碼任務,記錄每次結果,而不是只依賴介面上的毫秒數。
不要公開訂閱連結:訂閱網址通常包含識別資訊或存取權杖。請勿把完整連結、API 金鑰、OAuth 憑證或 Claude Code 的錯誤日誌直接貼到公開論壇;分享日誌前也要先遮蔽帳號、Token 與內網位址。
讓 Claude Code 的終端連線真正進入 Clash
Claude Code 常透過 Node.js 執行。不同版本的 Node、HTTP client 與登入流程,對系統代理的繼承方式可能不同,因此「Clash Verge 已經開啟系統代理」並不能當作終端一定走代理的證明。最穩妥的做法,是先明確指定終端使用的 HTTP 與 HTTPS 代理,再用連線紀錄確認請求確實抵達 Mihomo 核心。
在 macOS 或 Linux 的 shell 中,可以依 Clash Verge 顯示的混合埠設定環境變數:
Shellexport HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export ALL_PROXY=socks5://127.0.0.1:7891
Windows PowerShell 可使用相同概念設定目前工作階段:
PowerShell$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:ALL_PROXY="socks5://127.0.0.1:7891"
上面的埠號只是示例,請替換成 Clash Verge 實際顯示的數值。若公司內部服務、localhost 或本機 OAuth 回呼不應經過代理,可設定 NO_PROXY:
Shellexport NO_PROXY=localhost,127.0.0.1,::1
環境變數的優點是範圍清楚、容易撤銷,也能在執行單一工作前暫時啟用;缺點是某些 Node 套件不會讀取所有變數,或專案內既有設定會覆蓋它們。因此請在 Clash Verge 的「連線」頁面觀察實際結果。執行 Claude Code 或重新進行登入時,如果沒有看到相關 HTTPS 連線,代表程式可能未使用這組代理,應再檢查 shell、IDE 內建終端與系統服務使用的環境是否一致。
系統代理與 TUN 模式該怎麼選?
如果你只在終端機中使用 Claude Code,且 Node.js、Git、npm 都能正確讀取代理環境變數,使用系統代理加環境變數通常較容易理解。這種方式對日常網頁瀏覽的影響較小,遇到問題時也能快速關閉。可是,某些子程序、IDE 外掛、語言伺服器或由其他工具啟動的 Node 行程,可能不會繼承目前 shell 的設定,這時就會出現主程序能通、子程序不通的情況。
TUN 模式是在網路層建立虛擬介面,接管更多不遵循 HTTP/SOCKS 系統設定的流量,對「瀏覽器正常、終端或 IDE 不正常」的場景更有幫助。啟用 TUN 前,請先授予 Clash Verge 所需的系統權限,確認虛擬介面已建立,再逐步測試 DNS、Git 與 Node。不要在尚未理解路由的情況下,同時啟用多個代理軟體或重複的 TUN 介面。
實用原則:先用系統代理與明確的終端環境變數建立可重現結果;只有在子程序、IDE 或其他不支援代理的工具仍無法連線時,再使用 TUN 擴大接管範圍。
Claude Code 的分流與排錯方法
不要只為一個你在瀏覽器中看到的 Anthropic 網頁網域建立規則。Claude Code 的登入、API 請求與更新流程可能使用不同主機,實際網域也可能隨版本、地區與官方服務調整。正確做法是先讓 Claude Code 重現一次錯誤,再在 Clash Verge 的連線紀錄中查看確切主機名稱、命中規則、使用的策略群組與連線結果。以日誌看見的主機為依據,比直接複製網路上過時的完整網域清單更可靠。
在自訂設定檔時,可以將已確認屬於 Claude Code 工作流的網域集中到獨立策略群組,讓它與一般瀏覽流量分開觀察。概念上可使用較精準的 DOMAIN 或 DOMAIN-SUFFIX 規則,再將 npm、GitHub 或其他開發服務分別管理;不建議使用過寬的關鍵字規則,例如把所有包含某個品牌名稱的網域都送往同一出口,因為這可能誤傷無關服務,也會增加排查難度。
規則順序同樣重要。若在 Claude 相關規則之前已經存在寬泛的 GEOIP、MATCH 或其他直連規則,請求可能早已被攔截並以 DIRECT 結束。修改後要重新載入設定檔,並在連線紀錄確認新的命中規則;只編輯檔案而沒有讓核心重新載入,通常不會立即生效。
- 登入頁面能開啟、CLI 顯示逾時:比較瀏覽器與終端的連線紀錄,確認 Node 程式使用的主機是否命中與瀏覽器相同的預期策略。
- 登入成功、送出提示後無回應:檢查 API 相關連線是否被另一條規則判定為直連,並固定一個穩定節點測試,避免策略組在長請求期間切換出口。
- 回應途中斷線:先排除節點抖動、Wi-Fi 不穩與 TUN 路由衝突,再查看 Clash 日誌是否出現 TLS、reset 或 timeout 訊息。
- npm 安裝或更新失敗:將套件來源、GitHub Release 或其他實際出現於連線列表的網域分開測試,不要因為 Claude Code 主請求成功,就假設套件下載鏈路也一定正常。
- 只在 IDE 裡失敗:確認 IDE 是否使用獨立的整合終端、內建 Node 或自己的代理設定;必要時在同一個 IDE 終端中重新設定環境變數並重啟相關工作階段。
排錯時最好一次只改一個變數。例如先固定節點,再確認代理埠;接著測試終端環境變數,最後才修改規則或切換 TUN。每次變更後記錄時間、錯誤訊息與命中策略,這樣可以分辨是認證失敗、DNS 問題、節點品質不佳,還是 Claude Code 本身的版本行為。若直接把節點、DNS、TUN、規則順序與環境變數一次全部改掉,即使問題消失,也很難知道真正有效的是哪一項。
建立適合台港開發者的穩定工作流程
對台灣與香港的日常開發環境,建議將「工作用代理」與「一般瀏覽」分開思考。平時可以保留一個延遲較低的日常策略群組,再建立一個供 Claude Code、Git、npm 等開發服務使用的獨立群組。當某個節點在晚間尖峰時段變慢時,只需切換開發群組,不必讓整台電腦的所有應用程式一起改道。
節點選擇不要只看地理距離。台港使用者常會在台灣、香港、日本或其他鄰近地區節點之間比較,但實際體驗還會受到上游頻寬、國際路由、DNS、TLS 握手與服務端負載影響。可以在不同時段使用相同的 Claude Code 提示與相同專案,觀察首字延遲、完整回應時間、連續任務是否中斷,以及 Git/npm 是否同時穩定。這種小型 AB 測試比單次 speed test 更接近真實工作。
此外,請把設定檔視為可維護的開發資產。為修改前的 YAML 保留備份,為自訂規則加入清楚的分組名稱,並在更新訂閱後重新確認規則是否仍存在。若訂閱服務會覆蓋自訂設定,應把本地覆寫內容放在獨立的 Merge 或 Override 檔案中,避免每次更新都手工重做。Claude Code 的使用環境通常還包含 Git、npm、Docker、SSH 與 IDE,任何一項被錯誤代理都可能讓你誤以為是模型服務故障。
最後,安全性不能被穩定性取代。不要在公用電腦儲存 API 金鑰,不要把整個專案的機密檔案無差別交給 AI 工具,也不要為了測試而關閉作業系統防火牆與憑證驗證。當你需要 Claude Code 讀取程式碼時,先確認專案中的環境檔、私鑰、客戶資料與內部網址是否已被排除;當錯誤日誌包含請求標頭或 Token 時,分享前務必完整遮蔽。
相比之下,部分同類代理工具雖然介面更簡化,卻可能缺少清楚的連線紀錄、設定檔覆寫與 TUN 排錯入口;只靠瀏覽器擴充功能的方案又往往無法涵蓋 Claude Code、Git 和 npm 這類終端工作流,遇到登入成功但 API 逾時時很難找到原因。Clash Verge 的優勢在於能把訂閱管理、策略群組、系統代理、TUN 與連線觀測集中在同一個控制台,方便台港使用者依本文流程逐項驗證,而不是反覆猜測哪個工具正在接管流量;如果你想建立一套可切換、可記錄、較適合 AI 程式開發的代理環境,不妨前往下載合適的 Clash 客戶端,再從匯入訂閱與確認代理埠開始測試。