[GH-ISSUE #2297] Возможность получения конфигурации по сети #1014

Open
opened 2026-10-13 20:32:51 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @smpl on GitHub (Feb 28, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/2297

Запрос нового функционала, потенциально полезного многим.

Хотелось бы иметь возможность получать настройки клиента по сети, со специального сайта (по https с токеном), подобный механизм в других называется subscription.

Это может быть полезно в следующей ситуации когда хочется сменить настройки (сервера адрес и тд) у людей которые далеки от техники (родители, дети).

Каждый раз приезжать к родителям и конфигурировать устройства не очень удобно.

Соотвественно в клиент надо добавить url (https://example.com/amnezia) по которому получать настройки (тоже самое в base64 вставляется в клиент), а также возможность добавить кастомный заголовок имя и значение например (Authorization: Bearer {mama}) чтобы аутедентифицировать.

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

Тогда все настройки можно будет осуществляться на одном сервере, сам сервер создавать нет необходимости

Originally created by @smpl on GitHub (Feb 28, 2026). Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/2297 Запрос нового функционала, потенциально полезного многим. Хотелось бы иметь возможность получать настройки клиента по сети, со специального сайта (по https с токеном), подобный механизм в других называется subscription. Это может быть полезно в следующей ситуации когда хочется сменить настройки (сервера адрес и тд) у людей которые далеки от техники (родители, дети). Каждый раз приезжать к родителям и конфигурировать устройства не очень удобно. Соотвественно в клиент надо добавить url (https://example.com/amnezia) по которому получать настройки (тоже самое в base64 вставляется в клиент), а также возможность добавить кастомный заголовок имя и значение например (Authorization: Bearer {mama}) чтобы аутедентифицировать. Получение актуальных настроек сделать во время включения клиента, запрашивая актуальный конфиг и устанавливая его в подключение. Тогда все настройки можно будет осуществляться на одном сервере, сам сервер создавать нет необходимости
Author
Owner

@rikurikuu commented on GitHub (Mar 1, 2026):

Плюсую.

Я уже давно с этим разбирался, когда писал API-сервер AmneziaWG для собственных нужд, и подзабыл особенности реализации, но общая идея такая.

Суть в том, что в клиенте такой функционал есть. На самом деле даже есть в двух вариантах - API v1 и v2. Я пытался его реверс-инженернуть.

В ссылку типа vpn://AAAA (можете в Телеграм боте посмотреть пример) аккуратно запаковывается url сервера с токеном, и с этого сервера затем клиент ожидает запрос. Таким образом работают подписки у официальных серверов самой Амнезии.

Я уже не помню особенностей, но в прошлый раз я кажется упёрся в то, что API v1 не позволяет получать профили awg 2.0, а API v2 гвоздями прибит к сертификатам Амнезии, и соответственно, заточен под работу только на официальных серверах. Ну и клиент при использовании API v1 постоянно ругается на легаси, и там в коде прям написано, что его могут дропнуть в любой момент, так что с точки зрения UX это супернеудобно.

Хотелось бы собраться сообществом, продумать структуру API-запросов, и сделать PR в официальный клиент. Поддержка API-запросов для third-party серверов действительно очень нужна.

Из-за отсутствия API-вызовов мне пришлось городить весьма громоздкое решение, как шарить по рядовым пользователям AWG 2 профили, чтобы они могли их импортировать и не запутаться. У AWG 2 уже слишком большие конфиги для qr-кодов.

<!-- gh-comment-id:3981158389 --> @rikurikuu commented on GitHub (Mar 1, 2026): Плюсую. Я уже давно с этим разбирался, когда писал API-сервер AmneziaWG для собственных нужд, и подзабыл особенности реализации, но общая идея такая. Суть в том, что в клиенте такой функционал есть. На самом деле даже есть в двух вариантах - API v1 и v2. Я пытался его реверс-инженернуть. В ссылку типа `vpn://AAAA` (можете в Телеграм боте посмотреть пример) аккуратно запаковывается url сервера с токеном, и с этого сервера затем клиент ожидает запрос. Таким образом работают подписки у официальных серверов самой Амнезии. Я уже не помню особенностей, но в прошлый раз я кажется упёрся в то, что API v1 не позволяет получать профили awg 2.0, а API v2 гвоздями прибит к сертификатам Амнезии, и соответственно, заточен под работу только на официальных серверах. Ну и клиент при использовании API v1 постоянно ругается на легаси, и там в коде прям написано, что его могут дропнуть в любой момент, так что с точки зрения UX это супернеудобно. Хотелось бы собраться сообществом, продумать структуру API-запросов, и сделать PR в официальный клиент. Поддержка API-запросов для third-party серверов действительно очень нужна. Из-за отсутствия API-вызовов мне пришлось городить весьма громоздкое решение, как шарить по рядовым пользователям AWG 2 профили, чтобы они могли их импортировать и не запутаться. У AWG 2 уже слишком большие конфиги для qr-кодов.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amnezia-client#1014
No description provided.