OpenAI Codex CLI 在台港怎麼用?Clash Verge 連線設定

使用 OpenAI Codex CLI 時,如果終端機出現登入卡住、API 逾時或連線忽快忽慢,可以透過 Clash Verge 整理代理設定。本文涵蓋訂閱匯入、TUN 模式、規則分流與節點挑選,讓初學者也能完成穩定的 Codex CLI 使用環境。

先確認 Codex CLI 與 Clash Verge 的分工

OpenAI Codex CLI 是在終端機中使用 AI 輔助程式開發的命令列工具,可以協助閱讀專案、解釋程式碼、提出修改方案,並在使用者確認後執行部分檔案操作或指令。Clash Verge 則是圖形化代理用戶端,負責匯入訂閱、啟動 mihomo 核心、套用分流規則,以及在本機提供 HTTP、SOCKS 或 mixed 代理連接埠。兩者不是同一類軟體:Codex CLI 負責發出網路請求,Clash Verge 負責替它轉送符合規則的流量。

在台灣或香港使用 Codex CLI 時,實際體驗通常取決於四個環節:帳號與登入狀態是否有效、終端機是否讀取代理環境變數、Clash Verge 的節點與規則是否正常,以及 DNS、TLS 或 IPv6 路徑是否穩定。瀏覽器能正常開啟網頁,不代表命令列工具一定會使用相同的代理;瀏覽器內建的代理擴充功能,也不會自動套用到 Terminal、PowerShell 或其他開發工具。

元件 主要工作 常見檢查位置
Codex CLI 登入、提交請求、接收模型回應與執行互動流程 終端機輸出、環境變數、工具版本
Clash Verge 代理轉送、規則比對、節點選擇與連線日誌 Profiles、Proxies、Logs、Settings
mihomo 核心 監聽本機連接埠、建立出站連線、執行 DNS 與規則 核心日誌、設定檔、控制連接埠
作業系統終端機 將 HTTP(S) 或 SOCKS 代理設定傳給 CLI 程式 PowerShell、Shell、環境變數

在 Clash Verge 匯入訂閱並確認核心

第一次設定時,建議先讓 Clash Verge 只完成「可以啟動核心並代理一般 HTTPS 流量」這個目標,不要一開始就同時開啟 TUN、複雜 DNS 覆寫、腳本與大量規則集。設定越少,越容易知道問題是在訂閱、節點、系統代理,還是 Codex CLI 本身。

  1. 開啟 Clash Verge,進入設定檔或 Profiles 頁面,選擇從 URL 匯入。
  2. 貼上服務提供者給你的 Clash、Clash Meta 或 mihomo 格式訂閱網址。
  3. 完成下載後,確認設定檔能通過 YAML 與核心欄位檢查,再將它設為目前使用的設定。
  4. 進入代理頁面,先選擇一個延遲穩定的節點或策略組,不要只依據一次測速結果判斷。
  5. 在 Clash Verge 的設定頁確認 mixed port。常見值是 7890,但實際值必須以畫面顯示為準。
  6. 先開啟系統代理,再用瀏覽器或命令列測試一般 HTTPS 網站;確認成功後才測試 Codex CLI。

不同版本的 Clash Verge 或 Clash Verge Rev,選單名稱可能略有差異。你可能看到「Profiles」「Proxies」「Settings」「General」或中文翻譯後的「設定檔」「代理」「設定」。不要把控制介面連接埠當作網頁代理連接埠。前者通常是 9090,用於客戶端管理核心;後者通常是 7890 或其他 mixed port,才是終端機應使用的代理入口。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

allow-lan: false 適合單機使用,可避免區域網路內其他裝置直接連入本機代理。若你把 allow-lan 開啟,必須同時理解區域網路暴露、密碼與防火牆的風險。Codex CLI 通常只需要本機回環位址 127.0.0.1,不需要讓區域網路存取代理。

讓終端機使用 Clash Verge 的代理

Clash Verge 顯示已連線,不代表每個命令列程式都會自動走代理。最穩定的做法,是在目前終端機工作階段明確設定 HTTP_PROXYHTTPS_PROXYALL_PROXY。HTTP(S) 代理通常使用 http://127.0.0.1:7890;SOCKS5 代理則常見為 socks5://127.0.0.1:7891,但必須依 Clash Verge 實際開啟的連接埠調整。

macOS 與 Linux 設定方式

在 Bash、Zsh 或其他相容 Shell 中,可先於目前視窗設定環境變數。這種方式只影響目前終端機,適合測試,不會改動所有應用程式的全域設定。

export 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

curl -I https://api.openai.com/

如果測試後確定需要長期使用,可以把設定放進 ~/.zshrc~/.bashrc,再重新開啟終端機。工作機與個人機的需求不同,建議不要在共用帳號或受管理裝置上無條件寫入全域設定。若公司網路有自己的安全代理,應先確認 Clash 與公司代理的使用規範,避免形成多層代理或繞過管理政策。

Windows PowerShell 設定方式

PowerShell 可以使用 $env: 語法設定目前視窗的環境變數。完成測試後,關閉視窗即可清除這些暫時設定。

$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"

curl.exe -I https://api.openai.com/

Windows 內建的 curl 在 PowerShell 中可能會被別名行為影響,因此排查時使用 curl.exe 會比較明確。若命令回傳 HTTP 回應,代表 DNS、TCP、TLS 與代理轉送至少已經走到服務端;若顯示無法連接 127.0.0.1:7890,應回到 Clash Verge 確認核心是否啟動、連接埠是否一致,以及是否有其他程式占用該連接埠。

