将 Raspberry Pi 3B+ 变成 PriTunl VPN

PriTunl 是一种 VPN 解决方案,适用于希望私有访问其网络的小型企业和个人。
261 位读者喜欢这篇文章。
Raspberries with pi symbol overlay

Dwight Sipler 在 Flickr 上

PriTunl 是一款出色的 VPN 终端解决方案,非常适合希望快速简单地私有访问其网络的小型企业和个人。它是开源的,基本的免费版本足以让您入门并满足大多数简单的用例。还有一个付费的企业版本,具有高级功能,如 Active Directory 集成。

Raspberry Pi 3B+ 上的特殊注意事项

PriTunl 通常很容易安装,但这个项目——将 Raspberry Pi 3B+ 变成 PriTunl VPN 设备——增加了一些复杂性。首先,PriTunl 仅以 AMD64 和 i386 二进制文件的形式提供,但 3B+ 使用 ARM 架构。这意味着您必须从源代码编译自己的二进制文件。这没什么可怕的;它可以像复制和粘贴几个命令并短暂观看终端一样简单。

另一个问题:PriTunl 似乎需要 64 位架构。当我在 Raspberry Pi 的 32 位操作系统上尝试编译 PriTunl 时遇到错误时,我发现了这一点。幸运的是,Ubuntu 针对 ARM64 的 18.04 beta 版本可以在 Raspberry Pi 3B+ 上启动。

此外,Raspberry Pi 3B+ 使用与其他 Raspberry Pi 型号不同的引导加载程序。这需要一套复杂的步骤来安装和更新必要的文件,才能使 Raspberry Pi 3B+ 启动。

安装 PriTunl

您可以通过在 Raspberry Pi 3B+ 上安装 64 位操作系统,然后再安装 PriTunl 来克服这些问题。我假设您对如何使用 Linux 命令行和 Raspberry Pi 有基本的了解。

首先,打开终端并通过输入以下命令下载 Ubuntu 18.04 ARM64 beta 版本

$ wget http://cdimage.ubuntu.com/releases/18.04/beta/ubuntu-18.04-beta-preinstalled-server-arm64+raspi3.img.xz

解压下载文件

$ xz -d ubuntu-18.04-beta-preinstalled-server-arm64+raspi3.xz

将您将与 Raspberry Pi 一起使用的 SD 卡插入您的台式机或笔记本电脑。您的计算机将为 SD 卡分配一个驱动器盘符——类似于 /dev/sda/dev/sdb。输入 dmesg 命令并检查输出的最后几行,以找出卡的驱动器分配。

在下一步中要 *非常小心*!我怎么强调都不为过;如果您弄错了驱动器分配,您可能会破坏您的系统。

使用以下命令将映像写入您的 SD 卡,将 <DRIVE> 更改为您的 SD 卡的驱动器分配(在上一步中获得)

$ dd if=ubuntu-18.04-beta-preinstalled-server-arm64+raspi3.img of=<DRIVE> bs=8M

完成后,将 SD 卡插入您的 Pi 并启动电源。确保 Pi 已连接到您的网络,然后使用用户名/密码组合 ubuntu/ubuntu 登录。

在您的 Pi 上输入以下命令以安装一些东西,为编译 PriTunl 做准备

$ sudo apt-get -y install build-essential git bzr python python-dev python-pip net-tools openvpn bridge-utils psmisc golang-go libffi-dev mongodb

与标准的 PriTunl 源代码 GitHub 上的安装说明 相比,有一些更改。确保您已登录到您的 Pi 并 sudo 到 root

$ sudo su -

这应该使您停留在 root 的主目录中。要安装 PriTunl 版本 1.29.1914.98,请输入(根据 GitHub)

export VERSION=1.29.1914.98
tee -a ~/.bashrc << EOF
export GOPATH=\$HOME/go
export PATH=/usr/local/go/bin:\$PATH
EOF
source ~/.bashrc
mkdir pritunl && cd pritunl
go get -u github.com/pritunl/pritunl-dns
go get -u github.com/pritunl/pritunl-web
sudo ln -s ~/go/bin/pritunl-dns /usr/bin/pritunl-dns
sudo ln -s ~/go/bin/pritunl-web /usr/bin/pritunl-web
wget https://github.com/pritunl/pritunl/archive/$VERSION.tar.gz
tar -xf $VERSION.tar.gz
cd pritunl-$VERSION
python2 setup.py build
pip install -r requirements.txt
python2 setup.py install --prefix=/usr/local

现在 MongoDB 和 PriTunl systemd 单元应该已准备好启动。假设您仍然以 root 身份登录,请输入

systemctl daemon-reload
systemctl start mongodb pritunl
systemctl enable mongodb pritunl

就是这样!您已准备好访问 PriTunl 的浏览器用户界面,并通过遵循 PriTunl 网站上的 安装和配置说明 来配置它。

标签
User profile image.
我是一名专业的系统管理员,专长是 Unix 和 Linux 系统。自 90 年代初以来,我一直从事企业网络、Unix 系统、网络/系统安全和 Web 技术工作,甚至还了解了一些关于 Windows 的知识。

10 条评论

与使用 PiVPN (http://www.pivpn.io/) 非常容易设置的 OpenVPN 相比,有什么优势吗?

很棒,但除非您有 aes-ni 处理器,否则您会遭受带宽损失。

仅在 3B+ 上使用一个以太网端口是否会影响性能?添加 USB 转以太网适配器以分离内部网络和外部网络是否会获得更好的性能?或者,CPU 更有可能成为瓶颈吗?

看起来您现在需要在软件包列表中添加 `libssl-dev` 才能构建 Cryptography。

我按照您的说明操作了,但 pritunl-web 没有加载。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.