Автор: Редакция «VPN не работает»

Настройка Outline (Shadowsocks) на своём VPS: установка одной командой и менеджер ключей

Outline — это готовый сервер на базе протокола Shadowsocks, который вы поднимаете на собственном VPS одной командой и дальше управляете через графическую программу Outline Manager. Он нужен, чтобы шифровать свой трафик в публичных сетях, безопасно ходить в свою инфраструктуру и держать приватный канал между своими устройствами — без ручной правки конфигов.

Коротко. Арендуете VPS на Ubuntu, запускаете официальный скрипт установки Outline (одна строка в терминале), копируете полученную JSON-строку в Outline Manager на своём компьютере — и создаёте ключи для устройств кнопкой. Никакого редактирования конфигов вручную. Установка занимает 5–10 минут.

Что такое Outline и когда нужен

Outline — проект команды Jigsaw, представляющий собой удобную обвязку вокруг протокола Shadowsocks. Технически это средство шифрования сетевого трафика: клиент устанавливает зашифрованное соединение с вашим сервером, и весь обмен данными между устройством и сервером защищён современным алгоритмом (AEAD-шифрование). От «голого» Shadowsocks Outline отличается двумя вещами: серверная часть ставится одной командой, а управление доступами вынесено в графический Outline Manager с REST API.

Когда это уместно на практике:

Главный плюс Outline перед ручными протоколами — простота. Если для WireGuard нужно генерировать пары ключей и править .conf, то здесь всё делается кнопками. Сравнение с WireGuard есть в нашем гайде по WireGuard; общий разбор протоколов — в разделе настройка.

Что понадобится

Пошаговая настройка

Шаг 1. Подготовка сервера

Подключитесь к VPS по SSH и обновите систему. Docker инсталлятор поставит сам, но свежие пакеты и корректное время важны для валидности TLS-сертификата.

ssh root@ВАШ_IP_АДРЕС

# Обновляем систему
sudo apt update && sudo apt upgrade -y

# Ставим утилиты, которые пригодятся
sudo apt install -y curl wget

Если у вас включён фаервол ufw, заранее убедитесь, что SSH не потеряется:

sudo ufw allow 22/tcp

Шаг 2. Установка Outline Server одной командой

Запустите официальный скрипт установки. Он подтянет Docker, скачает образ Shadowbox и поднимет сервер:

sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh)"

По умолчанию инсталлятор выбирает два случайных высоких порта (management API и порт ключей) и сам добавляет правила в iptables. Если хотите, чтобы трафик шёл по «привычному» порту 443, а сертификат был выписан на домен, добавьте флаги:

sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh)" install_server.sh --keys-port=443 --hostname=ваш-домен.ru

По завершении скрипт выведет JSON-строку конфигурации — её нужно сохранить:

{
  "apiUrl": "https://ВАШ_IP:РАНДОМНЫЙ_ПОРТ/xxxxxxxxxxxxxxxxxxxxxx",
  "certSha256": "AABBCCDDEEFF00112233445566778899AABBCCDDEEFF00112233445566778899"
}

Скопируйте всю строку целиком (от { до }). Позже её всегда можно найти на сервере:

sudo cat /opt/outline/access.txt

Если вы пользуетесь ufw или облачным фаерволом провайдера, откройте два порта, которые скрипт показал в конце вывода (в примере ниже — замените на свои):

sudo ufw allow ПОРТ_API/tcp
sudo ufw allow ПОРТ_КЛЮЧЕЙ/tcp
sudo ufw allow ПОРТ_КЛЮЧЕЙ/udp

Шаг 3. Подключение сервера в Outline Manager

Скачайте и установите Outline Manager на свой компьютер с сайта getoutline.org. Запустите программу и в списке вариантов выберите «Set up Outline anywhere» (настроить где угодно).

Внизу окна будет поле для вставки конфигурации. Вставьте туда ту самую JSON-строку из шага 2 (с apiUrl и certSha256) и нажмите Done / Готово. Manager соединится с сервером по management API и покажет панель управления вашим сервером.

