Wireguard 拒绝在 Fedora 31 上运行:协议不受支持

Posted

技术标签:

【中文标题】Wireguard 拒绝在 Fedora 31 上运行:协议不受支持【英文标题】:Wireguard refuses to run on Fedora 31: protocol not supported 【发布时间】:2020-07-17 13:50:06 【问题描述】:

我最近安装了wireguard-tools 并多次重启了我的机器。但是,它根本不会运行。我每次都会收到这个错误:

Warning: `/etc/wireguard/myprovider.conf' is world accessible
[#] ip link add myprovider type wireguard
Error: Unknown device type.
Unable to access interface: Protocol not supported
[#] ip link delete dev myprovider
Cannot find device "provider"

然后我运行 dkms status,它完全空白,即使在重新启动后也是如此。在网上看,似乎没有其他人的 dkms 空白。我的内核版本是 5.5.13-200.fc31.x86_64,这是我能去的最新版本。我已经尝试过清理软件包、更新然后重新安装wireguard 的一般建议,但它没有奏效。我应该从这里做什么?这是否需要重新安装整个操作系统?

【问题讨论】:

你跑dnf update了吗? 我确实运行过它,是的。还是不行 【参考方案1】:

我通过升级wireguard解决了这个问题:

sudo apt-get upgrade wireguard

这是最终结果:

(...)
Preparing to unpack .../92-wireguard-dkms_1.0.20200520-0ppa1~18.04_all.deb ...

-------- Uninstall Beginning --------
Module:  wireguard
Version: 1.0.20200401
Kernel:  5.3.0-46-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

wireguard.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.3.0-46-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod...

DKMS: uninstall completed.

-------- Uninstall Beginning --------
Module:  wireguard
Version: 1.0.20200401
Kernel:  5.3.0-51-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

wireguard.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.3.0-51-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod...

DKMS: uninstall completed.

------------------------------
Deleting module version: 1.0.20200401
completely from the DKMS tree.
------------------------------
Done.
(...)

然后 sudo wg-quick up conf_name 再次起作用。

【讨论】:

【参考方案2】:

modinfo wireguard 显示什么?

Wireguard 包含在 Linux 5.6 及更高版本中。在您的 5.5 内核上,您需要安装内核模块。

我是 Debian 用户,但在 fedora 上应该可以:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

wireguard-tools 只安装工具,wireguard-dkms 内核模块,这将做实际工作。

reference

【讨论】:

以上是关于Wireguard 拒绝在 Fedora 31 上运行:协议不受支持的主要内容,如果未能解决你的问题,请参考以下文章

如何在CentOS 7 / Fedora 31/30/29上安装ELK Stack

pfSense配置WireGuard VPN

如何让 Wireguard-Android make 文件在 Windows 上运行?

Docker Swarm 模式路由网格不适用于wireguard ***

WireGuard 未连接到 Internet

Wireguard 服务器连接到客户端