Что такое SoftEther VPN и почему он удобен
SoftEther VPN — это мультипротокольный VPN-сервер с открытым исходным кодом, который поддерживает сразу несколько технологий: L2TP/IPsec, OpenVPN, MS-SSTP, EtherIP и собственный протокол SSL-VPN. Благодаря этому один сервер может обслуживать клиентов с самыми разными устройствами и операционными системами — от Windows и Linux до смартфонов на Android и iOS.
Главное преимущество SoftEther перед классическим OpenVPN — отсутствие жёсткой привязки к TUN/TAP-устройствам ядра. Это значит, что сервер будет работать практически на любом VPS или VDS, даже на тех виртуализациях, где OpenVPN не запускается. Кроме того, SoftEther умеет маскировать свой трафик под обычный HTTPS, что делает его незаметным для многих систем фильтрации и DPI.
Ещё одна важная особенность — возможность работы через ICMP (ping) и DNS-запросы. Если провайдер блокирует стандартные VPN-порты, SoftEther может использовать эти протоколы для обхода ограничений. Это делает его особенно полезным в сетях со строгой фильтрацией.
Для администрирования доступны два основных инструмента: консольная утилита vpncmd и графический менеджер VPN Server Manager для Windows. Консольный интерфейс поддерживает более 200 команд, что позволяет гибко управлять сервером даже по SSH. Графический менеджер удобен для новичков и позволяет настраивать большинство параметров без знания команд.
Выбор сервера и подготовка системы
Перед установкой SoftEther VPN Server важно правильно выбрать хостинг и подготовить операционную систему. SoftEther нетребователен к ресурсам: для небольшой сети достаточно 512 МБ RAM и одного ядра CPU. Однако если планируется много одновременных подключений или передача больших объёмов трафика, лучше выбрать VPS с 1–2 ГБ RAM и SSD-диском.
Операционная система может быть любой: CentOS, Ubuntu, Debian, Windows Server. В этой статье мы рассмотрим установку на Linux, так как это самый распространённый вариант для серверов. Для компиляции исходного кода потребуется установить набор компиляторов и утилит:
- В CentOS/RHEL:
yum groupinstall -y "Development Tools" - В Ubuntu/Debian:
apt-get install -y build-essential
Также убедитесь, что в системе есть утилита wget для скачивания архива с исходным кодом. Если её нет, установите через пакетный менеджер.
Перед началом настройки рекомендуется обновить систему и убедиться, что порты, которые будет использовать SoftEther (443, 992, 1194, 5555), не заняты другими службами. Если порт 443 уже используется веб-сервером, это не проблема — SoftEther может работать на других портах, но при подключении клиента нужно будет указывать нестандартный порт.
Установка SoftEther VPN Server на Linux
Установка SoftEther VPN Server из исходного кода состоит из нескольких этапов. Сначала нужно скачать архив с официального сайта SoftEther или с GitHub-релиза. Например, для версии v4.44-9807-rtm команда будет выглядеть так:
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.44-9807-rtm/softether-vpnserver-v4.44-9807-rtm-2025.04.16-linux-x64-64bit.tar.gzПосле скачивания распакуйте архив:
tar -zxvf softether-vpnserver-v4.44-9807-rtm-2025.04.16-linux-x64-64bit.tar.gzПерейдите в каталог vpnserver и запустите компиляцию:
cd vpnserver
makeВо время компиляции будут заданы вопросы о лицензионном соглашении. На все вопросы отвечайте положительно (выберите пункт 1). После завершения компиляции задайте правильные права доступа:
chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmdТеперь можно проверить совместимость системы с SoftEther. Запустите ./vpncmd, выберите пункт 3 (Use of VPN Tools), затем выполните команду check. Если все проверки пройдут успешно (вы увидите "All checks passed"), значит, сервер сможет работать на этой системе.
Запустите сервер командой ./vpnserver start. Для удобства можно переместить файлы в /usr/local/vpnserver и настроить автозапуск через systemd или init.d.
Первичная настройка сервера через vpncmd
После запуска сервера необходимо выполнить первичную настройку. Для этого снова запустите ./vpncmd, но теперь выберите пункт 1 (Management of VPN Server or VPN Bridge). В качестве адреса укажите localhost (или localhost:порт, если стандартный порт 443 занят).
Первым делом установите пароль администратора сервера командой ServerPasswordSet. Этот пароль будет использоваться для всех последующих подключений к консоли управления. Выберите надёжный пароль и сохраните его в безопасном месте.
Далее нужно создать виртуальный хаб — логическую сеть, к которой будут подключаться клиенты. По умолчанию на сервере уже есть хаб DEFAULT, но рекомендуется удалить его и создать свой. Удаление выполняется командой HubDelete, создание — HubCreate. Например:
VPN Server>HubDelete
Name of Virtual Hub to delete: DEFAULT
VPN Server>HubCreate
Name of Virtual Hub to be created: VPN_1
Password: ****
Confirm input: ****После создания хаб появится в списке HubList. Затем переключитесь в контекст созданного хаба командой Hub VPN_1. Теперь можно создавать пользователей.
Для создания пользователя используйте команду UserCreate, указав имя пользователя. Затем задайте пароль командой UserPasswordSet. Пользователи могут использовать разные типы аутентификации: только пароль, пароль + сертификат, или сертификат. Для большинства случаев достаточно парольной аутентификации, но для повышенной безопасности рекомендуется использовать сертификаты.
Настройка протоколов L2TP/IPsec и OpenVPN
SoftEther поддерживает несколько протоколов одновременно, что позволяет подключаться клиентам с любых устройств. Для включения L2TP/IPsec выполните команду IpsecEnable в консоли управления сервером. Система запросит PSK (Pre-Shared Key) — секретную фразу, которую нужно будет указать на клиентах. Также можно включить L2TP без шифрования, но это не рекомендуется.
Для включения OpenVPN-совместимости используйте команду OpenVPNEnable. После этого SoftEther будет принимать подключения от стандартных OpenVPN-клиентов. Важно настроить брандмауэр, чтобы открыть необходимые порты:
- 5555/tcp — для управления сервером и подключения через собственный протокол SoftEther
- 443/tcp — для HTTPS-маскировки и SSTP
- 1194/udp — для OpenVPN
- 500/udp и 4500/udp — для IPsec IKE и NAT-T
Если используется ufw (Ubuntu/Debian), выполните:
ufw allow 5555/tcp
ufw allow 443/tcp
ufw allow 1194/udp
ufw allow 500/udp
ufw allow 4500/udp
ufw reloadДля firewalld (CentOS/RHEL):
firewall-cmd --permanent --add-port=5555/tcp
firewall-cmd --permanent --add-port=1194/udp
firewall-cmd --permanent --add-port=500/udp
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --reloadНе забудьте также настроить проброс портов на роутере, если сервер находится за NAT.
Создание сетевого моста и SecureNAT
Для того чтобы клиенты VPN могли обращаться к ресурсам локальной сети, необходимо настроить сетевой мост (Local Bridge) или использовать режим SecureNAT. Мост позволяет объединить виртуальный хаб с физическим сетевым интерфейсом, и тогда VPN-клиенты получают доступ к устройствам в той же подсети, как если бы они были подключены напрямую.
Для создания моста используйте команду BridgeCreate. Например:
BridgeCreate VPN_1 -device:eth0 -tap:yesЗдесь VPN_1 — имя хаба, eth0 — физический сетевой интерфейс сервера, -tap:yes — создание TAP-устройства. После создания моста проверьте его статус командой BridgeList. Если статус Operating, всё работает.
Обратите внимание: для работы моста требуется поддержка TUN/TAP в ядре. Если ваш VPS не поддерживает эти устройства, используйте SecureNAT. SecureNAT — это встроенный NAT и DHCP-сервер, который позволяет клиентам выходить в интернет через сервер без необходимости настройки моста. Для включения SecureNAT перейдите в контекст хаба и выполните SecureNatEnable.
SecureNAT автоматически назначает IP-адреса клиентам из заданного диапазона. По умолчанию используется подсеть 192.168.30.0/24, но её можно изменить. Рекомендуется отключить встроенный DHCP, если вы планируете назначать адреса вручную, чтобы избежать конфликтов.
Настройка клиентского подключения на Windows и Linux
Для подключения к SoftEther VPN можно использовать официальный клиент SoftEther VPN Client или стандартные средства операционной системы. На Windows проще всего установить SoftEther VPN Client и использовать VPN Server Manager для создания подключения.
В клиенте необходимо указать:
- Имя подключения (например, MyVPN)
- Адрес сервера (внешний IP или домен) и порт (по умолчанию 5555)
- Имя виртуального хаба
- Имя пользователя и пароль
- Тип аутентификации (обычная парольная или сертификат)
После создания подключения можно активировать его и проверить доступ к ресурсам сети. Для доступа к интернету через VPN-сервер может потребоваться добавить маршрут на клиенте. Например, в Windows:
route add 192.168.1.10 192.168.30.1 -pНа Linux клиент SoftEther устанавливается аналогично серверу, но с использованием пакета vpnclient. После установки запустите ./vpncmd, выберите пункт 2 (Management of VPN Client) и выполните:
AccountCreate MyVPN /SERVER:server-ip:5555 /HUB:main-hub /USERNAME:testuser
AccountPasswordSet MyVPN
AccountConnect MyVPNПроверить подключение можно командой ip addr show или curl ifconfig.me.
Автозапуск и управление службой
Чтобы VPN-сервер запускался автоматически после перезагрузки системы, необходимо настроить 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
[Install]
WantedBy=multi-user.targetПосле этого выполните:
systemctl daemon-reload
systemctl start vpnserver
systemctl enable vpnserverАналогично можно настроить автозапуск клиента, если он используется. Для клиента создайте сервис vpnclient.service с ExecStart и ExecStop, указывающими на соответствующие скрипты.
Управление сервером осуществляется через vpncmd. Для просмотра активных сессий используйте команду SessionList в контексте хаба. Для отключения клиента — SessionDisconnect. Также можно настроить политики безопасности для пользователей, ограничивающие скорость, время подключения и доступные протоколы.
Безопасность и дополнительные рекомендации
SoftEther VPN предоставляет множество возможностей для повышения безопасности. Во-первых, обязательно используйте сложные пароли для администратора и пользователей. Во-вторых, рассмотрите возможность использования сертификатов для аутентификации — это значительно усложняет несанкционированный доступ.
Для защиты от перебора паролей можно настроить политику блокировки после нескольких неудачных попыток. Это делается в настройках хаба или пользователя. Также рекомендуется ограничить доступ к серверу по IP-адресам с помощью файрвола.
Важно регулярно обновлять SoftEther до последних версий, так как в них исправляются уязвимости. Следите за официальным сайтом или GitHub-релизами.
Для мониторинга нагрузки используйте системные утилиты top, htop, vmstat. Логи SoftEther хранятся в каталоге /usr/local/vpnserver/ и могут быть полезны для диагностики проблем.
Не забывайте про резервное копирование конфигурационных файлов. В SoftEther конфигурация хранится в файле vpn_server.config. Регулярно сохраняйте его копию, чтобы быстро восстановить сервер в случае сбоя.
Типичные проблемы и их решение
При настройке SoftEther VPN могут возникнуть некоторые типичные проблемы. Одна из самых частых — ошибка подключения к консоли управления, когда порт 443 занят другой программой. В этом случае используйте альтернативный порт, например localhost:992 или localhost:5555.
Если клиенты не могут подключиться по L2TP/IPsec, проверьте, открыты ли порты 500 и 4500 UDP, и правильно ли указан PSK. Также убедитесь, что на сервере включён IPsec (команда IpsecEnable).
Проблемы с мостом часто возникают из-за отсутствия TUN/TAP устройств. Проверьте ядро: ls /dev/net/tun. Если устройства нет, используйте SecureNAT.
Если клиент подключается, но не получает доступ к интернету, проверьте настройки SecureNAT и маршрутизацию. Возможно, потребуется добавить маршрут на клиенте или настроить NAT на сервере.
Ещё одна частая ошибка — неправильно указанный порт при создании подключения. По умолчанию SoftEther использует порт 5555 для собственного протокола, но если вы изменили его, укажите актуальное значение.
Если ничего не помогает, обратитесь к логам сервера и клиента. Логи обычно содержат подробную информацию об ошибках.
Вопросы и ответы
Какие протоколы поддерживает SoftEther VPN?
SoftEther VPN поддерживает несколько протоколов одновременно: L2TP/IPsec, OpenVPN, MS-SSTP, EtherIP и собственный протокол SSL-VPN, который маскируется под HTTPS. Это позволяет подключаться с любых устройств, включая Windows, Linux, Android и iOS, без установки дополнительного ПО в большинстве случаев.
Нужен ли TUN/TAP для работы SoftEther?
Нет, SoftEther может работать без TUN/TAP-устройств, в отличие от OpenVPN. Это делает его идеальным для VPS-серверов, где виртуализация не поддерживает эти устройства. Однако для создания сетевого моста (Local Bridge) TUN/TAP всё же потребуется. Если их нет, используйте режим SecureNAT.
Как открыть порты для SoftEther VPN?
Необходимо открыть порты: 5555/tcp (управление и собственный протокол), 443/tcp (HTTPS/SSTP), 1194/udp (OpenVPN), 500/udp и 4500/udp (IPsec). На Ubuntu используйте ufw allow, на CentOS — firewall-cmd. Также не забудьте настроить проброс портов на роутере, если сервер за NAT.
Как настроить автозапуск SoftEther VPN Server?
Создайте systemd-сервис, например /etc/systemd/system/vpnserver.service, с параметрами ExecStart и ExecStop, указывающими на скрипты запуска и остановки. Затем выполните systemctl daemon-reload, systemctl start vpnserver и systemctl enable vpnserver для автозапуска при загрузке.
Что делать, если клиент не может подключиться по L2TP/IPsec?
Проверьте, что на сервере включён IPsec (команда IpsecEnable), правильно указан PSK, и открыты порты 500/udp и 4500/udp. Также убедитесь, что на клиенте выбран правильный тип аутентификации и указан верный пароль.
Можно ли использовать SoftEther для обхода блокировок?
Да, SoftEther может маскировать трафик под HTTPS, что затрудняет обнаружение VPN. Также поддерживается работа через ICMP и DNS-туннелирование. Однако эффективность зависит от конкретной сети и используемых методов фильтрации.
Как создать пользователя с сертификатом в SoftEther?
В консоли управления хабом выполните UserCreate, затем UserCertSet для привязки сертификата. Сертификат можно сгенерировать с помощью встроенных инструментов SoftEther или использовать внешний центр сертификации. После этого пользователь сможет подключаться, используя сертификат и пароль.