SoftEther VPN на Ubuntu 24.04: пошаговая установка
SoftEther — не ещё один протокол, а целый VPN-сервер, который умеет говорить сразу на нескольких языках: L2TP/IPsec, OpenVPN, SSTP, MS-SSTP и собственный протокол SoftEther поверх HTTPS. Это удобно, когда нужно подключать разнородные устройства — от корпоративного ноутбука с встроенным L2TP-клиентом до телефона с приложением OpenVPN — с одного сервера и без вороха разных демонов. Разберём, как собрать SoftEther VPN Server из официального релиза на Ubuntu 24.04, настроить его через vpncmd и поднять автозапуск через systemd.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое SoftEther и когда он нужен
SoftEther VPN — открытый проект, изначально разработанный в Университете Цукуба (Япония), который затем перерос в полноценную кроссплатформенную VPN-платформу. Ключевая идея — один сервер, один процесс vpnserver, но несколько виртуальных хабов и несколько протоколов подключения одновременно. Это отличает его от WireGuard или «чистого» OpenVPN, где сервер обычно обслуживает один протокол.
Практическая польза в том, что не всем клиентам одинаково удобно ставить стороннее приложение. У Windows, macOS, iOS и Android есть встроенная поддержка L2TP/IPsec — телефон можно подключить средствами системы, без установки VPN-клиента. А для устройств, где нужен обход фильтрации по DPI, тот же сервер отдаёт OpenVPN-совместимый конфиг или родной протокол SoftEther, который маскируется под обычный HTTPS-трафик на 443-м порту.
Минус — сложность. У SoftEther больше движущихся частей, чем у WireGuard: виртуальные хабы, SecureNAT или Local Bridge, отдельная настройка под каждый протокол. Если нужен просто быстрый личный туннель на одном устройстве, WireGuard поднимется быстрее. SoftEther оправдан, когда важна гибкость: разные типы клиентов, несколько изолированных виртуальных сетей на одном физическом сервере, или встроенная поддержка протоколов без сторонних клиентов.
Подготовка сервера
Для SoftEther достаточно скромного VPS: 1 vCPU и 1 ГБ RAM закрывают потребности небольшой команды, для более активного трафика и нескольких десятков клиентов комфортнее будет 2 ГБ RAM. Диск много не съест — сама платформа занимает десятки мегабайт, основной расход — логи.
Обновите систему и поставьте пакеты, нужные для сборки из исходников:
apt update && apt upgrade -y
apt install -y build-essential libssl-dev libreadline-dev \
libncurses5-dev zlib1g-dev cmake wget tar
Эти библиотеки нужны компилятору: libssl-dev — для криптографии (SoftEther использует OpenSSL), libreadline-dev и libncurses5-dev — для интерактивной консоли vpncmd, остальное — стандартные инструменты сборки.
Ubuntu 24.04 по умолчанию использует OpenSSL 3.x — актуальные релизы SoftEther это учитывают, но если при сборке компилятор ругается на несовместимость заголовков, проверьте версию openssl version и при необходимости используйте более свежую ветку исходников с GitHub, а не архивную сборку многолетней давности.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверСборка из официального релиза
Официальные тарболы публикуются на странице релизов проекта на GitHub — github.com/SoftEtherVPN/SoftEtherVPN/releases — и на сайте softether-download.com. Версия меняется со временем, поэтому проверьте актуальную ссылку на странице релизов и подставьте её вместо примера ниже:
cd /usr/local/src
wget https://github.com/SoftEtherVPN/SoftEtherVPN/releases/download/<версия>/softether-vpnserver-<версия>-linux-x64-64bit.tar.gz
tar xzvf softether-vpnserver-*.tar.gz
mv vpnserver /usr/local/
Внутри архива — исходники и Makefile, который сначала показывает лицензионное соглашение. Запустите сборку:
cd /usr/local/vpnserver
make
Сборщик трижды выводит текст лицензии и трижды спрашивает согласие — на каждый вопрос отвечайте 1 (принять), затем 1 ещё раз для подтверждения. После этого начнётся компиляция; на VPS с 1 vCPU она обычно занимает несколько минут.
Когда сборка завершится, закройте файлы конфигурации от посторонних глаз и сделайте бинарники исполняемыми только для root:
chmod 600 *.config
chmod 700 vpnserver vpncmd
Проверьте, что сервер запускается вручную, прежде чем настраивать автозапуск:
./vpnserver start
./vpncmd localhost /SERVER
Если vpncmd подключился и показал приглашение VPN Server>, сборка прошла успешно. Введите Check — команда проверит, что все системные зависимости на месте, и покажет предупреждения, если чего-то не хватает (обычно это отсутствующий Bridge-модуль, без которого SecureNAT и обычная работа сервера не пострадают). Остановите сервер перед следующим шагом: ./vpnserver stop.
Автозапуск через systemd
Тарбол не содержит unit-файла systemd, поэтому создаём его вручную. Откройте /etc/systemd/system/vpnserver.service:
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
RestartSec=5s
Restart=on-failure
[Install]
WantedBy=multi-user.target
Type=forking важен: сам процесс vpnserver при команде start демонизируется и завершает родительский процесс, а systemd должен об этом знать, иначе решит, что сервис упал сразу после запуска. Примените и включите автозапуск:
systemctl daemon-reload
systemctl enable vpnserver
systemctl start vpnserver
systemctl status vpnserver
В выводе status должно быть active (running). Теперь сервер поднимется автоматически после перезагрузки или сбоя — это критично для VPN-инфраструктуры, которую вы не хотите проверять руками после каждого reboot.
Первичная настройка через vpncmd
Всё управление SoftEther идёт через консоль vpncmd — это единая точка входа что для локальной настройки, что для удалённого администрирования через GUI-менеджер на Windows или macOS. Подключитесь локально:
/usr/local/vpnserver/vpncmd localhost /SERVER
Выберите 1 (Management of VPN Server), в качестве Hub Name оставьте пустым (Enter) — вы работаете с сервером в целом. Первым делом задайте пароль администратора, иначе сервер по умолчанию открыт без аутентификации:
ServerPasswordSet
Создайте виртуальный хаб — изолированное виртуальное пространство, к которому будут подключаться клиенты:
HubCreate MainHub
Введите пароль хаба, когда попросит. Переключитесь в контекст хаба и создайте пользователя:
Hub MainHub
UserCreate vpnuser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet vpnuser
Один сервер может держать несколько хабов одновременно — например, отдельный для команды разработки и отдельный для личных устройств, с разными пользователями и правилами в каждом. Это удобно, если нужно физически разделить трафик разных групп на одном VPS.
Виртуальный хаб, SecureNAT и подключение клиентов
Чтобы клиенты внутри хаба получали доступ в интернет, нужен либо SecureNAT (виртуальный NAT и DHCP-сервер внутри SoftEther, не требующий настройки моста с реальным интерфейсом), либо Local Bridge к физическому сетевому адаптеру. Для большинства сценариев проще и безопаснее SecureNAT — он не трогает сетевые настройки хост-системы:
Hub MainHub
SecureNatEnable
Дальше включите протоколы, которые собираетесь использовать. Для встроенных клиентов Windows/macOS/iOS/Android — L2TP/IPsec с общим ключом:
IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /PSK:ваш_общий_ключ /DEFAULTHUB:MainHub
Для клиентов, которым удобнее приложение OpenVPN (или нужно обойти DPI-фильтрацию через порт 443), включите встроенный OpenVPN-совместимый сервер и сгенерируйте готовые конфиги:
OpenVpnEnable yes /PORTS:1194
OpenVpnMakeConfig /usr/local/vpnserver/openvpn_configs.zip
Архив openvpn_configs.zip содержит готовые .ovpn-файлы под разные ОС — их можно сразу отдавать клиентам. Не забудьте открыть нужные порты в firewall на самом сервере — если вы уже настраивали UFW на Ubuntu 24.04, правила добавляются так же:
| Протокол | Порт | Назначение |
|---|---|---|
| UDP | 500 | IKE (IPsec) |
| UDP | 4500 | NAT-T (IPsec за NAT) |
| UDP | 1701 | L2TP |
| UDP | 1194 | OpenVPN-клон (если включён) |
| TCP | 443 | Родной протокол SoftEther / SSTP (маскировка под HTTPS) |
| TCP | 5555 | Родной протокол SoftEther (альтернативный порт) |
ufw allow 500/udp
ufw allow 4500/udp
ufw allow 1701/udp
ufw allow 1194/udp
ufw allow 443/tcp
ufw allow 5555/tcp
Для управления сервером удобнее не консоль, а графический VPN Server Manager (доступен под Windows и macOS) — он подключается по TCP 443 или 5555 и даёт наглядный интерфейс для хабов, пользователей и логов, не требуя постоянного SSH-доступа. Если вы уже разбирались с OpenVPN на Ubuntu 24.04, логика клиентской настройки будет знакомой — разница в основном в том, что конфиги генерирует сам SoftEther, а не вы вручную.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
SoftEther работает медленнее WireGuard?
Прямых сопоставимых измерений в этой статье нет — не будем гадать цифрами. Архитектурно WireGuard проще и работает в ядре, а SoftEther — userspace-процесс с поддержкой нескольких протоколов, поэтому накладные расходы обычно выше, но для типичной нагрузки в несколько десятков клиентов разница на практике не критична.
Можно ли использовать SecureNAT и Local Bridge одновременно?
На одном хабе — нет смысла, это взаимоисключающие способы дать клиентам выход в сеть. Для разных хабов на одном сервере можно комбинировать: один хаб через SecureNAT, другой — через мост к физическому интерфейсу.
Почему vpncmd не может подключиться после установки?
Чаще всего сервис ещё не запущен или слушает не на том порту. Проверьте systemctl status vpnserver и убедитесь, что порт по умолчанию (5555) не занят другим процессом (ss -tulnp | grep 5555).
Нужно ли открывать все порты из таблицы сразу?
Нет, только те, что соответствуют включённым протоколам. Если L2TP/IPsec не используется — порты 500, 4500 и 1701 можно не открывать, это лишняя поверхность атаки.
Как обновить SoftEther на новую версию?
Официального пакетного менеджера нет — обновление вручную: останавливаете сервис, скачиваете новый тарбол, пересобираете в отдельной папке, переносите файлы конфигурации (vpn_server.config) из старой установки в новую, запускаете снова.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →