使用OpenVPN连接Windscribe免费VPN

前言

最近换了住处之后,我还是没想到平时上网的宽带问题会成为一大痛点:现在住的地方基本上只能办理南京的广电宽带。广电宽带不但有着臭名昭著的速度慢游戏卡以及墙中墙问题,而且由于其 IP 地址资源有限,访问一些网站经常出现 IP 全国各地乱飞的情况,最要命的是其出国线路与我之前用的移动宽带完全没法比。

我观察到的南京广电宽带基本出国都是走联通线路,使用的是内蒙古包头之类的奇葩 IP 地址。之前在住处用于翻墙的 AlphaRacks VPS 和 Arukas 容器搭建的 Shadowsocks 服务器现在基本都处于不可用的状态,Google 搜索勉强能打开,Gmail 经常卡的不要不要的,YouTube 视频则基本不用想了。

更恶心的是广电宽带还直接屏蔽了 ICMP ping 外网的请求,只能 ping 广电内网的地址,至于普通的 traceroute 路由跟踪就更别想了。

下面贴出来的是我在 Linux 下使用专用的 TCP 路由跟踪 tcptraceroute 命令看到的惨不忍睹的结果,目的地址是移动宽带下用的无比顺畅的日本免费 Arukas 容器:

(trusty)zzm@localhost:~$ tcptraceroute -n 153.125.238.173 31626
Selected device wlan0, address 192.168.1.243, port 50713 for outgoing packets
Tracing the path to 153.125.238.173 on TCP port 31626, 30 hops max
 1  192.168.1.1  1.321 ms  1.567 ms  3.853 ms
 2  10.58.71.1  9.688 ms  14.964 ms  11.497 ms
 3  192.168.104.57  8.138 ms  20.722 ms  9.597 ms
 4  111.208.1.141  10.785 ms  11.364 ms  8.861 ms
 5  111.208.1.190  9.602 ms  10.524 ms  11.136 ms
 6  192.168.3.225  8.822 ms  9.481 ms  8.833 ms
 7  * * *
 8  172.16.116.13  70.035 ms  71.014 ms  68.664 ms
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
Destination not reached

由于我平常也使用 Chromebook 设备,特别依赖 Google 服务,Gmail 自不必说,经常要用 Google Drive 同步文件,另外也使用 Google Photos 备份照片,这样必须无法忍受需要找其它翻墙方案。

关于 Windscribe VPN

Windscribe 还是从我一个同事那里了解到的免费 VPN 服务,默认提供每个月 10GB 的流量,免费账户也有多国服务器可选,通过代金券可以增加到每月 50GB 或者 60GB。

需要的朋友可以通过下面的链接注册(没错,带了我的推荐小尾巴 ^_^),需要注意 Windscribe 网站必须翻墙才能打开:

https://windscribe.com/?friend=uxavdz64

Windscribe 的付费账户则是无限流量每月 $7.50 美元起,最近他们在搞 Lobster Lover 优惠活动,现在付费账户限时 3 折促销每年 $29.99 美元,有需要的朋友可以注册之后用 Lobster Lover 链接优惠升级哦。

账户注册完成之后登录,在 My Account 页面中点击 Claim Voucher 按钮输入代金券代码:

  • SOS60GBS,流量增加到每个月 60 GB,暂不确定什么时候过期;
  • 50GBFREE,流量增加到每个月 50 GB。

Windscribe 提供了 Windows、Mac OS X、iPhone 下的客户端,而且还有官方的 Chrome、Firefox、Opera 浏览器下的 VPN 扩展程序,客户端下载链接在此:

https://chn.windscribe.com/download

从下载页面可以看到 Linux、Android 客户端都只有收费账户才支持,而且 Windscribe 并没有直接提供 Linux 和 Android 下的官方客户端,而是通过 OpenVPN、IKEv2、SOCKS5 等配置文件的方式让用户使用其它工具来连接 Windscribe VPN 服务器。

OpenVPN 连接 Windscribe

如此看来 Windscribe 是直接支持以 OpenVPN 方式来连接的,当然收费账户可以从下面的链接直接下载 OpenVPN 配置文件和证书:

https://chn.windscribe.com/getconfig/openvpn

虽然免费账户无法下载 OpenVPN 配置,但我估计 Windows 等系统下的客户端很有可能还是以 OpenVPN 方式实现的,马上下载安装 Windows 客户端来确认。

客户端安装的时候会自动提示安装 OpenVPN 的 TAP 驱动,完成之后使用 Windscribe 账户登录,默认会选择离我们最近的香港服务器。连接成功之后就能在进程列表看到 Windscribe 的 windscribeopenvpn.exe 程序,而且在命令行参数中还能看到 OpenVPN 配置文件路径:

"C:\Program Files (x86)\Windscribe\windscribeopenvpn.exe" --config "C:/Users/xxx/AppData/Local/Windscribe/Windscribe/config.ovpn" --management 127.0.0.1 57593 --management-query-passwords --management-hold

