MENU

boringtun的使用

boringtun是cloudflare开发的WireGuard userspace实现,其开发语言是Rust,boringtun可以在各种平台上使用,且效率高于Wireguard-go,且不需要内核支持WireGuard协议,这意味着boringtun可以在没有WireGuard内核支持的lxc/ovz等虚拟化中使用.

编译

首先需要安装cargo,网上随便找的rust安装脚本自带.

curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env

当然也可以尝试使用系统自带的包管理器安装cargo
然后从github上拉取代码和编译

mkdir boringtun
cd boringtun 
git clone https://github.com/cloudflare/boringtun .
cargo build --bin boringtun --release

编译后生成的文件在target/release/boringtun,将其复制到bin目录中使用即可

cp target/release/boringtun /usr/local/bin/boringtun

配合wg-quick和systemd使用

安装wireguard-tools,安装方法不再叙述,使用方法是wg-quick前面加env,如下

WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun WG_SUDO=1 wg-quick up wg0

使用systemd时首先编辑wg-quick@.serviceEnvironment=后面添加上面的env即可,下面给一个随手在机器里copy的

[Unit]
Description=WireGuard via wg-quick(8) for %I
After=network-online.target nss-lookup.target
Wants=network-online.target nss-lookup.target
PartOf=wg-quick.target
Documentation=man:wg-quick(8)
Documentation=man:wg(8)
Documentation=https://www.wireguard.com/
Documentation=https://www.wireguard.com/quickstart/
Documentation=https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
Documentation=https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/wg-quick up %i
ExecStop=/usr/bin/wg-quick down %i
Environment=WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun WG_SUDO=1


[Install]
WantedBy=multi-user.target

其它

  1. 这是cloudflare基于rust对WireGuard的实现,并非官方的WireGuard-rs
  2. boringtun仍然需要tun的支持.
最后编辑于: 2022 年 08 月 11 日
996.icu 996.icu