🛡️ Когда в ядре нет модуля Wireguard или Unknown Device Type
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