確認 Codex CLI 是否讀取代理

不同版本的 CLI、執行環境與底層 HTTP 函式庫,對代理環境變數的支援細節可能不同。不要只假設「已設定變數」就一定生效。可先觀察 Clash Verge 的連線日誌,再執行 Codex CLI 的登入或簡單查詢流程。如果日誌中完全沒有對應請求,問題可能是 CLI 不讀取該變數、使用了不同的代理設定,或請求在本機驗證階段就已中止。

為 Codex CLI 建立合適的分流規則

如果只是讓 Codex CLI 通過 Clash Verge 連線,最簡單的方式是先使用系統代理與目前策略組,不必立刻新增規則。當你希望開發工具的請求固定走某個策略、而一般台灣或香港網站維持直連時,才需要在設定檔中加入更明確的分流規則。

規則通常依序由上而下比對,越具體的網域規則應放在較前面。OpenAI 相關主網域、API 網域、登入頁面與認證流程可能使用不同主機名稱;實際以當前版本的網路日誌、官方說明與登入時產生的連線為準,不應只憑一份過時網域清單。對於未知的第三方遙測、套件下載或文件資源,也不要為了「全部代理」而盲目新增廣泛規則。

rules:
  - DOMAIN-SUFFIX,openai.com,AI
  - DOMAIN-SUFFIX,oaistatic.com,AI
  - DOMAIN-SUFFIX,oaiusercontent.com,AI
  - GEOIP,PRIVATE,DIRECT
  - MATCH,DIRECT

上面只是展示分流結構的範例,AI 必須替換為你設定檔中實際存在的策略組名稱,例如「節點選擇」或某個自動選擇群組。若策略組不存在,核心會在驗證設定或執行規則時回報錯誤。你也可以把最後的 MATCH 設為另一個通用代理群組,但應先理解這會影響所有沒有被前面規則命中的流量。

做法 優點 可能問題 適用情境
全部依系統代理 設定最少,容易排查 其他流量也可能使用同一節點 首次測試與臨時使用
指定 OpenAI 網域 流量邊界較清楚 新網域或登入服務變更時需檢查 日常開發與需要穩定分流
全部流量代理 不容易因漏規則而直連 本地服務、套件鏡像與區域網站可能變慢 短時間排查網路問題

台灣與香港常見連線問題排查

台灣與香港的網路供應商、辦公室防火牆、IPv6 配置與 DNS 行為不完全相同。即使同一個訂閱在家用寬頻正常,換到公司網路、校園網路或手機熱點,也可能出現逾時、TLS 中斷或登入回呼失敗。排查時應記錄「使用哪個網路、哪個節點、哪個終端機、哪個時間」,不要只寫「不能用」。

timeout 與 connection reset

timeout 通常表示在 DNS、TCP、TLS 或資料傳輸其中一個階段等待過久;connection reset 則表示連線被本地網路、中間設備或遠端服務主動中止。先在 Clash Verge 中切換另一個節點,再觀察相同請求是否恢復。若所有節點都失敗,應檢查本機代理連接埠、DNS 與防火牆;若只有單一節點失敗,問題較可能出在節點伺服器或其上游線路。

DNS 與 IPv6 造成的差異

終端機可能使用作業系統解析器,而 Clash 核心則可能使用自己的 DNS 設定。兩者得到不同 IP 時,會出現瀏覽器與 CLI 結果不一致。可先在 Clash Verge 的 DNS 設定中使用清楚、可追蹤的解析策略,並觀察核心日誌。若目前網路的 IPv6 路徑不穩定,可暫時測試關閉 IPv6 優先或改用能正常處理 IPv4 的節點;這是排查手段,不代表所有環境都應永久停用 IPv6。

登入回呼與本機連接埠

部分 CLI 登入流程會在本機開啟暫時 HTTP 連接埠,等待瀏覽器完成授權後回呼終端機。這類回呼通常是本機 localhost127.0.0.1,不應被代理轉送到遠端節點。若你設定了全域代理,可以加入本機繞過環境變數,或在 Clash 的設定中保留私有網段與回環位址直連。

export NO_PROXY=localhost,127.0.0.1,::1
export no_proxy=localhost,127.0.0.1,::1

Windows PowerShell 可使用以下形式:

$env:NO_PROXY="localhost,127.0.0.1,::1"
$env:no_proxy="localhost,127.0.0.1,::1"

若登入瀏覽器已完成,但終端機仍停在等待回呼,請確認沒有同時啟動兩個 Codex CLI 登入流程,也沒有被防毒軟體或系統防火牆阻擋暫時連接埠。完成登入後,可關閉舊終端機並重新開啟一個只保留必要環境變數的視窗,避免殘留錯誤代理參數。

安全使用與穩定化設定

Codex CLI 可能讀取專案檔案、執行命令或提出檔案修改建議,因此網路通了之後仍要處理權限與資料邊界。不要在含有生產環境密鑰、客戶資料、私有憑證或未提交機密的目錄中直接進行高權限操作。對每次檔案修改與命令執行先閱讀差異,尤其是會刪除檔案、修改依賴、變更部署設定或上傳資料的命令。

建議採用由簡到繁的驗證順序:先確認 Clash Verge 核心啟動,再確認本機代理連接埠,接著用 curl 測試 HTTPS,然後設定 Codex CLI 的代理環境變數,最後才加入 OpenAI 網域分流與 TUN。每一步只改一個變數,並記錄結果。這樣即使出現錯誤,也能迅速回到上一個已知正常的設定。

FlClash 下載入口 查看各平台用戶端