Запуск VpnHood! SERVER в Docker
Запустите сервер в контейнере на любом компьютере с Linux и Docker. Установка выполняется одной командой — в автономном режиме или под управлением, а контейнер обеспечивает непрерывную работу и автообновление.
Перед началом работы
- Компьютер или сервер с Linux и публичным IP-адресом (архитектура x64 или arm64 — образ поддерживает обе).
- Права root-доступа.
- Docker с плагином Compose. Установщик может настроить его автоматически на Ubuntu, Debian и производных дистрибутивах.
- Открытый TCP-порт
443в брандмауэре системы и у хостинг-провайдера. Контейнер использует сеть хоста напрямую, поэтому сервер слушает порт хоста.
Установка сервера под управлением
В VpnHood! MANAGER откройте раздел Servers, нажмите Add, задайте имя сервера и нажмите Create. Среди способов установки выберите Install on Linux manually by running a command. В появившейся команде замените VpnHoodServer-linux.sh на VpnHoodServer.docker.sh и выполните её на сервере. Контейнер установится с нужными параметрами подключения к MANAGER и задаст тот же вопрос, что и при автономной установке ниже.
Для уже созданного контейнера выберите Install Manually by configuring appsettings. Сохраните параметры из MANAGER в файл /opt/VpnHoodServer/storage/appsettings.json на хосте и перезапустите контейнер командой sudo docker restart VpnHoodServer.
Затем создайте ключи доступа для своих устройств в MANAGER в разделе Access Tokens.
Установка автономного сервера
Выполните эту команду. Она загрузит Compose-файл, запустит контейнер с сервером и задаст один вопрос.
sudo su -c "bash <( wget -qO- https://github.com/vpnhood/VpnHood.App.Server/releases/latest/download/VpnHoodServer.docker.sh)"
При появлении запроса Install Docker (y/n)? введите y для установки Docker или n, если он уже установлен.
Для автоматической установки в скриптах без подтверждения. Опустите параметр -install-docker, если Docker уже настроен.
sudo su -c "bash <( wget -qO- https://github.com/vpnhood/VpnHood.App.Server/releases/latest/download/VpnHoodServer.docker.sh) -install-docker -q"
Сервер сохраняет настройки, ключи и журналы в каталоге /opt/VpnHoodServer/storage на хосте, поэтому они не пропадут при пересоздании контейнера.
Создание ключа доступа
Выполните эту команду на сервере. Ключ будет сгенерирован внутри контейнера с актуальными настройками сервера.
sudo docker exec VpnHoodServer /app/vhsupervisor gen
Например, ключ для одного телефона
sudo docker exec VpnHoodServer /app/vhsupervisor gen -name Phone -maxClient 1
Результат и параметры такие же, как и при установке без Docker: скопируйте строку под заголовком --- AccessKey ---. Ограничения и параметры ключей описаны в разделе Создание первого ключа доступа.
Подключение
Установите VpnHood! CLIENT на каждое устройство, добавьте ключ и подключайтесь.
Запуск, остановка и проверка сервера
Имя контейнера — VpnHoodServer. Docker автоматически перезапускает его при перезагрузке системы, а внутри контейнера сервер перезапускается при сбоях.
sudo docker logs VpnHoodServer
sudo docker stop VpnHoodServer
sudo docker start VpnHoodServer
Этот же лог сохраняется на хосте по пути /opt/VpnHoodServer/storage/logs/server.log.
Настройка конфигурации
Сервер считывает настройки из /opt/VpnHoodServer/storage/appsettings.json. Внесите изменения в файл и перезапустите контейнер командой sudo docker restart VpnHoodServer.
Если редактирование файла недоступно, задайте всё содержимое appsettings.json в переменной окружения VH_APPSETTINGS. Сервер будет использовать её вместо файла.
В статьях Настройка IP-адресов сервера и Подключение через домен подробно рассмотрены самые популярные настройки.
Обновления
Сервер обновляется автоматически прямо внутри контейнера. Проверка версий выполняется при запуске и каждые 12 часов, после чего происходит мягкий перезапуск.
Чтобы зафиксировать текущую версию, укажите VH_AUTO_UPDATE=0 в переменных окружения контейнера.
Иногда для работы релиза нужен обновленный базовый образ. В этом случае сервер сохранит текущую версию, а в логе появится сообщение Pull the latest image! Просто выполните команду установки еще раз: она скачает свежий образ и пересоздаст контейнер с сохранением всех настроек и ключей.
Если установка выполнялась старой версией скрипта, запустите команду установки заново. Она перенесет сервер на актуальный образ и удалит устаревший контейнер VpnHoodUpdater.
Ручное создание контейнера
Если вы управляете контейнерами вручную, используйте конфигурацию, аналогичную скрипту установки: запускайте контейнер в сети хоста (host network).
sudo docker run -d --name VpnHoodServer --network host --restart always --stop-timeout 30 -v /opt/VpnHoodServer/storage:/app/storage vpnhood/vpnhoodserver
Для перехода на новый образ загрузите vpnhood/vpnhoodserver и пересоздайте контейнер.