Работа для [email protected] завершилась неудачно, потому что контрольный процесс завершился с кодом ошибки

Вопрос или проблема

Я пытаюсь установить WireGuard на Ubuntu 18.04 64 бита, следуя одному из видеоуроков.

Шаг systemctl start [email protected] завершается с

Задание для [email protected] завершилось неудачей, так как контролирующий процесс завершился с кодом ошибки. 
Смотрите "systemctl status [email protected]" и "journalctl -xe" для подробностей.

Запуск systemctl status [email protected] дает:

[email protected] - WireGuard через wg-quick(8) для wg0
   Загружен: загружено (/lib/systemd/system/[email protected]; косвенно; предустановка поставщика: включена)
   Активно: не удалось (Результат: код завершения) с субботы, 11 марта 2023 года 00:02:48 UTC; 7 минут назад
     Документы: man:wg-quick(8)
           man:wg(8)
           https://www.wireguard.com/
           https://www.wireguard.com/quickstart/
           https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
           https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
  Процесс: 18984 ExecStart=/usr/bin/wg-quick up wg0 (код=завершен, статус=1/НЕУДАЧА)
 Основной PID: 18984 (код=завершен, статус=1/НЕУДАЧА)

11 мар 00:02:48 my-vps.name systemd[1]: Запуск WireGuard через wg-quick(8) для wg0...
11 мар 00:02:48 my-vps.name wg-quick[18984]: [#] ip link add wg0 type wireguard
11 мар 00:02:48 my-vps.name wg-quick[18984]: RTNETLINK отвечает: Операция не поддерживается
11 мар 00:02:48 my-vps.name wg-quick[18984]: Невозможно получить доступ к интерфейсу: Протокол не поддерживается
11 мар 00:02:48 my-vps.name wg-quick[18984]: [#] ip link delete dev wg0
11 мар 00:02:48 my-vps.name wg-quick[18984]: Не удается найти устройство "wg0"
11 мар 00:02:48 my-vps.name systemd[1]: [email protected]: Основной процесс завершился, код=завершен, статус=1/НЕУДАЧА
11 мар 00:02:48 my-vps.name systemd[1]: [email protected]: Не удалось с результатом 'exit-code'.
11 мар 00:02:48 my-vps.name systemd[1]: Не удалось запустить WireGuard через wg-quick(8) для wg0.

Запуск journalctl -xe показывает:

11 мар 23:46:27 my-vps.name wg-quick[18951]: [#] ip link add wg0 type wireguard
11 мар 23:46:27 my-vps.name wg-quick[18951]: RTNETLINK отвечает: Операция не поддерживается
11 мар 23:46:27 my-vps.name wg-quick[18951]: Невозможно получить доступ к интерфейсу: Протокол не поддерживается
11 мар 23:46:27 my-vps.name wg-quick[18951]: [#] ip link delete dev wg0
11 мар 23:46:27 my-vps.name wg-quick[18951]: Не удается найти устройство "wg0"

Мой wg0.conf выглядит так:

[Interface]
PrivateKey = myprivatekeyhere
Address = 10.0.0.1/24
ListenPort = 51830
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o venet0 -j MASQUERADE

modprobe wireguard говорит:

modprobe: FATAL: Модуль wireguard не найден в каталоге /lib/modules/4.15.0

ls /lib/modules возвращает:

4.15.0  4.15.0-206-generic

uname -r показывает:

4.15.0

Перезагрузка не помогла. Поиск не помог.

Так что, да, как говорит ошибка: у вас нет модуля wireguard для вашего ядра, значит, вы не можете использовать wireguard.

Вам нужно собрать и установить модуль wireguard (поскольку вы используете очень старую дистрибуцию, ядро старое, поэтому в ядре нет wireguard, и вам нужно установить его отдельно; если у вас включены репозитории universe, установите wireguard-dkms. Лучше обновитесь до более современной версии Ubuntu; с тех пор было выпущено два релиза с долгосрочной поддержкой. Все с ядром Linux > 5.6, вероятно, будет включать модуль wireguard; так что обращайтесь к Ubuntu 22.04.)

Ответ или решение

Проблема: Неудачный запуск сервиса wireguard на Ubuntu 18.04

При установке WireGuard на Ubuntu 18.04 64-bit возникает ошибка: «Job for [email protected] failed because the control process exited with error code». Эта проблема связана с тем, что ваша система не поддерживает использование модуля WireGuard для вашего ядра.

Причины возникновения ошибки

1. Отсутствие модуля WireGuard
Ваша ошибка гласит: «modprobe: FATAL: Module wireguard not found in directory /lib/modules/4.15.0». Это означает, что модуль WireGuard отсутствует в директории модулей ядра, что и является первопричиной проблемы. Вы используете устаревшую версию ядра (4.15.0), которая не содержит встроенной поддержки WireGuard.

2. Устаревшая версия Ubuntu
Ubuntu 18.04 – это дистрибутив, который получил поддержку до апреля 2023 года. К тому времени в ядре, которое вы используете, отсутствовали изменения, необходимые для поддержки WireGuard. Как правило, версии ядра выше 5.6 включают поддержку WireGuard.

Рекомендуемые действия для решения проблемы

1. Установка wireguard-dkms
Для того чтобы исправить эту проблему, вам необходимо установить пакет wireguard-dkms, который обеспечит сборку модуля WireGuard для вашего ядра. Пожалуйста, выполните следующие команды:

sudo apt update
sudo apt install wireguard-dkms wireguard-tools

Обратите внимание, что для установки вам могут понадобиться права суперпользователя (root). Убедитесь, что хранилища universe активированы в вашем конфигурационном файле /etc/apt/sources.list.

2. Обновление системы до более новой версии Ubuntu
Если вы хотите избежать подобных проблем в будущем, настоятельно рекомендуется обновить вашу версию Ubuntu до последней LTS версии, такой как Ubuntu 22.04. Это не только упростит установку WireGuard, но и обеспечит улучшенную безопасность и поддержку новых функций. Для этого выполните следующие команды:

sudo apt update
sudo do-release-upgrade

3. Проверка конфигурации WireGuard
После успешной установки модуля WireGuard и/или обновления системы, проверьте конфигурационный файл wg0.conf. Убедитесь, что все параметры правильные и не содержат ошибок.

[Interface]
PrivateKey = myprivatekeyhere
Address = 10.0.0.1/24
ListenPort = 51830
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o venet0 -j MASQUERADE

4. Перезапуск сервиса
После установки модуля или обновления системы попробуйте снова запустить WireGuard:

sudo systemctl start [email protected]

Если все прошло успешно, вы сможете использовать WireGuard для безопасного соединения.

Заключение

Ошибка, с которой вы столкнулись, связана с отсутствием необходимого модуля WireGuard в вашем ядре. Рекомендуется либо установить недостающий модуль с помощью wireguard-dkms, либо обновить систему до более новой версии Ubuntu. Эти действия не только позволят вам запустить WireGuard, но и обеспечат лучшую стабильность и безопасность в будущем.

Оцените материал
Добавить комментарий

Капча загружается...