当我运行时sudo wg-quick up /etc/wireguard/wg0.conf
,看到以下错误:
Error: Unknown device type
当我跑步时modprobe wireguard
:
modprobe: FATAL: Module wireguard not found in directory /lib/modules/5.3.0-51-generic
当我跑步时sudo find / -iname *wireguard.ko*
:
/var/lib/dkms/wireguard/1.0.20201112/4.15.0-204-generic/x86_64/module/wireguard.ko
因此它看起来像是wireguard
在 4.15.0 中安装,但却modprobe
在 5.3.0-51 中寻找它。
在这种情况下,解决方案是什么?
答案1
我无法在全新完全更新的 18.04LTS 副本上重现该问题。我怀疑您安装了多个不同的内核版本,并且目前没有适合您要启动的内核的正确内核模块。
Wireguard 用途知识管理系统允许构建内核模块以适合您正在使用的内核,但这需要安装内核头文件。有关 Wireguard 模块问题的其他帖子可能值得一看:即使安装了内核头,Wireguard 仍然无法构建模块?
根据我的全新安装,18.04 的默认内核似乎是 4.15.0,但标准存储库中也有 5.xx 内核可用。检查您当前正在运行哪个内核:
uname -a
你可以通过以下命令查看已安装的内核版本:
dpkg -l | grep linux-
如果您运行的是 5.xx 内核,请确保安装的内核头和模块包与您要使用的内核相匹配。您也可以尝试降级到 4.xx 内核(此选项可能在 grub 中可用):如何使用旧版本的内核启动?