🏴‍☠️
Сашка ☕
Blog  Tags 
💀 🔵 🔴

🛡️ Когда в ядре нет модуля Wireguard или Unknown Device Type

Опубликовано: 1 октября 2022 г.

WireGuard в Porteus

Поддержка WireGuard в ядре Linux появилась в версии 5.6, однако в Porteus 5.0 ядро собрано как-то не так, либо я не осилил, но WireGuard Tools вываливает ошибки.

uname -r

5.18.8-porteus

Версия ядра 5.18.8, WireGuard должен быть из коробки.
wg show ошибок не возвращает, find /lib/modules/$(uname -r) -type f -name '*.ko' | grep -i wireguard показывает, что модуля нет.
Увы и ах.

Началось всё с того, что wireguard-tools я собрал из исходников и понадеевшись на удачу попробовал добавить интерфейс.

ip link add dev wg0 type wireguard

Error: Unknown device type.

На этом лирика кончилась, переходим к решению.

wireguard-go

wireguard-go - это официальная реализация WireGuard на языке программирования Go, который как Java работает везде и вся, но не требует виртуальной машины и компилируется в машинный код.

Запустив его, получил предупеждение, что в моём ядре уже есть поддержка WireGuard и нужды в wireguard-go нет, ну-ну…

./wireguard-go wg0

┌──────────────────────────────────────────────────────┐
│                                                      │
│   Running wireguard-go is not required because this  │
│   kernel has first class support for WireGuard. For  │
│   information on installing the kernel module,       │
│   please visit:                                      │
│         https://www.wireguard.com/install/           │
│                                                      │
└──────────────────────────────────────────────────────┘

wg show

interface: wg0
  listening port: 45654

Как видно, интерфейс появился и всё заработало.

А теперь к настройке. Настройка выполняется командой wg.

wg setconf

Usage: wg setconf <interface> <configuration filename>

Но если подсунуть конфиг, который генерирую многие сервисы, он не заработает.
Получим ошибку Configuration parsing error.

А это всё потому, что файл конфигурации предназначен для утилиты wg-quick, которая является Bash обёрткой над wg.
lists.zx2c4.com: What has changed in the configuration file?

Чтобы заработал wg-quick, нужно скопировать wireguard-go в директорию, которая присутствует в переменной $PATH, например /usr/local/bin/, в противном случае будем получать ошибку из начала поста.

wg-quick up /path/to/Config.conf

[#] ip link add Config type wireguard
Error: Unknown device type.
Unable to access interface: Protocol not supported
[#] ip link delete dev Config
Cannot find device "Config"

В Porteus ещё дополнительно нужно будет доустановить пакет openresolv.

ENJOY!

Пакеты для Porteus

Топик на форуме Porteus.org

Скачать:
wireguard-go - 1.9 MiB
wireguard-tools - 44 Kib