PiVPN:贼易用的VPN管理工具
目录
这两天在折腾着搭建一个VPN,看了一下OpenVPN的搭建流程还挺繁琐的,搜寻一番之后找到一个开源项目 PiVPN,可以非常简单的进行搭建和管理。
PiVPN
顾名思义,PiVPN 是专门为树莓派而设计的,不过粗略看了一下安装脚本,其就是将openvpn及诸多工具进行整合以方便使用,因此我们理论上在 Ubuntu 或 Debian 上也能进行部署。
PiVPN有几个明显的特点和优势:
- 简单:无论是安装部署,亦或后期管理,PiVPN都帮我们搞定了一切;
- 灵活:部署一个VPN,我们势必会想进行各种定制化,比如端口、秘钥长度、客户端DNS等;
- 管理:PiVPN提供了一个命令 pivpn,可以方便地让我们进行各种操作,比如为客户端生成证书、销毁证书、安装移除等;
- 安全:虽然PiVPN很简单,然而客户端和服务器之间的一切安全配置都会得到有效保证。
安装
只需一个命令便可以开始我们VPN的部署:
curl -L https://install.pivpn.io | bash
PiVPN需要使用静态的IP地址,如果我们使用的不是树莓派进行配置,那么我们将需要自己手动为系统配置好静态IP。
然后我们需要选择一个用户来存放vpn的配置文件,有特殊需求的话可以新建一个用户。
之后 pivpn 会从 https://github.com/pivpn/pivpn.git clone 到本地的 /etc/.pivpn
接着,我们可以选择 OpenVPN 或 WireGuard 两种安装模式。
WireGuard
PiVPN推荐使用全新的 WireGuard 来部署VPN,选择该选项后便开始下载相关依赖软件。由于添加WireGuard软件源,如果因为网络环境导致安装失败,可以尝试使用代理进行安装:
http_proxy="http://xxxx" https_proxy="http://xxx" bash install.sh
- WireGuard 默认使用 51820 端口,如果有需要可以在安装过程中进行修改。
- 然后配置 DNS Provider,我们可以选择 Custom,然后填写 114.114.114.114 即可。
- 接着配置客户端如何连接到我们的VPN,可以填写公网IP或者是域名。
- 最后开始生成服务器秘钥。
搞定后重启服务器让所有配置都生效即可。
客户端
我们可以从 WireGuard 官网下载各个平台和操作系统的客户端 ,不过目前 iOS 和 macOS 需要使用美国苹果商店下载,这个稍微麻烦一点。
对于每一个客户端,我们需要使用 pivpn 来生成独立的证书:
pivpn add
默认生成的证书保存在 ~/config 目录中,将其复制到所需设备中即可,移动设备还可以使用二维码来识别:
pivpn qrcode
OpenVPN
我们也可以在部署过程中选择传统的 OpenVPN。
- 安装过程中我们默认使用UDP协议,端口使用1194;
- 然后配置 DNS Provider,我们可以选择 Custom,然后填写 114.114.114.114 即可;
- 接着是否使用Custom Search Domain,这个我们可以先不管;
- 继续配置客户端如何连接到我们的VPN,可以填写公网IP或者是域名;
- 接着ECDSA证书大小,我们选择默认的256bit即可,当然你可以可以选择更长的证书大小,不过生成证书过程将会花费更长的时间(尤其注意在树莓派上需要等待的时间将会更长,我在树莓派2B上部署,生成证书耗时一小时;而在PC上则只需几秒);
安装完毕后重启服务器使配置生效。
客户端
Windows可以直接从OpenVPN的官网下载客户端,macOS可以使用开源的 TunnelBlick,iOS需要去美国苹果商店下载 OpenVPN Connect。
然后使用pivpn命令生成客户端证书:
pivpn add # 如果证书不需要密码 pivpn add nopass
生成的证书默认保存在 ~/ovpns 目录下。
内网VPN
如果我们的PiVPN是部署在局域网内部,并且没有公网IP,但是我们又想从外部访问回去,那么就可以参考《frp:一个内网穿透神器》,简单配置一下客户端的端口转发即可:
[common] server_addr = xxx.xxx.xxx.xxx server_port = 7000 [openvpn] type = udp local_ip = 127.0.0.1 local_port = 1194 remote_port = 1194
需要注意这里的 server_addr 就是我们前面部署PiVPN填写的公网IP或域名。
参考:
- https://www.pivpn.io/
- https://github.com/pivpn/pivpn
- https://www.sitepoint.com/setting-up-a-home-vpn-using-your-raspberry-pi/
评论