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的支持.

添加新评论