---
title: "VPN 與代理伺服器 | Kilobat 說明文件"
url: "https://kilobat.app/zh-hant/docs/vpn"
description: "你的公開 IP 和 VPN 路由、代理 App、VPN 斷網保護和洩漏測試。"
---

# VPN 與代理伺服器

你的公開 IP 和 VPN 路由、代理 App、VPN 斷網保護和洩漏測試。

## VPN 與公用 IP

「健康狀態」›「流量從哪裡出去」、Wi-Fi 選單和 `kilobat ip` 會顯示預設路由使用的介面，以及那是不是 VPN，資訊來自這台 Mac 的路由表和 macOS 列為已連線的 VPN。VPN 已連線但預設路由仍在 Wi-Fi 上時（例如沒有設定出口節點的 Tailscale），會顯示為「分流」：只有部分目的地會經過它。打開「設定」›「網路」›「查詢公用 IP」，就能看到網站看到的位址：在網路變化時及每 30 分鐘向 Cloudflare 查詢一次，並以 Kilobat 內建的 DB-IP 資料顯示它註冊的國家。這個功能預設關閉，因為 Cloudflare 會看到這個請求；`kilobat ip --public` 則只查詢一次。註冊國家不等於你或伺服器所在的地方，而且無論是它還是 VPN，都無法證明連線是私密或匿名的。「設定」›「選單列」›「VPN」會在蝙蝠旁顯示「開啟」、「分流」或「關閉」（開啟查詢時附國碼），「歷史記錄」也會列出 VPN 何時開啟或關閉，以及公用 IP 何時改變。

## 代理伺服器和 VPN

Kilobat 可以和代理 App（Clash Verge、ClashX、mihomo、Mihomo Party、FlClash、Surge、sing-box、Stash、V2Ray、Xray、Shadowsocks）及 VPN 一起使用。它只讀取資訊，絕不轉送流量，也不更改它們的設定。

- **流量算在正確的 App 上。**透過本機代理伺服器傳送流量的 App 會計入它自己的流量，轉送流量的代理核心或 VPN 通道則標為「承載其他 App 的流量」，不會重複計算。
- **每個 App 走了哪條路線。**使用相容 Clash 的 API（Clash Verge、ClashX、mihomo、Mihomo Party、FlClash、sing-box 的 clash_api）時，App 的那一列會顯示它經過的節點，例如「透過 HK-01 · 2 個直接連線」，提示中會列出每個主機、節點和規則。Kilobat 會從該 App 自己的設定讀取 API 位址和密鑰，而且絕不顯示密鑰。
- **「健康狀態」›「流量從哪裡出去」中的問題：**

  - 系統代理伺服器指向沒有在執行的 App，這會讓所有瀏覽器都無法上網；
  - DNS 或 IPv6 繞過了 VPN；
  - 代理伺服器和 VPN 同時在接管流量；
  - 全域模式；
  - 阻擋功能看不到系統代理伺服器後方的 App。macOS 過濾器永遠看不到連到 127.0.0.1 的連線，所以請打開代理伺服器的 TUN 模式，或在代理伺服器的規則中阻擋該 App。
- **為什麼連不上？**會加入「代理 App」這一層，顯示代理伺服器的模式及其目前節點的回應速度，並在問題出在失效節點時告訴你。

在終端機中：`kilobat proxy`、`kilobat proxy routes --app Telegram`、`kilobat proxy test` 和 `kilobat vpn`。如果 Kilobat 自己找不到某個代理核心，請傳入 `--controller 127.0.0.1:9090 --secret …`。AI 代理程式可以透過 `get_proxy_status`、`test_proxy_nodes` 和 `check_vpn` 取得相同資訊。

## VPN 斷網保護

使用 Pro 並開啟網路過濾器後，在「設定」›「網路」中開啟*VPN 斷網保護*。如果 VPN 中斷，Kilobat 會阻擋新連線，直到它恢復，這段期間不會有任何內容經由咖啡廳或飯店的 Wi-Fi 送出。彈出式視窗和儀表板會顯示*已阻擋：VPN 已中斷*，選單列中的蝙蝠會加上一把鎖，通知中也會提供*允許 5 分鐘*。

