Outline VPN на своём сервере: установка, Outline Manager и ключи доступа

Сервер Outline (Shadowsocks) в Docker одной командой, подключение к Outline Manager, выдача ключей ss://, управление через API без Manager, брандмауэр и удаление. Debian 12, Ubuntu 24.04.

21 октября 2026 г.·4 мин чтения·outline, shadowsocks, docker

Outline — бесплатный VPN от Jigsaw (подразделение Google). Три части: сервер, программа Outline Manager для управления и Outline Client для подключения. Главный плюс — простота: сервер ставится одной командой, а ключ доступа — одна строка, которую достаточно отправить человеку, и у него всё заработает. Инструкция для сервера Outline 1.12.x на Debian 12 и Ubuntu 24.04.

Как работает Outline и где его предел

Внутри — протокол Shadowsocks. У него нет узнаваемого рукопожатия: соединение зашифровано с первого байта и для наблюдателя выглядит как поток случайных данных. Провайдер не видит ни сайтов, ни самого факта использования конкретной программы — если смотреть только на содержимое.

Но отсутствие структуры само стало признаком. Обычный трафик почти всегда начинается с понятного заголовка вроде TLS ClientHello, и соединение «без лица» системы фильтрации научились помечать как подозрительное. Shadowsocks входит в список протоколов, которые в России планировали ограничивать, и пользователи периодически сообщают о его блокировке, чаще в мобильных сетях. Поэтому Outline хорош там, где важна простота — семья, небольшая команда. Если блокировки в вашей сети жёсткие, надёжнее протоколы с маскировкой под сайт: VLESS Reality или Amnezia.

Управление сервером идёт через API. При установке создаётся секретный адрес управления и самоподписанный сертификат; Outline Manager подключается по этому адресу и сверяет отпечаток. Строка, которую выдаёт установщик, — одновременно адрес и пароль к серверу.

Что нужно

  • Сервер на tanaka.host с Debian 12 или Ubuntu 24.04. Нагрузка минимальная: сервер Outline занимает около 80 МБ памяти.
  • Вход по SSH под root.
  • Outline Manager на компьютере: Windows, macOS, Linux.

1. Docker

Сервер Outline живёт в контейнерах. Официальный скрипт (подробнее — в статье установка Docker):

# Устанавливаем Docker официальным скриптом
curl -fsSL https://get.docker.com | sh

2. Установка Outline

Запускаем от root без sudo: на чистом Debian 12 sudo может не быть, и команда, которую показывает Outline Manager, упадёт с sudo: command not found.

# Официальный скрипт установки сервера Outline
bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-apps/master/server_manager/install_scripts/install_server.sh)"

Через минуту скрипт напишет CONGRATULATIONS! Your Outline server is up and running и выведет зелёную строку в фигурных скобках — начинается с {"apiUrl": и заканчивается "}. Ниже — два случайно выбранных порта:

  • Management port — порт управления, к нему подключается Outline Manager (TCP).
  • Access key port — порт для устройств с ключами, нужен и по TCP, и по UDP.

Строка apiUrl — полный доступ к серверу. Кто её получит, сможет создавать и удалять ключи. Вставьте её в Outline Manager и нигде не публикуйте. Потеряли — она лежит на сервере в /opt/outline/access.txt.

3. Подключите сервер к Outline Manager

  1. Откройте Outline Manager.
  2. В выборе сервера — «Настройте Outline где угодно» (Set up Outline anywhere).
  3. Команду установки, которую покажет программа, вы уже выполнили — пропустите.
  4. Вставьте всю зелёную строку вместе с фигурными скобками в поле «Вставьте сюда информацию, полученную при выполнении скрипта установки».
  5. «Готово».

Сервер появится в списке со счётчиками трафика по ключам.

4. Ключи доступа

Каждому человеку — свой ключ: его можно ограничить или отключить, не трогая остальных.

  1. «Добавить новый ключ».
  2. «Переименовать» → понятное имя.
  3. «Поделитесь доступом» → «Копировать ключ доступа».

Ключ — строка вида ss://.... Передайте её надёжным каналом. Лимит трафика на ключ — пункт «Задать лимит трафика».

5. Подключите устройство

Outline Client для всех платформ — на getoutline.org.

  1. Установите и откройте.
  2. «Добавить сервер».
  3. Вставьте ключ, подтвердите.
  4. «Подключить».

Если ключ уже в буфере обмена, приложение само предложит его добавить («Обнаружен ключ доступа»). Проверка — https://api.ipify.org показывает IP сервера.

Управление ключами без Outline Manager

Всё, что делает Manager, доступно через тот же API прямо с сервера:

# Адрес API из файла настроек Outline
API=$(grep apiUrl /opt/outline/access.txt | cut -d: -f2-)

# Создать ключ. В ответе будет поле accessUrl, это и есть ключ ss://
curl -sk -X POST "$API/access-keys"

# Назвать ключ номер 1 именем phone
curl -sk -X PUT "$API/access-keys/1/name" -d name=phone

# Ограничить ключ номер 1 объёмом 50 ГБ
curl -sk -X PUT -H "Content-Type: application/json" "$API/access-keys/1/data-limit" -d '{"limit":{"bytes":50000000000}}'

# Показать все ключи
curl -sk "$API/access-keys"

# Удалить ключ номер 2
curl -sk -X DELETE "$API/access-keys/2"

Ключ -k нужен из-за самоподписанного сертификата API.

Брандмауэр и обновления

Если включён UFW, откройте оба порта из вывода установщика — номера у вас свои:

# Порт управления, только TCP
ufw allow 56117/tcp

# Порт ключей, TCP и UDP
ufw allow 37686/tcp
ufw allow 37686/udp

Обновлять Outline вручную не нужно: вместе с сервером установщик запускает контейнер Watchtower, который раз в час проверяет новые версии и обновляет shadowbox сам.

Частые ошибки

sudo: command not found. На сервере нет sudo, а вы и так root — запускайте команду без sudo, как в шаге 2.

Outline Manager не подключается к серверу.

  • Строка вставлена целиком, с фигурными скобками.
  • Порт управления открыт в брандмауэре.
  • docker ps показывает контейнеры shadowbox и watchtower в статусе Up.

Приложение подключается, но сайты не открываются.

  • Порт ключей открыт и по TCP, и по UDP.
  • Попробуйте другую сеть: если на Wi-Fi работает, а на мобильном нет — оператор режет Shadowsocks. Тогда VLESS Reality.
  • Дальше — по шагам из статьи VPN не подключается.

Полностью удалить Outline.

docker rm -f shadowbox watchtower
rm -rf /opt/outline

Все ключи после этого перестанут работать.

Полезные команды

Команда Что делает
docker logs --tail 50 shadowbox Журнал сервера
cat /opt/outline/access.txt apiUrl и отпечаток сертификата
curl -sk "$API/server" Имя, версия и порт сервера
curl -sk "$API/metrics/transfer" Трафик по каждому ключу в байтах