Не удалось разрешить интерфейс «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'` ничего не возвращает), поэтому я не могу загрузить 'тун'.
      $ uname -r
> 5.11.0-40-generic

Я использую Убунту 20.04

2 ответа

Бегsudo apt purge resolvconfи перезагрузка устранила проблему.

Я нашел хорошее рабочее решение, используя PostUp в конфигурационном файле wireguard.

Вместо того, чтобы использовать:

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 — это полное исправление без каких-либо потерь.

Другие вопросы по тегам