我正在尝试使用 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 是一个完整的修复,不会丢失任何东西。