Вопрос или проблема
Я пытаюсь установить amneziawg (wireguard) на VPS сервер с debian 11
Когда он запускается, я получаю эту ошибку
Запуск WireGuard через wg-quick(8) для awg0...
[#] ip link add awg0 type amneziawg
RTNETLINK отвечает: Операция не поддерживается
Не удалось получить доступ к интерфейсу: Протокол не поддерживается
[#] ip link delete dev awg0
Не удается найти устройство "awg0"
[email protected]: Основной процесс завершился, код=завершен, статус=1/СБУДОРЖЕННЯ
Во время установки была одна команда, которую я не смог выполнить
sudo apt-get install linux-headers-$(uname -r):
E: Не удалось найти пакет linux-headers-4.19.0
E: Не удалось найти ни один пакет по шаблону 'linux-headers-4.19.0'
E: Не удалось найти ни один пакет по регулярному выражению 'linux-headers-4.19.0'
(Я перезагрузил)
Некоторые команды, которые я пробовал:
sudo modprobe amneziawg:
modprobe: СТРАШНАЯ ОШИБКА: Модуль amneziawg не найден в каталоге /lib/modules/4.19.0
uname -a:
Linux example.com 4.19.0 #1 SMP Wed Jul 12 12:00:44 MSK 2023 x86_64 GNU/Linux
dir /lib/modules/:
4.19.0 5.10.0-33-amd64 5.10.0-33-rt-amd64
sudo apt-get install linux-headers-5.10.0-33-amd64:
linux-headers-5.10.0-33-amd64 уже является самой новой версией (5.10.226-1).
0 обновлено, 0 установлено новыми, 0 подлежит удалению и 0 не обновлено.
Как вы могли догадаться, я не имею понятия, что я делаю или как решить эту проблему.
Мне кажется, что проблема в папке модулей 4.19.0
Могу ли я как-то переключить ее на версию 5.10.0, если это NAT VPS сервис?
Вероятно, у него есть одно ядро для каждого виртуального сервера или что-то подобное…
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
reboot
Не помогает
Что мне делать? Буду рад любым предложениям.
Ваш VPS, вероятнее всего, не является полноценной виртуальной машиной, а контейнером на некоторой хост-системе. Все контейнеры на хост-системе используют одно ядро — ядро хоста, поэтому нет смысла пытаться создать модуль ядра, вы не сможете его загрузить.
Если вы хотите использовать wireguard, лучше всего использовать реализацию в пространстве пользователей. wireguard-go
упакован в Debian.
Ответ или решение
Проблема с использованием uname -r
на VPS сервере, как вы описали, затрагивает несколько ключевых аспектов, которые важно учесть при работе с виртуальными частными серверами и установке таких технологий, как WireGuard.
Контекст проблемы
Ваша попытка установить AmneziaWG для WireGuard на VPS с Debian 11 привела к ошибкам, связанным с отсутствием соответствующих модулей ядра и заголовков. Это, в свою очередь, указывает на некоторые ограничения, которые могут быть вызваны архитектурой вашего VPS, скорее всего, являющегося контейнером на хосте, использующем общее ядро.
Анализ ошибок
-
Ошибка при установке заголовков ядра:
E: Unable to locate package linux-headers-4.19.0
Эта ошибка указывает на то, что не установлены соответствующие заголовки для ядра версии 4.19.0. Также в выводе
dir /lib/modules/
видно, что у вас также есть модули для версии 5.10.0, что подтверждает наличие нескольких версий ядра. -
Ошибка при загрузке модуля AmneziaWG:
modprobe: FATAL: Module amneziawg not found in directory /lib/modules/4.19.0
Это также указывает на то, что модули для версии ядра 4.19.0 не загружены, что может быть результатом того, что ваш VPS использует контейнеризацию и не может загружать модули, отсутствующие в общем ядре хост-системы.
Решение проблемы
-
Понимание архитектуры вашего VPS:
Если ваш VPS функционирует в виде контейнера (например, OpenVZ или LXC), он использует общее ядро хост-системы. Это означает, что загружать собственное ядро или модули нельзя – вы ограничены модулями, которые доступны в общем ядре. -
Альтернатива WireGuard:
Вместо попытки установить модуль ядра WireGuard рекомендуется использовать реализацию в пространстве пользователя, такую какwireguard-go
. Она позволит вам обойти ограничения, связанные с модулем ядра, и использовать WireGuard без необходимости загружать специфические модули.Команды для установки:
sudo apt-get install wireguard-tools sudo apt-get install wireguard
-
Обновление системы:
Убедитесь, что вы выполнили обновления и дистрибутивную модернизацию. Если это не помогло, вам следует уточнить, есть ли возможность перейти на VPS с полным виртуализированным ядром, что позволит вам управлять модулями более эффективно.
Рекомендации
-
Использование контейнеров: Если ваш хост-провайдер позволяет, рассмотрите возможность использования VPS с полной виртуализацией (например, KVM). Это даст вам больше контроля над ядром и его модулями.
-
Проверка документации хостера: Вместо использования
uname -r
для определения доступных модулей, всегда проверяйте документацию вашего хостера, чтобы понять, какие возможности предлагает ваша VPS. -
Выбор пользователя: Использование реализации WireGuard в пользовательском пространстве является наиболее удобным решением. Следите за обновлениями пакетного менеджера, чтобы всегда использовать последние версии.
Заключение
Проблемы с совместимостью между модулями ядра и доступными версиями заголовков могут вызывать трудности в управлении сетевыми инструментами, такими как WireGuard. Рассмотрение пользовательских решений, таких как wireguard-go
, может существенно упростить задачу. Всегда учитывайте архитектурные особенности вашего VPS и используйте доступные инструменты максимально эффективно.