Skip to content
Intermediate / 2 min read

在 Windows 上设置 ChangeMyIP WireGuard:全隧道和拆分隧道路由

Windows 上的 WireGuard 通过单个隧道将每个应用程序路由到 ChangeMyIP 出口。本指南导入配置,验证新的公共 IP、DNS 和 IPv6 路径,并说明何时基于目的地的拆分路由是更好的选择。

Windows WireGuard 隐私/匿名性

概述

ChangeMyIP 在其 HTTP、HTTPS、SOCKS5、Shadowsocks 和 Trojan 端点之外还提供 WireGuard。在 Windows 上,WireGuard 作为后台服务运行,因此一旦隧道激活,每个应用程序都会通过 ChangeMyIP 出口离开,而不是通过您的家庭连接。当您不想为每个程序配置代理时,这是在 Windows 上更改 IP 地址的最简单方法。

您将:

  1. 根据您的 ChangeMyIP 连接详细信息构建 WireGuard 隧道。
  2. 确认握手、新的公共 IP 和 DNS 解析。
  3. 在全隧道路由和基于目的地的拆分路由之间进行选择。
  4. 诊断导致大多数配置损坏的故障。

您需要什么

  • 具有管理员权限的 Windows 10 或 Windows 11。
  • 包含 WireGuard 访问权限的 ChangeMyIP 套餐,以及其连接详细信息:端点主机和 UDP 端口、服务器公钥、您的私钥、分配的隧道地址和 DNS 值。
  • 来自 WireGuard 下载页面 的 Windows 官方 WireGuard 客户端。
  • 用于验证的任何公共 IP 回显服务(下面的示例使用了一个;任何等效服务都可以)。

全隧道还是拆分隧道?

模式 AllowedIPs Windows 的作用 典型用途
全隧道 0.0.0.0/0, ::/0 通过 ChangeMyIP 发送每个 IPv4 和 IPv6 数据包 为所有应用更改 IP;从另一个国家/地区查看网站
按目的地拆分 特定范围,例如 203.0.113.0/24 仅隧道传输发往这些范围的流量 通过代理访问一个服务或子网,而其他所有内容保持本地
按应用程序 WireGuard 中不可用 按目标 IP 路由,从不按进程 将 ChangeMyIP SOCKS5 或 HTTP 端点与 Proxifier 等每应用路由器一起使用

WireGuard 根据目标 IP 地址而不是程序来决定隧道传输的内容。如果您需要“只有这个浏览器通过代理”,那么代理配置才是正确的工具,而不是 WireGuard 接口。

基线:记录您当前的 IP 和 DNS

# 隧道前的公共 IP
curl.exe -s https://ifconfig.co/ip

# 当前使用的 DNS 服务器
Get-DnsClientServerAddress -AddressFamily IPv4 |
  Where-Object { $_.ServerAddresses } |
  Select-Object InterfaceAlias, ServerAddresses

保留这两个输出。您需要一个已知的之前值,以便在隧道启动后进行对比。

步骤

1. 收集 ChangeMyIP WireGuard 值

登录您的 ChangeMyIP 账户并找到 WireGuard 连接详细信息。WireGuard 配置与这些字段一一对应:

  • Interface > PrivateKey — 分配给您的设备的私钥
  • Interface > Address — 您的设备的隧道地址,通常为 /32
  • Interface > DNS — 在隧道内使用的解析器
  • Peer > PublicKey — ChangeMyIP 服务器公钥
  • Peer > Endpoint — 主机名或 IP 地址加上 UDP 端口
  • Peer > AllowedIPs — 对于全隧道,为 0.0.0.0/0, ::/0

如果 ChangeMyIP 提供可下载的 .conf 文件,您可以在步骤 3 中直接导入。无论如何,打开它一次以确认 DNS 和 AllowedIPs 行。

2. 为 Windows 安装 WireGuard

  1. 从官方 WireGuard 网站下载安装程序。
  2. 以管理员身份运行并完成向导。
  3. 确认后台服务正在运行:
Get-Service -Name 'WireGuardManager' |
  Select-Object Name, Status, StartType

如果您的版本中不存在该服务名称,请打开 services.msc 并查找名称以 WireGuard 开头的服务。

3. 创建隧道

如果您收到了配置文件,请选择 从文件导入隧道 并继续执行步骤 4。否则,将您的值粘贴到新隧道中:

[Interface]
PrivateKey = <client-private-key-from-changemyip>
Address = 10.7.0.2/32
DNS = <dns-server-from-your-changemyip-config>

[Peer]
PublicKey = <changemyip-server-public-key>
Endpoint = <endpoint-host-or-ip>:<udp-port>
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
  1. 打开 WireGuard 并选择 添加隧道 > 添加空隧道。
  2. 以出口位置命名,例如 changemyip-de-frankfurt,以便以后切换城市时一目了然。
  3. 将每个 <placeholder> 替换为您自己的值。不要添加引号、逗号或尾随分号。
  4. 保存隧道。

