為什麼 Copilot 的流量攔得到
要攔下 GitHub Copilot 的流量,第一個要回答的問題不是「用哪個工具」,而是「它的流量憑什麼攔得到」。關鍵在於它執行在哪裡:Copilot 在 Visual Studio Code 裡以擴充功能的形式運作,而 VS Code 本身是一套 Electron 應用程式。
Electron 官方文件把這個框架定義為「使用 JavaScript、HTML 與 CSS 打造桌面應用程式」的方案,真正重要的是它把 Chromium 與 Node.js 一起嵌進執行檔。這代表每一套 Electron 應用程式都自帶一份 Chromium 引擎,它的網路請求走的正是 Chromium 的網路堆疊,與 Google Chrome 瀏覽器無異。
VS Code 的官方網路文件把這層關係講得更明白:VS Code 的代理伺服器支援與 Google Chromium 完全相同,會自動套用系統的網路與代理設定。也就是說,Copilot 每次在編輯器裡給出建議時所發出的請求,並非走什麼私有通道,而是走 Chromium 標準的網路路徑。GitHub 官方也把 Copilot 描述為幫助開發者在 IDE 中邊打字邊取得程式碼建議的 AI 助理——這些與後端模型互動而產生的建議,本身就會產生網路請求。
這也解釋了為什麼同一套攔截手法可以搬到其他工具:凡是基於 Electron 的桌面 AI 應用,都共用同一個 Chromium 網路堆疊,把流量導向本機代理、再處理憑證信任的做法因此具備共通性。

mitmproxy 如何變成中間人
知道流量攔得到之後,下一個問題是怎麼攔。開源工具 mitmproxy 是常見的選擇,它自述為一套具備 SSL/TLS 能力的互動式攔截代理,支援 HTTP/1、HTTP/2 與 WebSockets,並提供終端機、網頁(mitmweb)與命令列(mitmdump)三種介面。
它名稱裡的 MITM 指的就是 Man-In-The-Middle(中間人)。官方對運作原理的說明很直白:對客戶端偽裝成伺服器、對伺服器偽裝成客戶端,自己坐在中間解碼雙向流量。但 HTTPS 之所以「理論上不透明」,正是因為 TLS 加密與憑證信任機制——客戶端只信任由合法憑證機構(CA)簽發的憑證,憑證對不上就會拒絕連線。
mitmproxy 的解法是讓自己變成一台受信任的憑證機構:它內建完整的 CA 實作,會即時產生攔截憑證;但這些憑證只有在被手動加入裝置的信任鏈之後,應用程式才會接受。換句話說,攔截能否成立,完全取決於你是否願意在自己的機器上信任這張 CA 憑證——這是一個刻意需要人為介入的步驟,避免它被悄悄濫用。
把 VS Code 指向 mitmproxy 的設定步驟
實際把 Copilot 的流量導向 mitmproxy,核心是三件事:讓代理跑起來、讓機器信任它的憑證、讓 VS Code 走這條代理。
第一步是啟動 mitmproxy。第一次執行時它會產生自己的 CA 憑證,這張憑證接著要安裝到作業系統的信任鏈裡——macOS 可加入鑰匙圈、Windows 加入根憑證存放區、Linux 則要寫入系統憑證庫。沒有這一步,後面所有攔截出來的連線都會被判定為不信任而失敗。
第二步是把 VS Code 指向代理。因為 VS Code 繼承 Chromium 的代理行為,你可以在設定裡填入 http.proxy 指向本機的 mitmproxy 位址(例如 http://localhost:8080)。官方文件特別提醒,http.proxy、http.proxyStrictSSL 與 http.proxyAuthorization 這幾個設定只在擴充功能與命令列兩種情境下受尊重——而 Copilot 正是擴充功能,恰好在這條路徑上。若遇到憑證驗證錯誤,多半是因為 Chromium 會拒絕它不信任的憑證,正解是把 mitmproxy 的 CA 加入系統信任鏈,而不是關掉憑證檢查。
第三步是觀察。設定完成後,Copilot 在編輯器裡觸發的補全與對話,會以解密後的請求與回應出現在 mitmproxy 的介面裡,可以在 mitmweb 逐筆檢視標頭、內文與時間序。

攔截之後能看見什麼,又在哪裡停下來
攔截成功之後,你能看見的是 Copilot 與後端之間「這一段」解密後的流量:請求的網址、標頭、送出的內容,以及模型回傳的回應。對想搞清楚「AI 助理到底把什麼送出去」的人來說,這正是最有價值的視角——它把原本被 TLS 包住、看不見的互動,變成可逐筆檢視的紀錄。
但這個視角有明確的邊界。首先,它只覆蓋進出你這台機器的流量,看不到後端伺服器內部如何處理、儲存或與其他資料關聯。其次,若應用程式對特定連線啟用憑證綁定(certificate pinning),也就是堅持只信任某張預先寫死的憑證、無視系統信任鏈,那麼這類連線就攔不下來——Copilot 是否對所有連線都走系統信任鏈,需要實際驗證,不能預設。最後,信任一張本機 CA 等於讓這台機器上所有走這條信任鏈的連線都可能被解密,用完應把憑證移除,把風險限縮在需要的期間。
對隱私與選擇的意義
從更高的角度看,自己攔截 AI 助理的流量,本質是把「它送出什麼」這件事從黑箱變成可觀察,見〈Claude Opus 5 提示詞外流〉。多數人天天使用 AI 編程工具,卻很少能親眼確認它在背景送出了哪些請求、帶了多少程式碼脈絡;mitmproxy 這類工具提供了一個任何人都能在自己機器上操作的方法,把這層不對稱稍微扳回來一點,見〈tl;dv 會議暴露〉。
這並不是要否定這些工具的價值,而是讓選擇更有依據。當你能實際看到流量,對「哪些工具在什麼時機傳送資料、傳送多少」的判斷,就不再只依賴廠商的隱私聲明,而能有一定程度的親自查證。對在意資料流向的開發者與團隊來說,這是一項值得認識的基本功——尤其當越來越多 AI 能力直接住進編輯器、終端機與作業系統時。





