WARP 是 Cloud­flare 提供的一项基于 Wire­Guard 的网络流量安全及加速服务,能够让你通过连接到 Cloud­flare 的边缘节点实现隐私保护及链路优化。其连接入口为双栈 (IPv4/​IPv6),因此单栈服务器可以连接到 WARP 来获取额外的网络连通性支持。
比如可以让仅具有 IPv6 的服务器直接访问 IPv4 网络,不再局限于 DNS64 的束缚,能自定义任意 DNS 解析服务器,对于科学上网会有很大的帮助;也能让仅具有 IPv4 的服务器获得 IPv6 网络的访问能力,可以作为 IPv6 Only VPS 的 SSH 跳板。
这里记录一下 De­bian 10 的 Wire­Guard 安装教程,适合有手动配置 Wire­Guard 需求的小伙伴。(部分内容来自网络,写这篇文章只是做记录用的。)

准备工作

安装 sudo 和 lsb_release

apt install lsb-release -y

添加 back­ports 源

echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
sudo apt update

安装 WireGuard

先执行 uname -r 命令查看内核版本。如果是 5.6 及以上内核则已经集成了 Wire­Guard ,就不需要安装了。

当然看到这篇教程的小伙伴肯定大多数都不是这个情况,因为目前 De­bian 10 自带的内核版本是 4.19。所以有如下几个安装方法可供选择:

  1. 安装版本高于 5.6 的内核
  2. 安装 wireguard 内核模块
  3. 安装 wireguard-go

理论网络性能:内核集成 ≥ 内核模块 > wireguard-go

不过并不是所有 VPS 都能随便装,最终选择还要看 VPS 所使用的虚拟化技术:

  • KVM / HyperV / XEN HVM 等完整虚拟化的 VPS 主机,以上都是可选项,根据实际情况任选其一,后面有相关说明。
  • OpenVZ / LXC 等非完整虚拟化 VPS 主机,由于是共享宿主机内核,故无法对内核进行修改,就只能安装 wireguard-go

如果只要安装方便快捷,对网络性能没有极致追求,又或者对以上信息一脸懵逼,请直接移步到 安装 wireguard-go 章节。

安装新版内核

KVM / Hy­perV / XEN HVM 等完整虚拟化的 VPS 主机,且能应对更换内核可能带来的不良后果则可以这个方式。

为了系统的稳定性推荐安装 back­ports 仓库中的内核 (截止发文版本为 5.10)。直接安装 wireguard-tools 就行,默认会自己更新到最新的内核:

sudo apt install wireguard-tools --no-install-recommends

先执行 uname -r 命令查看内核版本。如果是 5.6 以上内核则已经集成了 Wire­Guard ,就不需要安装了。如果不是,执行下面的命令

sudo apt -t $(lsb_release -sc)-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y

安装完重启,并执行 uname -r 命令查看内核版本来确认新内核是否被启用。

安装 wireguard 内核模块

这个安装方式博主个人并不是很推荐,对于 Linux 不熟悉的人很容易出错,尤其是使用过改内核的脚本一顿骚操作改了一些未知来源的 “BBR 减速内核”。

KVM / Hy­perV / XEN HVM 等完整虚拟化的 VPS 主机,内核版本 5.6 以下可以尝试执行以下命令安装 wire­guard 动态内核模块。

sudo apt install wireguard-dkms -y

安装后执行 modprobe wireguard 命令加载 Wire­Guard 内核模块。

最后执行 lsmod | grep wireguard 命令检查是否成功加载。

安装 wireguard-go

OpenVZ 或 LXC 的 VPS 与不想折腾内核、追求稳定的小伙伴可以安装 wireguard-go。理论网络性能可能不及内核集成方案,不过对于正常使用而言还是绰绰有余的。

TIPS: 对于 OpenVZ 或 LXC 的 VPS 需要先执行lsmod | grep tun命令来检查 TUN/​TAP 功能是否正常启用,若没有请自行搜索开启方法,否则安装了也无法使用。

直接安装编译好的文件,省去编译过程。

#下载二进制文件(64位Linux)
wget -P /usr/bin https://github.com/bernardkkt/wg-go-builder/releases/latest/download/wireguard-go
#添加执行权限
chmod +x /usr/bin/wireguard-go
#检查执行是否正常
wireguard-go