Address 值是您在加密链接内部的地址,而不是网站将看到的 IP。公共 IP 是 ChangeMyIP 端点的 IP。

4. 激活并确认握手

  1. 选择隧道并点击 激活。
  2. 观察状态行:它应在几秒钟内从 等待握手 变为新的握手时间戳。
  3. 可选:从终端验证。wg.exe 工具随 Windows 客户端一起提供:
& 'C:\Program Files\WireGuard\wg.exe' show

查找 latest handshake 行。非零的 transfer 计数器确认流量双向流动。如果 wg.exe 不在您的安装目录中,请依赖 WireGuard 窗口中显示的状态。

5. 验证新的公共 IP

curl.exe -s https://ifconfig.co/ip

然后确认以下三项:

  • 该值与您之前记录的基线不同。
  • IP 查询服务报告的国家/地区与您导入的端点匹配。
  • 在全新的隐私窗口中,浏览器报告相同的地址。普通窗口可能会重用缓存的地理位置和过时的 DNS 结果。

6. 检查 DNS 和 IPv6

  1. 比较激活前后的解析器:
Get-DnsClientServerAddress -AddressFamily IPv4 |
  Where-Object { $_.ServerAddresses } |
  Select-Object InterfaceAlias, ServerAddresses
  1. 如果您的配置中 DNS 行为空,查找仍会转到您的 ISP 解析器。即使隧道已启动,这实际上也是 DNS 泄漏。添加 ChangeMyIP 提供的 DNS 值并重新激活。
  2. 在浏览器中运行 IPv6 连接测试。如果 AllowedIPs 中只有 0.0.0.0/0,则隧道会将 IPv6 流量留在隧道外。添加 ::/0 或在活动适配器上禁用 IPv6。
  3. 运行 WebRTC 泄漏测试。如果它显示了您的 ISP 地址,请在该浏览器中禁用 WebRTC,或使用默认情况下不暴露本地候选地址的浏览器。

7. 可选:按目的地拆分隧道

  1. 停用隧道。
  2. 编辑对等端 AllowedIPs 行,将其缩减为您想要隧道传输的范围,例如 198.51.100.0/24, 203.0.113.10/32。
  3. 仅当您也希望这些查找通过隧道进行时,才保留 DNS 行。否则将其删除,让系统解析器处理所有内容。
  4. 重新激活,然后重新检查公共 IP。普通浏览会保留您的原始地址,而对所列范围的请求则使用 ChangeMyIP 出口。

8. 切换出口位置

您导入的每个 ChangeMyIP 端点都会成为一个单独的隧道。为每个城市保存一个配置,然后停用当前隧道并激活另一个。公共 IP 随端点变化,这使其成为比较页面在不同国家/地区行为的最快方法。

故障排除

  • 状态永远不会离开 等待握手。 UDP 通常被阻止,这在企业、校园和酒店网络中很常见。检查 Windows 防火墙中是否有 WireGuard 规则,向 ChangeMyIP 请求不同的端点或端口,如果 UDP 被完全阻止,请切换到 ChangeMyIP 的基于 TCP 的选项之一,例如其 HTTP、HTTPS 或 SOCKS5 端点。
  • 握手成功但页面无法加载。 检查 AllowedIPs 是否包含 0.0.0.0/0, ::/0,是否存在 DNS 值,以及 MTU 是否合理。在具有异常封装网络中,将 MTU = 1280 添加到 [Interface] 部分并重新激活。
  • 公共 IP 未更改。 隧道可能实际上未激活,测试页面可能已缓存,或者机器上的第二个 VPN 或代理客户端覆盖了路由。在新的终端中使用 curl.exe 进行测试。
  • IP 更改了,但网站仍显示您的本国。 网站使用的是缓存的地理位置、浏览器语言或账户设置,而不是您的地址。在清除缓存的隐私窗口中进行测试。
  • 隧道断开时一切停止。 使用全隧道配置时,Windows 除了隧道之外没有其他出路,因此握手失败看起来完全像互联网中断。这是更安全的故障模式;停用隧道以恢复正常连接。
  • 频繁出现 CAPTCHA 或封锁。 出口地址是共享的,可能已被标记。导入不同城市的配置,或在任务需要更干净 IP 时使用 ChangeMyIP 住宅端点。
  • 吞吐量慢。 尝试另一个离您更近的端点,降低 MTU,并在归咎于提供商之前比较 Wi-Fi 和以太网。

总结

  • Windows 上的 WireGuard 在系统范围内路由流量,因此它会同时更改每个应用程序的 IP。
  • 将 ChangeMyIP 连接详细信息导入或粘贴到命名隧道中,然后在测试其他任何内容之前确认握手。
  • 始终验证公共 IP、DNS 解析器和 IPv6 路径。已连接状态并不能证明没有泄漏。
  • WireGuard 按目标 IP 而不是按应用程序进行拆分。当您需要进程级控制时,请将 ChangeMyIP 的 SOCKS5 或 HTTP 端点与每应用路由器一起使用。
  • 为每个城市保留一个已保存的隧道,以便您无需重新配置任何内容即可切换出口位置。