无法解析接口“tun”:没有这样的设备

无法解析接口“tun”:没有这样的设备

我正在尝试使用 wireguard,但是当我尝试使用它时wg-quick up出现错误。

wg-quick up test
Warning: `/etc/wireguard/test.conf' is world accessible
[#] ip link add test type wireguard
[#] wg setconf test /dev/fd/63
[#] ip -4 address add 172.16.0.29/32 dev test
[#] ip -6 address add fd::29/128 dev test
[#] ip link set mtu 1395 up dev test
[#] resolvconf -a tun.test -m 0 -x
Failed to resolve interface "tun": No such device
[#] ip link delete dev test

当我检查其他人的问题时,我发现我没有“tun.ko.gz”(“find /lib/modules/ -iname 'tun.ko.gz'”没有返回任何内容),所以我无法加载“tun”。
$ uname -r
> 5.11.0-40-generic

我正在使用 Ubuntu 20.04

答案1

运行sudo apt purge resolvconf并重新启动解决了该问题。

答案2

我在 wireguard 配置文件中使用 PostUp 找到了一个不错的解决方案

而不是使用:

DNS = <ip>

尝试在[界面]下进行以下操作:

PostUp = resolvectl dns %i <ip>

(如果您已经有 PostUp,只需添加另一个)

这将配置 wireguard 接口以使用指定<ip>作为该接口的 DNS 服务器。 如果需要,您还可以添加域搜索:

PostUp = resolvectl dns %i <ip>; resolvectl domain %i \~domain

(将“域”替换为您要搜索的实际域后缀,但保留\~

PostDown 中没有必要,因为 wireguard 接口(此配置附加到该接口)将消失。

来源

对于某些人来说,删除DNS=*.*.*.*可能没问题,因为您将能够连接到 wireguard 而不会出现错误,并且您将能够像普通 VPN 用户一样使用互联网。但就我而言,如果我删除 DNS 线路,我将无法连接到其他对等点,这对我来说至关重要。PostUp 是一个完整的修复,不会丢失任何东西。

相关内容