Настройка сервера Outline VPN для обхода блокировок
Outline является бесплатным инструментом с открытым исходным кодом для запуска собственного VPN-сервиса на VPS. Он направляет трафик через ваш сервер по протоколу Shadowsocks и использует механизмы, которые затрудняют обнаружение и блокировку этого трафика. В этой инструкции показано, как установить сервер Outline на Linux VPS, подключить его к Outline Manager, создать ключи доступа и подключить клиентские устройства.
Что такое Outline и как он работает
Outline состоит из трёх частей:
- Outline Server: работает на VPS в Docker-контейнере и обрабатывает зашифрованный трафик;
- Outline Manager: приложение для Windows, macOS и Linux, через которое вы управляете сервером и создаёте ключи доступа;
- Outline Client: приложение для Windows, macOS, Linux, iOS и Android, которое подключает устройство к серверу по ключу доступа.
Outline использует Shadowsocks с обязательным шифрованием AEAD, защитой от активного зондирования и повторного воспроизведения пакетов, а также пакетами переменного размера. Сервером управляете только вы, а ключи доступа передаёте напрямую тем людям и устройствам, которым разрешаете подключение. Но ни один VPN- или прокси-протокол не устойчив ко всем способам блокировки. Если сервер заблокируют, можно развернуть другой сервер Outline и создать новые ключи доступа.
Outline защищает трафик от наблюдения в сети, но не является средством анонимности. Сайты по-прежнему могут узнать вас, когда вы входите в аккаунт, или по отпечатку браузера и устройства.
Outline запустила в 2018 году Jigsaw, инкубатор Google. С 2026 года проект поддерживает Outline Foundation, независимая некоммерческая организация. Outline остаётся бесплатным и открытым.
Outline почти не нагружает систему, поэтому для него достаточно бюджетного VPS. INTROSERV предлагает Linux VPS в локациях в Европе, Северной Америке, Азии и Австралии.
Что понадобится
Понадобится:
- VPS или выделенный сервер с процессором x86_64 и публичным IP-адресом;
- актуальный дистрибутив Linux с поддержкой Docker, например Ubuntu или Debian;
- доступ root или пользователь с правами sudo;
- компьютер с Windows, macOS или Linux для Outline Manager;
- устройство, на которое вы установите Outline Client.
Если Docker не установлен, скрипт установки предложит установить его автоматически с помощью официального скрипта get.docker.com.
Установите Outline Manager
Скачайте Outline Manager для своей операционной системы с официального сайта Outline, установите и откройте его. На экране настройки сервера найдите Set up Outline anywhere (вариант Advanced для любого провайдера) и нажмите Set up.

Outline Manager покажет команду установки сервера. Скопируйте её.

Актуальная команда выглядит так:
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh)"
Установите сервер Outline
Подключитесь к серверу по SSH. Подробнее см. Подключение через SSH. Вставьте скопированную команду и нажмите Enter.

Если wget не установлен, установите его и снова запустите команду установки. В Ubuntu и Debian:
sudo apt update sudo apt install -y wget
Скрипт проверит, установлен ли Docker. Если нет, он предложит его установить. Нажмите Y и Enter.

Затем скрипт запустит два контейнера: shadowbox, в котором работают сервер Outline и его API управления, и watchtower, который автоматически обновляет сервер. Установка обычно занимает от 2 до 3 минут.
После завершения установки в консоли появится сообщение CONGRATULATIONS! Your Outline server is up and running и зелёная строка в фигурных скобках:
{"apiUrl":"https://203.0.113.10:12345/AbCdEfGhIjKlMnOp","certSha256":"1A2B3C..."} Make sure to open the following ports on your firewall, router or cloud provider: - Management port 12345, for TCP - Access key port 54321, for TCP and UDP
На вашем сервере значения будут другими. Скопируйте всю строку вместе с фигурными скобками. Её нужно будет вставить в Outline Manager.

