Outline использует два типа ключей доступа: статические и динамические. В случае статического ключа доступа вся информация, необходимая для подключения к серверу, хранится в самом ключе. В случае динамического – в ключе кодируется лишь местоположение информации о подключении, что позволяет хранить ее удаленно и при необходимости изменять. Это означает, что вы можете изменять конфигурацию сервера без необходимости создавать и распространять новые ключи среди пользователей. В этом руководстве описывается, как применять динамические ключи доступа для более удобного и эффективного управления сервером Outline.
Вы можете указывать информацию о доступе для динамических ключей в одном из описанных ниже форматов.
С помощью ссылки ss://
Для клиента Outline 1.8.1 или более поздних версий
Вы можете использовать уже существующую ссылку ss://
. Этот способ подходит, если вам не требуется часто менять сервер, порт или метод шифрования, но важно сохранить возможность менять адрес сервера.
Пример:
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1
С помощью объекта JSON
Для клиента Outline 1.8.0 или более поздних версий
Этот способ дает больше свободы в управлении подключением пользователей к Outline, позволяя изменять сервер, порт, пароль и метод шифрования.
Пример:
{
"server": "outline-server.example.com",
"server_port": 8388,
"password": "example",
"method": "chacha20-ietf-poly1305"
}
- server: домен или IP-адрес вашего VPN-сервера.
- server_port: номер порта, на котором работает ваш VPN-сервер.
- password: пароль, необходимый для подключения к VPN.
- method: метод шифрования, используемый VPN. Список поддерживаемых AEAD-шифров можно найти в Shadowsocks.
С помощью объекта YAML
Для клиента Outline 1.15.0 или более поздних версий
Этот способ напоминает предыдущий вариант с JSON, но обеспечивает ещё большую гибкость благодаря расширенному формату конфигурации Outline. Он позволяет изменять сервер, порт, пароль, метод шифрования и другие настройки.
Пример:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint: outline-server.example.com:8388
cipher: chacha20-ietf-poly1305
secret: example
udp:
$type: shadowsocks
endpoint: outline-server.example.com:8388
cipher: chacha20-ietf-poly1305
secret: example
- transport: определяет используемые транспортные протоколы (в данном случае TCP и UDP).
- tcp/udp: указывает настройки для каждого протокола.
- $type: обозначает тип конфигурации (здесь это Shadowsocks).
- endpoint: домен или IP-адрес и порт вашего VPN-сервера.
- secret: пароль, необходимый для подключения к VPN.
- cipher: метод шифрования, используемый VPN. Список поддерживаемых AEAD-шифров можно найти в Shadowsocks.
Ознакомьтесь с Конфигурацией ключей доступа, чтобы узнать обо всех способах настройки доступа к вашему серверу Outline, включая Transport, Endpoint, Dialer и Packet Listener.
Как извлечь информацию о доступе из статического ключа
Если у вас уже есть статический ключ доступа, вы можете извлечь из него информацию в формате JSON или YAML для создания динамического ключа. Статические ключи доступа имеют следующий формат:
SS-URI = "ss://" userinfo "@" hostname ":" port [ "/" ] [ "#" tag ]
userinfo = websafe-base64-encode-utf8(method ":" password)
method ":" password
Пример:
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1
- Сервер:
outline-server.example.com
- Порт сервера:
8388
Информация о пользователе:
Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl
Данные в формате base64, декодированные с помощью специального инструмента, например Набора инструментов администратора Google.- Метод шифрования:
chacha20-ietf-poly1305
- Пароль:
example
- Метод шифрования:
Как выбрать хостинговую платформу
Теперь, когда вы знаете, как создавать динамические ключи доступа, важно выбрать подходящую платформу для их хостинга. Учитывайте такие факторы, как надежность, безопасность, удобство использования и устойчивость к цензуре. Чтобы сделать правильный выбор, ответьте на следующие вопросы: Сможет ли платформа стабильно предоставлять информацию о ключах доступа без простоев? Обеспечивает ли платформа достаточную защиту конфигурации? Насколько легко управлять информацией о ключах доступа на платформе? Доступна ли платформа в регионах с цензурой в интернете?
Если доступ к информации может быть ограничен, подумайте об использовании устойчивых к цензуре платформ, таких как Google Диск, pad.riseup.net, Amazon S3 (с именем ресурса по пути), Netlify или приватные gist в GitHub. Выбирайте платформу, исходя из особенностей вашего развертывания. Также учитывайте требования к доступности и безопасности.