在无特权容器中安装WireGuard(Proxmox环境)

本文详细介绍了在Proxmox虚拟化平台上为无特权容器配置WireGuard VPN的完整步骤,包括内核模块安装、用户空间工具配置以及容器内WireGuard设备的测试验证。

在无特权容器中安装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
dkms autoinstall

两种情况下都通过以下命令测试:

1
modprobe wireguard

如果正常工作,我们需要在启动时自动加载该模块,因为主机不知道容器后续需要此模块。

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相同——只需选择相应的配置指南即可。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计