Вопрос или проблема
Я пытаюсь установить 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, но и обеспечат лучшую стабильность и безопасность в будущем.