在无特权容器中安装WireGuard(Proxmox)
WireGuard是VPN领域的新星 - 它相比传统VPN技术确实有一些优势,但本文不会讨论这些,因为互联网上已有大量相关信息。这篇博文专门讲解如何在无特权容器中设置WireGuard。在我的案例中,所有操作都在Proxmox服务器上完成。让我们开始吧:
在Proxmox主机上配置内核模块
由于Proxmox基于Debian,我们只需从unstable仓库获取WireGuard软件包,这是Debian项目在此情况下的推荐方式。
1
2
3
4
|
echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable-wireguard.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard pve-headers
|
如果遇到以下输出:
1
2
3
4
5
|
Loading new wireguard-0.0.20190406 DKMS files...
Building for 4.15.18-9-pve
Module build for kernel 4.15.18-9-pve was skipped since the
kernel headers for this kernel does not seem to be installed.
Setting up linux-headers-4.9.0-8-amd64 (4.9.144-3.1) ...
|
你需要确保已安装当前内核的pve-headers。如果之后安装,需要调用:
测试模块加载
在两种情况下我们都用以下命令测试:
如果这能正常工作,我们在启动时自动加载模块,因为主机不知道容器后续需要该模块。
1
|
echo "wireguard" >> /etc/modules-load.d/modules.conf
|
配置无特权容器
现在我们创建无特权容器(在我的案例中也是Debian 9),然后安装用户空间工具:
1
2
3
|
echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable-wireguard.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
|
现在需要特别注意的是 - 我们只想要用户空间工具,不需要其他东西。
1
|
apt-get install --no-install-recommends wireguard-tools
|
功能测试
可以通过临时创建wg0设备来进行简单测试,验证一切是否正常工作:
1
|
ip link add wg0 type wireguard
|
没有输出意味着一切正常。至此我们完成了所有设置,其余操作与在容器外运行WireGuard相同 - 只需选择适合你的配置指南即可。