Colitu VPN
指南

Windows 版 VPN:系统代理、TUN 模式与断网保护

系统代理与 TUN 模式的区别、为什么需要断网保护,以及如何确认 Windows 的所有流量都通过了 VPN。

在 Windows 上,VPN 应用可以通过两种不同的方式重定向流量,而选择哪一种决定了哪些程序真正受到保护。下面以 Colitu for Windows 10 和 11 为例,介绍其工作原理。

系统代理模式

在此模式下,应用会启动一个本地代理服务器,并将其注册到 Windows 设置中。浏览器和大多数遵循系统代理的程序会通过它发送流量。

  • 优点: 轻量,对速度几乎没有影响。
  • 缺点: 自行建立连接的程序(许多游戏、Torrent 客户端、一些即时通讯软件和工具)会跳过代理,直接连接。

TUN 模式

在这里,应用会创建一个虚拟网络适配器。Windows 会把 所有 IP 流量送入其中,由应用决定如何处理。游戏、UDP 和 DNS 查询都会通过隧道。

  • 优点: 每个程序都在覆盖范围内,包括那些忽略代理的程序。有一个按设计存在的例外:部分地区性网站(内置列表中的域名和 IP 段)会在 VPN 之外直接访问,以便拒绝外国 IP 地址的服务能继续正常使用(详情)。
  • 缺点: Windows 在首次使用时可能会要求确认;在非常老旧的硬件上负载略高。

规则很简单:如果开启 VPN 后某个程序仍然显示你的真实地址或国家,请开启 TUN。

断网保护

如果 VPN 连接意外断开,Windows 会悄悄地继续直接发送流量。断网保护 (kill switch) 可以防止这种情况:开启后,隧道之外的出站连接会被阻止。

Colitu 的断网保护建立在 Windows 筛选平台(Windows Filtering Platform) 之上,与官方 WireGuard 客户端使用的机制相同。规则由一个独立的 Windows 服务(ColituKillSwitch)作为持久筛选器持有,因此如果应用或 VPN 内核崩溃,网络会保持被阻断,直到 Colitu 重新连接。正常的 Windows 重启或关机会有意解除阻断,除非同时开启了“自动连接”和“随 Windows 启动”,这种情况下阻断会持续到 Colitu 重新连接为止;点击“断开连接”同样会解除阻断。只允许应用本身、VPN 内核、本地网络和 DHCP 通过。它默认开启。它在 TUN 模式和系统代理模式下均有效;在代理模式下,不使用代理的应用在你连接期间无法上网。如果缺少该服务,应用会提醒你,并回退到较旧的应用内断网保护,但它在崩溃后不会保持。

安装与验证

  1. 从 Colitu for Windows 页面下载安装程序。
  2. 如果 SmartScreen 对未知发布者发出警告,请先将文件的 SHA-256 与页面上的值进行比对。在 PowerShell 中:Get-FileHash .\ColituVPN-Setup-*-x64.exe -Algorithm SHA256。
  3. 运行安装程序,登录,然后点击“连接”。

应用会自行安装更新,但前提是更新清单的签名(ECDSA P-256)和文件校验和都匹配。

如何确认它在正常工作

  1. 在不开启 VPN 的情况下打开我的 IP 是什么,记下地址。
  2. 连接后刷新:地址和国家应当发生变化,页面还会告诉你该地址属于一台 Colitu 服务器。
  3. 对于浏览器之外的程序,请开启 TUN 并再次检查。

私密日志

VPN 内核会记录有关 DNS 查询和连接的日志行。Colitu for Windows 从不保留这些日志行,并会对其余错误信息中的主机名和地址进行掩码处理。因此,即使你把日志发送给客服,也不会发送你的浏览历史。

应用的代码是开源的:github.com/colitu/windows。