- **VPN 連線後就會啟動。**斷網保護會等到 VPN 在 Mac 開機後第一次承載所有流量，所以沒有 VPN 時開啟它也絕不會讓你斷網。此後直到重新啟動，只要 VPN 中斷，它在任何網路上都會阻擋，因為加入新網路的那一刻正是 App 最容易洩漏的時候。只承載部分目的地的分流 VPN 也視為中斷。
- **仍可連線的有：**VPN App 及其輔助程式和網路延伸功能（WireGuard、Tailscale、Mullvad、NordVPN、Proton VPN、ExpressVPN、Surfshark、Cisco Secure Client、GlobalProtect、OpenVPN Connect、Tunnelblick 等，以及 macOS 中有設定的任何 VPN App）、Apple 的網路服務（DNS、DHCP、憑證檢查、網路登入視窗、內建 VPN）、Kilobat，以及區域網路（除非你將它關閉）。其他一切都要等待，不論其規則或設定檔為何，「不受限」也不例外。
- **暫時放行。**橫幅、通知或選單列右鍵選單中的*允許 5 分鐘*會放行所有流量，方便打開網路登入頁面或快速檢查一下；之後如果 VPN 仍然中斷，會重新阻擋。*關閉*就在它旁邊，「設定」中也有。

它做不到的事：過濾器只能看到新連線，所以 VPN 中斷時已開啟的連線會繼續，不過大多會隨所用的通道一起中斷。DNS 查詢仍會送出，以便 VPN 找到它的伺服器。如果 Kilobat 結束，過濾器會保持最後收到的狀態，VPN 的通道介面消失時仍會阻擋；打開 Kilobat 即可允許流量或關閉斷網保護。在終端機中：`kilobat settings kill-switch on`，`kilobat vpn` 或 `kilobat conditions` 會顯示它的狀態；代理程式透過 `check_vpn` 和 `get_conditions` 讀取狀態，`set_kill_switch` 會先詢問你。

## VPN 洩漏測試

在 VPN 開啟時，按一下「健康狀態」›「流量從哪裡出去」或「設定」›「網路」中的*檢查洩漏*。大約十秒內，Kilobat 會檢查流量繞過 VPN 的三種途徑，逐項顯示通過或失敗，並附上修正的設定；如果 Kilobat 認得你的 VPN App（Mullvad、NordVPN、Proton VPN、ExpressVPN、Tailscale、WireGuard），會使用該 App 中的名稱；對於 Cisco、GlobalProtect 等工作用 VPN，會告訴你該向 IT 部門詢問什麼。

- **DNS。**macOS 用於一般查詢的解析器，以及到每個解析器的路由：如果某個解析器經由 Wi-Fi 或乙太網路而不是通道到達，你查詢的每個名稱都會洩漏。Kilobat 也會透過 bash.ws 查詢幾個虛構的名稱，bash.ws 會回報發出查詢的解析器；既不屬於你的 VPN、也不屬於 Cloudflare 或 Google 等公共 DNS 服務的解析器，很可能屬於你的網路業者。
- **IPv6。**如果 VPN 只承載 IPv4，而 Mac 有經由 Wi-Fi 的 IPv6 路由，IPv6 網站就會收到你的真實位址。Kilobat 會向 api6.ipify.org 查詢你的 IPv6 位址，顯示這些網站看到的內容，並指出 VPN 設定，或如何為該網路關閉 IPv6（「系統設定」›「網路」›「Wi-Fi」›「詳細資訊」›「TCP/IP」›「設定 IPv6」›「僅限本地連結」）。
- **UDP 和 WebRTC。**瀏覽器的 WebRTC 會從每個網路介面送出 UDP。Kilobat 會經由 VPN 送出一個 STUN 要求（送往 Google 或 Cloudflare 的伺服器），再直接從 Wi-Fi 或乙太網路送出一個：如果第二個收到回應，或第一個的回傳位址與 VPN 的出口不同，網頁就可能得知你的真實位址。修正方式是 VPN 的斷網保護或鎖定選項。Kilobat 無法執行瀏覽器的 WebRTC，所以也會說明如何讓瀏覽器不分享本機位址：Safari 會隱藏它們；Firefox 關閉 `media.peerconnection.enabled`；Brave 使用其 WebRTC IP 處理政策；Chrome 使用 Google 的 WebRTC Network Limiter 擴充功能。

洩漏測試是免費的。它不會更改任何設定，被詢問的服務看到你的位址，就像任何網站一樣。測試通過只代表這台 Mac 在那一刻的情況，並不代表每個 App。在終端機中：`kilobat vpn leaks`（有洩漏時以 1 結束，`--json` 供指令碼使用）；代理程式使用 `check_vpn_leaks`。
