将 Kubuntu 更新至 22.10 后,WireGuard/tun 模块出现问题

将 Kubuntu 更新至 22.10 后,WireGuard/tun 模块出现问题

将我的 kubuntu(之后我重新启动了设备)从 22.04 更新到 22.10 后,我无法运行 wire guard:

sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.77.28.148 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
Failed to resolve interface "tun": No such device
[#] ip link delete dev wg0 

我假设由于 WireGuard 与操作系统的先前版本兼容,因此其配置是正确的(但也许这是一个错误的假设……),所以我猜 tun 模块存在问题。当我尝试使用 检查此模块时,我没有看到lsmod | grep 'tun'它的输出。sudo modprobe tun没有任何变化。我也找不到目录tun.ko.gz中的/lib/modules/,我只看到qrtr-tun.ko

modinfo tun返回:

name:           tun
filename:       (builtin)
alias:          devname:net/tun
alias:          char-major-10-200
license:        GPL
file:           drivers/net/tun
author:         (C) 1999-2004 Max Krasnyansky <[email protected]>
description:    Universal TUN/TAP device driver

grep "CONFIG_TUN" -r /usr/src返回:

/usr/src/linux-headers-5.19.0-23-generic/.config:CONFIG_TUN=y

如果您需要更多信息,请告诉我。另外,如果我上面提供的任何内容不相关,请原谅,这个主题对我来说很新。

答案1

我也遇到过同样的问题。这似乎是 Ubuntu 22.10 更新的问题(我的系统是 22.04)。

我可以通过执行修复它sudo apt purge resolvconf

请注意,我不知道这是否会导致其他问题,但它可以让 wireguard 再次运行。Ubuntu 使用的是 systemd-resolved,通常 resolvconf 应该只是 systemd-resolved 的“链接”。

更多信息这里。

删除 .conf 文件中的 DNS 声明也可以,但如果您想通过 wireguard 使用自定义 DNS 服务器,这不是一个可接受的解决方案。

答案2

在我的 wg0.conf 文件中,我注释掉了 DNS 行(因为如果可以的话我不愿意删除任何东西),然后添加了

PostUp = resolvectl dns %i *DNS IP ADDRESS*

到我的接口块的末尾

答案3

在 wireguard 客户端配置文件中注释或删除你的 DNS 密钥

例子

相关内容