1 Why VPN

为什么要使用 VPN?尤其是,为什么个人用户需要使用 VPN 呢?其实如果你只有一台电脑,其实一般用不上 VPN(当然,用 VPN 来翻墙另说),如果你有多个电脑,甚至是服务器,这些服务器的网络情况还比较复杂,而你希望随时随地方便地访问这些机器,那么建立 VPN 虚拟网络将这些机器连接起来就能极大的方便访问过程。例如,如果一台服务器是在路由器后面,没有公网 IP,与其在路由器上配置复杂的端口映射表,不如通过 VPN 网络自由地访问各个端口。又例如在一些特定的场景下,一些服务器的低位(1024 以下)端口的访问会收到限制,这个也可以同 VPN 来解决。

当然,还有可能,你处于校园网中,而你通过种种途径有了一个无限流量服务器,通过 VPN,可以让你在校园网场景下能够随时通过这台服务器上网,从而免去流量费用。另外,将这一宝贵资源分享给同学使用,用 VPN 也非常方便。

2 Why Pritunl

我试过很多 VPN 方案,例如 PPTP,OpenVPN,IPSec 等等。其实使用 VPN 过程中的一个痛点在于用户管理要尽可能方便,虽然我也比较多的在用命令行工具,但是使用命令行工具去管理用户体验还是非常差。Pritunl 提供了 OpenVPN 的网页 GUI 管理界面。这也是我为什么推荐使用 Priunl 的原因。而且,Pritunl 中免费用户就可以使用无数量限制的账户和设备,这对于个人用户来说足够了。

另一方面,Pritunl 的客户端支持也非常全面

3 How to deploy

3.1 Installation

官方文档在这里: Installation。事实上按照官方文档的推荐,Pritunl 最好部署在企业级的 Linux OS 上,如 Red Hat, Oracle Linux, CentOS 等。不过对于个人用户,对于性能,稳定性和安全性要求没有那么严格的情况下,用 Debian 系的系统也未尝不可。我的 Pritunl 服务器就是部署在 Ubuntu 上的,几个月使用下来,性能和稳定性都非常好。

对于不同版本的系统,安装脚本不同。例如,Ubuntu 16.04,安装脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list << EOF
deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse
EOF

sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
deb http://repo.pritunl.com/stable/apt xenial main
EOF

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
sudo apt-get update
sudo apt-get --assume-yes install pritunl mongodb-org
sudo systemctl start pritunl mongod
sudo systemctl enable pritunl mongod

3.2 Configuration

在安装完 Pritunl 之后,访问服务器的 443 端口,即可以看到配置引导界面。

配置界面

其中需要输入的主要是第一项 Setup Key。数据库部分,如果你是使用上面的脚本安装的话,那么 Pritunl 服务本机上就已经安装运行了 MongoDB,这里第二个配置 MongoDB URI 就不需要变动。要获取 Setup Key,ssh 进入部署服务器,运行pritunl setup-key即可.

完成这一步设置以后就来到管理员登录界面:

管理员登录界面

初始时用户名和密码都是pritunl,在完成第一次登录之后会被要求修改管理员的用户名和密码:

修改密码

4 Further Reading

Pritunl 的使用方法非常直观,文档可以参见Connecting.