С этого момента терминал больше не нужен — всё управление доступами делается в графическом интерфейсе.

Шаг 4. Создание ключей и подключение устройств

В панели Outline Manager:

  1. Нажмите «Add new key» — программа создаст новый ключ доступа.
  2. Дайте ключу понятное имя (например, «Ноутбук» или «Телефон»), чтобы различать устройства.
  3. Нажмите на ключ и выберите «Share» — получите ссылку доступа вида:
ss://xxxxxxxxxxxxxxxxxxxxxxxx@ВАШ_IP:ПОРТ/?outline=1
  1. На устройстве установите Outline Client, нажмите «Add server» и вставьте эту ссылку. Подтвердите — соединение готово.

Совет: создавайте отдельный ключ на каждое своё устройство. Так в Manager видно расход трафика по каждому и при необходимости можно отозвать один ключ, не трогая остальные.

Проверка

Убедитесь, что всё работает корректно:

sudo docker ps | grep shadowbox

Вы должны увидеть запущенный контейнер shadowbox со статусом Up. Логи при необходимости:

sudo docker logs shadowbox
sudo ss -tulpn | grep -E 'shadow|outline'

Безопасность сервера

Поднятый сервер — это ваша инфраструктура, и защищать его нужно как любой боевой узел:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Частые вопросы

Ниже — короткие ответы на вопросы, которые чаще всего возникают при первой настройке Outline на своём VPS.

Чем Outline отличается от чистого Shadowsocks? Outline — это надстройка над Shadowsocks: тот же алгоритм шифрования, но с графическим менеджером ключей и REST API. Вам не нужно вручную править конфиги — вся выдача и отзыв доступов делается кнопками в Outline Manager.

Нужно ли открывать какие-то порты в фаерволе? Да. Инсталлятор по умолчанию выбирает два случайных высоких порта: один для management API, другой для трафика ключей. Он сам добавит правила в iptables, но если вы используете ufw или облачный фаервол провайдера, эти два порта нужно открыть вручную — они указаны в конце вывода установки.

Сколько устройств можно подключить к одному ключу? Технически один ключ доступа привязывается к одному устройству одновременно. Для нескольких своих устройств создайте в Outline Manager отдельный ключ на каждое — так проще следить за трафиком и при необходимости отозвать доступ точечно.

Можно ли поставить Outline на порт 443, чтобы трафик выглядел как обычный HTTPS? Да. При установке передайте флаг --keys-port=443 (и при желании --hostname=ваш-домен). Тогда порт ключей будет 443 — стандартный порт зашифрованного веба, что делает профиль трафика менее заметным для сетевого оборудования.

Чем Outline отличается от чистого Shadowsocks?

Outline — это надстройка над Shadowsocks: тот же алгоритм шифрования, но с графическим менеджером ключей и REST API. Вам не нужно вручную править конфиги — вся выдача и отзыв доступов делается кнопками в Outline Manager.

Нужно ли открывать какие-то порты в фаерволе?

Да. Инсталлятор по умолчанию выбирает два случайных высоких порта: один для management API, другой для трафика ключей. Он сам добавит правила в iptables, но если вы используете ufw или облачный фаервол провайдера, эти два порта нужно открыть вручную — они указаны в конце вывода установки.

Сколько устройств можно подключить к одному ключу?

Технически один ключ доступа привязывается к одному устройству одновременно. Для нескольких своих устройств создайте в Outline Manager отдельный ключ на каждое — так проще следить за трафиком и при необходимости отозвать доступ точечно.

Можно ли поставить Outline на порт 443, чтобы трафик выглядел как обычный HTTPS?

Да. При установке передайте флаг --keys-port=443 (и при желании --hostname=ваш-домен). Тогда порт ключей будет 443 — стандартный порт зашифрованного веба, что делает профиль трафика менее заметным для сетевого оборудования.