Строка apiUrl содержит данные для доступа к API управления сервером Outline. Любой, кто её получит, сможет управлять сервером, в том числе создавать и удалять ключи доступа. Храните её в секрете: не публикуйте и не пересылайте по незащищённым каналам. Если вы её потеряете, она хранится на сервере в файле /opt/outline/access.txt.
Под строкой скрипт выводит два порта, которые должны быть доступны из интернета: порт управления (TCP) и порт ключей доступа (TCP и UDP). Оба порта выбираются случайно при установке. Запишите их для следующего шага.
Порты и адрес можно задать самостоятельно, добавив флаги в конец команды установки. Например, --keys-port=443 назначает ключам доступа порт 443 (TCP и UDP). Это помогает, если сеть блокирует нестандартные порты, но порт 443 не делает трафик Shadowsocks неотличимым от HTTPS. Флаг --hostname=vpn.example.com заставляет ключи доступа использовать доменное имя вместо IP-адреса. Если позже вы перенесёте сервер на новый IP-адрес, обновите DNS-запись, и существующие ключи смогут продолжить работу. Тогда команда выглядит так:
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
Откройте порты в файрволе
В зависимости от дистрибутива Linux и настроек сети входящие подключения может блокировать файрвол. Если вы используете файрвол, разрешите порты, указанные в выводе скрипта установки. Замените 12345 на порт управления, а 54321 на порт ключей доступа.
Для UFW в Ubuntu и Debian:
sudo ufw allow 12345/tcp sudo ufw allow 54321/tcp sudo ufw allow 54321/udp

Если у вашего компьютера статический IP-адрес, порт управления можно открыть только для этого адреса, например sudo ufw allow from 198.51.100.7 to any port 12345 proto tcp. Клиентам порт управления не нужен.
Для firewalld:
sudo firewall-cmd --permanent --add-port=12345/tcp sudo firewall-cmd --permanent --add-port=54321/tcp sudo firewall-cmd --permanent --add-port=54321/udp sudo firewall-cmd --reload
Если порт управления закрыт, Outline Manager не сможет подключиться к серверу. Если закрыт порт ключей доступа, клиенты не смогут подключиться, хотя сервер работает. Если скрипт выводит BLOCKED рядом с Checking host firewall, убедитесь, что оба порта доступны из интернета.

Подключите сервер к Outline Manager
Вернитесь в Outline Manager, вставьте скопированную строку в поле на шаге 2 и нажмите Done.

Сервер появится в списке слева. На его странице отображаются ключи доступа и объём использованного трафика.

В Outline Manager можно добавить несколько серверов, например VPS в разных локациях, и управлять ими из одного окна.
Создайте и передайте ключи доступа
Первый ключ доступа создаётся при установке автоматически. Чтобы создать ключ для другого человека или устройства, нажмите Add new key.

Чтобы переименовать ключ, например по имени того, кто будет им пользоваться, откройте меню ключа (три точки) и выберите Rename. В этом же меню можно задать лимит трафика для этого ключа. В настройках сервера можно задать лимит по умолчанию для всех ключей.

Чтобы получить ключ для клиента, нажмите значок Share рядом с ключом.

Скопируйте ключ доступа. Он начинается с ss:// и содержит адрес сервера, порт и секрет доступа. Нажмите Done.
Ключ доступа работает как пароль. Передавайте его только по закрытому каналу. Если ключ попал к посторонним, удалите его в Outline Manager и создайте новый: удалённый ключ сразу перестаёт работать.
Создавайте отдельный ключ для каждого человека. Так вы будете видеть трафик по каждому ключу и сможете отключить одного пользователя, не затрагивая остальных.
Подключите клиентское устройство
Скачайте Outline Client с официального сайта Outline и установите его на устройство. В приложении нажмите кнопку с плюсом или Add server, вставьте ключ доступа и нажмите Confirm.

Нажмите Connect. При первом подключении операционная система попросит разрешить настройку VPN. Подтвердите это.


Чтобы проверить подключение, откройте в браузере сервис, который показывает ваш IP-адрес, например ifconfig.me. Он должен показать IP-адрес вашего VPS.
Управление и обновление сервера
Контейнер watchtower раз в час проверяет, вышла ли новая версия сервера Outline, и устанавливает её автоматически.
Чтобы проверить, что оба контейнера работают, выполните:
sudo docker ps
В списке должны быть shadowbox и watchtower со статусом Up. Если сервер не работает, посмотрите его журнал:
sudo docker logs shadowbox
Чтобы полностью удалить Outline с сервера, удалите контейнеры и каталог с данными:
sudo docker rm -f shadowbox watchtower sudo rm -rf /opt/outline
Эти команды безвозвратно удаляют состояние сервера Outline и все ключи доступа из /opt/outline. Отменить это нельзя: убедитесь, что они вам больше не нужны. Клиенты не смогут подключиться, пока вы не установите сервер заново и не выдадите новые ключи.
Outline может пригодиться, когда обычные VPN-протоколы в вашей сети заблокированы. Если нужен классический VPN-протокол, см. Персональный VPN-сервер WireGuard.