自从 LUG VPN 部署了 IPv6,在不修改配置的情况下,Windows 用户就一直无法使用。现在我们解决了 OpenVPN 的两个 bug,编译了科大 LUG 版 OpenVPN,以 “University of Science and Technology of China” 的代码签名发布。

请大家从以下链接下载 OpenVPN Installer,关闭 OpenVPN GUI(如果已经打开),按照提示安装。使用方法不变,配置文件也无需修改。

修复的两个 bug 是:

  1. 当网卡名称中有非 ASCII 字符时,netsh 命令编码错误,明明是 ANSI 字符串,MultiByteToWideChar 时却当成了 UTF8 字符串。
  2. 删除 IPv6 地址时,没有加 store=active 选项,与添加 IPv6 地址不对称,会找不到欲删除的 IPv6 地址。

还做了一处改进:当 netsh 命令执行失败时,不要报错退出而是发出警告。比如上述第一个 bug,如果不报错退出的话,就仅仅是 IPv6 不能用,IPv4 VPN 仍然能用。但现在这个 bug 的后果是 VPN 完全无法连接。

有人也许会问,学校的 OpenVPN IPv6 没问题啊?这是因为学校用的是 tap 模式(桥接),而我们为了与 Android、iOS 等设备兼容,用的是 tun 模式(IP 转发)。tun 模式的 IPv6 bug 是 OpenVPN 本来就有的。

代码在 https://gitlab.lug.ustc.edu.cn/boj/openvpn