首先从下面的路径把 OpenVPN 配置文件拷贝出来:

C:/Users/xxx/AppData/Local/Windscribe/Windscribe/config.ovpn

配置文件内容大概是这样的:

client
dev tun

nobind
auth-user-pass
reneg-sec 432000
resolv-retry infinite

auth SHA512
cipher AES-256-CBC
keysize 256
comp-lzo
verb 2
mute-replay-warnings
ns-cert-type server
persist-key
persist-tun

key-direction 1
<ca>
-----BEGIN CERTIFICATE-----
xxxxxx
-----END CERTIFICATE-----
</ca>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
xxxxxx
-----END OpenVPN Static key V1-----
</tls-auth>
block-outside-dns

remote 103.10.197.3
port 443
proto udp

中间的 CA 证书和 TLS 认证 key 太长就没有全部贴出来了,remote 明显就是 Windscribe OpenVPN 服务器的地址,这里的 103.10.197.3 就是 Windscribe 的香港服务器。

现在剩下的问题就是 OpenVPN 的登录用户名和密码了,Windscribe 的 Linux 客户端说明 中明确提醒用户需要注意的就是 OpenVPN 用户名和密码并不是 Windscribe 账户名和密码。

Windscribe 的 Windows 客户端里并没有直接提供用户名和密码,而且 Windscribe 网站上也只有付费账户才能得到,但这并不妨碍我们从 Windscribe 客户端的日志文件中找出端倪。

打开 Windscribe 客户端的日志文件:

C:\Users\xxx\AppData\Local\Windscribe\Windscribe\log.txt

不出意外的话你应该能在其中找到类似下面的输出:

[0607 03:18     36.573] [basic]	 state = CONNECT_BUTTON_CONNECTING
[0607 03:18     36.574] [basic]	 radiusUsername:  "nocwat_xxx"
[0607 03:18     36.574] [basic]	 radiusPassword:  "pppppp"
[0607 03:18     36.574] [basic]	 Connecting to "最佳位置"
[0607 03:18     36.574] [connection]	 Use latest successfully connection protocol: "UDP"
[0607 03:18     36.574] [connection]	 Connection settings: automatic
[0607 03:18     36.574] [connection]	 Location nodes: "node1 = {ip1 = 103.10.197.2, ip2 = 103.10.197.3, ip3 = 103.10.197.4}; "
[0607 03:18     36.575] [connection]	 OVPN-config path: "C:/Users/xxx/AppData/Local/Windscribe/Windscribe/config.ovpn"
[0607 03:18     36.575] [connection]	 Connecting to IP: "103.10.197.3"  protocol: "UDP"  port: 443

上面日志里的 radiusUsernameradiusPassword 就是 Windscribe 的 OpenVPN 服务器登录用户名和密码了。

接着就是打开 OpenVPN 软件使用刚才拷贝出来的 config.ovpn 配置文件,然后用上面的 OpenVPN 用户名和密码登录了,我的免费账户使用这种绕过 Windscribe 官方客户端的方式登录在测试中并没有发现什么问题。

Windscribe 服务器列表

到这里你应该能使用泛用型 OpenVPN 客户端来连接 Windscribe VPN 了,只是 Windscribe 多个地区的 VPN 服务器地址稍微麻烦点,毕竟使用过程中总会遇到某些地区的服务器比较慢需要切换的。

不过还好网上已经有人整理好了 Windscribe 的各地区 VPN 服务器地址了,大家直接从下面的地址下载 UDP 或者 TCP 协议的各地区 OpenVPN 配置文件:

Windscribe-OVPN-UDP.zip
Windscribe-OVPN-TCP.zip

解压缩之后使用其中某个地区的 OpenVPN 配置文件即可,登录时仍然使用前面日志文件中找到的用户名和密码。

当然后面很可能会碰到配置文件中的服务器地址不正确或者 Windscribe 修改了证书之类的情况,不过大家还是可以从 Windscribe 客户端的服务日志中找到正确的服务器地址,例如:

[04-07 12:11:06]	Service started
[04-07 12:15:14]	AA_COMMAND_FIREWALL_CHANGE, AllowLocalTraffic=1, Ips=38.95.108.xxx;xxxxxx;104.18.56.xxx
[04-07 12:15:14]	AA_COMMAND_FIREWALL_IPV6_ENABLE
[04-07 12:15:14]	Error 13
[04-07 12:15:14]	AA_COMMAND_EXECUTE, blocking=0, cmd="C:\Program Files (x86)\Windscribe\windscribeopenvpn.exe" --config "C:/Users/xxx/AppData/Local/Windscribe/Windscribe/config.ovpn" --management 127.0.0.1 57593 --management-query-passwords --management-hold

上面日志输出中的 Ips(并没有全部列出来) 就是客户端获取到的所有 Windscribe VPN 服务器的地址了。