---
title: "VPN 与代理 | Kilobat 文档"
url: "https://kilobat.app/zh-hans/docs/vpn"
description: "你的公网 IP 和 VPN 路由、代理应用、VPN 断网保护和泄漏测试。"
---

# VPN 与代理

你的公网 IP 和 VPN 路由、代理应用、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 可以与代理应用（Clash Verge、ClashX、mihomo、Mihomo Party、FlClash、Surge、sing-box、Stash、V2Ray、Xray、Shadowsocks）和 VPN 一起使用。它只读取信息，从不转发流量，也不更改它们的设置。

- **流量计入正确的应用。**通过本地代理发送流量的应用会计入它自己的流量，转发流量的代理核心或 VPN 隧道则标为“承载其他应用的流量”，不会重复计算。
- **每个应用走了哪条路线。**使用兼容 Clash 的 API（Clash Verge、ClashX、mihomo、Mihomo Party、FlClash、sing-box 的 clash_api）时，应用的那一行会显示它经过的节点，例如“经由 HK-01 · 2 个直连”，提示中会列出每个主机、节点和规则。Kilobat 从该应用自己的配置中读取 API 地址和密钥，并且从不显示密钥。
- **“健康 › 流量出口”中会显示的问题：**

  - 系统代理指向未运行的应用，这会让所有浏览器都无法上网；
  - DNS 或 IPv6 绕过了 VPN；
  - 代理和 VPN 同时在接管流量；
  - 全局模式；
  - 阻止功能看不到系统代理背后的应用。macOS 过滤器永远看不到发往 127.0.0.1 的连接，所以请打开代理的 TUN 模式，或在代理的规则中阻止该应用。
- **为什么连不上？**会增加一个“代理应用”层，显示代理的模式及其当前节点的响应速度，并在问题出在失效节点时指出来。

在终端中：`kilobat proxy`、`kilobat proxy routes --app Telegram`、`kilobat proxy test` 和 `kilobat vpn`。如果 Kilobat 自己找不到某个代理核心，可以传入 `--controller 127.0.0.1:9090 --secret …`。智能体可以通过 `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`。
