Windows 客户端 1.1.1

WireGuard Windows 故障排除:握手失败,以及卡住的终止开关。

这些指南覆盖人们实际报告的故障:握手在 5 秒后重试,Block untunneled traffic(阻止未走隧道的流量)让电脑失去路由,以及更新后 wireguard.exe 被隔离。除非某份报告点名了更旧的构建,步骤都假定客户端为 1.1.1。

更新于 。

导入隧道并激活

  1. 从下载页安装 Windows 客户端 1.1.1。继续之前请核对 MSI 大小。
  2. 打开 WireGuard。如果托盘界面尚未运行,管理器服务会启动它。
  3. 选择 Import tunnel(s) from file(从文件导入隧道)。
  4. 选取一个 .conf 文件,或装有多份配置的 .zip。
  5. 选中隧道并按下 Activate(激活)。
  6. 确认状态显示 Active(已激活),并且对端显示最近一次握手时间以及传输量。

1.1.1 会拒绝该次导入中的重复隧道名。请改名后再试。为什么名称会被拒绝

5 秒后握手没有完成

2021年4月邮件列表上的一份报告,客户端为 0.3.11,在对端公网地址的 ping 仍然正常时出现了这一行。重启隧道几乎每次都能清掉,涉及大约十几台 Windows 机器。

  1. 打开 Log(日志)选项卡,或运行 wireguard /dumplog。
  2. 找到写着握手在 5 秒后没有完成的那一行对端记录。
  3. 放行到达 Endpoint 中主机和端口的 UDP。51820 只是常见示例。
  4. 如果该对端在 NAT 之后,把该对端的 PersistentKeepalive 设为 25。不需要时保持为 0。
  5. 按下 Deactivate(停用),然后再按下 Activate。
  6. 如果装了第三方防火墙,只暂停到足以看出握手是否随后完成,然后再打开它。

隧道中断后互联网停了

当隧道只有一个对端,且该对端的 AllowedIPs 包含 0.0.0.0/0 或 ::/0 时,会打开 Block untunneled traffic。阻断是为了让数据包不要泄到普通连接上。这也意味着隧道断开时会像没有网络。

  1. 打开 WireGuard,检查隧道是否使用 0.0.0.0/0 或 ::/0。
  2. 按下 Deactivate。阻断与该隧道绑定。
  3. 如果想要默认路由,又不想要那些防火墙规则,把 0.0.0.0/0 换成 0.0.0.0/1 和 128.0.0.0/1。
  4. 把 ::/0 换成 ::/1 和 8000::/1。编辑器复选框会切换成这种形式。
  5. 再次按下 Activate。测试一个应留在本地的地址,以及一个应走隧道的地址。

关于这个开关本身的更多说明在Windows 客户端一节。

只在 NAT 之后设置 PersistentKeepalive

  1. 在隧道里修改该对端。
  2. 仅当此对端必须在路径安静后接受新会话,并且它位于 NAT 或有状态防火墙之后时,才添加 PersistentKeepalive = 25。
  3. 其他所有情况把值留为 0。这是项目默认值。
  4. 保存,停用,再激活,让正在运行的服务读到这次修改。

杀毒软件隔离了 wireguard.exe

不要把每一次标记都当成无害,也不要把每一次标记都当成恶意软件的证据。先把文件和已公布的构建对比。

  1. 在文件表上阅读版本和大小。客户端 1.1.1 的 amd64 与 x86 为 3.3 MB,arm64 为 2.9 MB。
  2. 如果大小或版本不符,不要恢复该文件。请删除它。
  3. 如果相符,你遇到的是 2021年5月那类报告:McAfee 在更新后隔离 wireguard.exe,下一次哈希变化时例外失效。
  4. 恢复或允许这个相符的文件,然后在下次更新后再检查例外名单。
  5. 如果服务仍然无法启动,阅读 Log 选项卡或运行 wireguard /dumplog。

无恶意软件说明用直白的话解释了同一条界限。

ping 正常,但 HTTP 不行

2023年12月的一份报告,客户端 0.5.3、系统 Windows 10,称 G Data 支持把这种组合叫做根本性不兼容。ping 通,有时 SMB 也通。HTTP 不通。他们的变通办法是关掉防火墙、连上,然后再启用。他们没有承诺改产品。

  1. 记下你的客户端版本。那份报告是 0.5.3,不是 1.1.1。
  2. ping 隧道内的一台主机。如果 ping 通而浏览器不通,防火墙可能把隧道和 ICMP 区别对待。
  3. 把防火墙先关再开只当作一次短检查。检查结束后让防火墙保持打开。
  4. 如果 1.1.1 仍出现这种分离,在继续改更多设置之前先保存 wireguard /dumplog。

避开常见陷阱的做法

私钥
不要放进电子邮件和截图。管理器把导入内容存为供 Local System(本地系统)使用的 .conf.dpapi。
分流隧道
互联网其余部分应走普通路由时,AllowedIPs 里只列局域网。
不要终止开关的全路由
用 /1 地址对,不要用 /0。编辑器里的复选框就是这样做的。
重装之前
把隧道导出为 zip。DPAPI 加密之后,明文文件会被删除。
预共享密钥
仅当服务器给了你 32 字节秘密时才添加。否则把该字段留空。
脚本
PreUp、PostUp、PreDown 和 PostDown 仅在允许它们的管理员注册表项已设置时运行。
下载 1.1.1 WireGuard illustration