diff --git a/docs/en/profiles-and-routing.md b/docs/en/profiles-and-routing.md index 28a6f61..4247d41 100644 --- a/docs/en/profiles-and-routing.md +++ b/docs/en/profiles-and-routing.md @@ -10,7 +10,7 @@ or use the move actions. Selecting a different profile while connected reconnect | Scope | Settings | | --- | --- | -| Per profile | Transport, server/Jump addresses, credentials and trust, DNS, IPv6, HTTP/3 preference | +| Per profile | Transport, server/Jump addresses, credentials and trust, DNS, IPv6, HTTP/3 preference, optional authentication check host | | Shared across profiles | App routing, LAN bypass, fingerprints, SSH authentication/keepalive/channel/rotation settings, failover | | Device-local, not transferred | MTU, strict source validation and level, language, traffic units, update preferences; DNS security approvals stay local to each profile | @@ -52,7 +52,12 @@ Some proxies return a decoy website or stall instead of exposing an authenticati For a regular **HTTPS** profile, **Authentication check host** is optional. Enter the operator-provided knock hostname, without a URL, path or port. During HTTPS-over-TCP diagnostics the app sends an authenticated CONNECT to that hostname on port 443 through the proxy, bounded to five seconds. An unmasked `407` confirms an authentication rejection and stops the check. `200` only confirms that CONNECT was accepted; the ordinary end-to-end HTTPS test still runs. Other statuses and timeouts are inconclusive and do not get labelled as wrong credentials. -A blank field adds no probe request. The field is imported/exported as per-profile `proxy.knockHost` (legacy `browser.knockHost` is accepted when the shared field is absent; an explicit empty shared value disables the probe); other browser options remain ignored. This probe applies to regular HTTPS over TCP, not HTTPS Jump or selected HTTP/3. Editing the diagnostic host does not reconnect a running VPN; a new check uses it for the same runtime endpoint while preserving runtime credentials. It adds no per-packet checks. +A blank field adds no probe request. JSON uses `profiles[].proxy.knockHost`; legacy +`profiles[].browser.knockHost` is accepted only when the shared field is absent. An +explicit empty shared value disables the probe, even if the legacy alias is set. +Other browser options remain ignored. + +This probe applies to regular HTTPS over TCP, not HTTPS Jump or selected HTTP/3. Editing the diagnostic host does not reconnect a running VPN; a new check uses it for the same runtime endpoint while preserving runtime credentials. It adds no per-packet checks. The shared diagnostic log records `proxy_auth_probe` start, skipped/accepted/rejected/inconclusive outcome, HTTP status, elapsed time and safe failure class. It contains neither the probe/proxy hostname nor IPs, usernames, passwords or response bodies. @@ -116,7 +121,8 @@ HTTPS/MASQUE/SOCKS5 endpoints; use JSON for SSH, Jump and other settings. Passwords and SSH private keys are optional export choices. Omitted secrets preserve existing values only for the same endpoint/account; explicit empty values clear them. URL query tokens remain in JSON even when passwords are omitted. Exported credentials/keys are readable: protect -the file. A JSON export is not a full app backup. [Schemas and examples](../../config-schema/). +the file. A JSON export is not a full app backup. [Pinned schemas and examples](../../config-schema/); +[complete field reference](https://github.com/andre487/MegaProxyConfig/blob/main/docs/field-reference.md). **Settings → Traffic units** selects IEC (default, powers of 1024: KiB/MiB) or SI (1000: KB/MB) for totals and speeds; traffic-limit inputs remain in MiB. Language is selected separately diff --git a/docs/en/subscriptions.md b/docs/en/subscriptions.md index 627e510..2a0820f 100644 --- a/docs/en/subscriptions.md +++ b/docs/en/subscriptions.md @@ -85,3 +85,8 @@ property from the file; this preserves any subscription already configured on th The complete local profile store is limited to 1,000 profiles, 4,194,304 characters before encoding, and 8 MiB of encoded JSON. Imports, edits and subscription refreshes exceeding these limits fail without replacing the previous configuration. + +The optional authentication-check host follows the same endpoint/account boundary: +an omitted `proxy.knockHost` (and absent legacy `browser.knockHost`) retains the +local value only for the same account. An explicit empty shared field clears it. +Changing only this diagnostic host does not require a VPN reconnect. diff --git a/docs/ru/profiles-and-routing.md b/docs/ru/profiles-and-routing.md index 702e9f9..5a0c106 100644 --- a/docs/ru/profiles-and-routing.md +++ b/docs/ru/profiles-and-routing.md @@ -11,7 +11,7 @@ | Область | Настройки | | --- | --- | -| Профиль | Транспорт, адреса сервера/Jump, авторизация и доверие, DNS, IPv6, предпочтение HTTP/3 | +| Профиль | Транспорт, адреса сервера/Jump, авторизация и доверие, DNS, IPv6, предпочтение HTTP/3, необязательный хост проверки авторизации | | Общие для профилей | Маршрутизация приложений, обход LAN, отпечатки, авторизация/keepalive/каналы/ротация SSH, failover | | Локальные, не переносятся | MTU, строгая проверка источника и её уровень, язык, единицы трафика, обновления; разрешения небезопасного DNS остаются локальными для профиля | @@ -54,7 +54,12 @@ TLS приложений остаётся сквозным: MegaProxy не ус Для обычного профиля **HTTPS** доступно необязательное поле **Хост проверки авторизации**. Укажите предоставленный оператором knock-хост без URL, пути и порта. При диагностике HTTPS по TCP приложение отправляет через прокси CONNECT к этому хосту на порт 443 с учётными данными профиля; проверка ограничена пятью секундами. Явный `407` подтверждает отказ авторизации и останавливает тест. `200` означает только принятие CONNECT; после него выполняется обычная сквозная проверка HTTPS. Остальные статусы и таймауты не доказывают ошибку логина или пароля. -При пустом поле дополнительного запроса нет. Поле импортируется и экспортируется как `proxy.knockHost` профиля (старый `browser.knockHost` читается при отсутствии общего поля; пустое общее поле отключает проверку); остальные браузерные настройки игнорируются. Проверка относится к обычному HTTPS по TCP, а не HTTPS с Jump или выбранному HTTP/3. Изменение диагностического хоста не переподключает работающий VPN; новый тест использует его для того же действующего адреса прокси, сохраняя действующие учётные данные. Дополнительных проверок пакетов нет. +При пустом поле дополнительного запроса нет. В JSON используется +`profiles[].proxy.knockHost`; старый `profiles[].browser.knockHost` читается только +при отсутствии общего поля. Явно пустое общее поле отключает проверку, даже если +старый псевдоним заполнен. Остальные браузерные настройки игнорируются. + +Проверка относится к обычному HTTPS по TCP, а не HTTPS с Jump или выбранному HTTP/3. Изменение диагностического хоста не переподключает работающий VPN; новый тест использует его для того же действующего адреса прокси, сохраняя действующие учётные данные. Дополнительных проверок пакетов нет. Общий журнал диагностики содержит события `proxy_auth_probe`: начало, пропуск, принятие CONNECT, отказ или неопределённый результат, HTTP-статус, время и безопасный класс ошибки. Хосты проверки и прокси, IP, логины, пароли и содержимое ответов в эти события не попадают. @@ -131,3 +136,5 @@ JSON — не полный бэкап приложения. [Схемы и пр хранение объёмом 1–100 MiB. Обратная связь прикладывает его через выбранное почтовое приложение; просмотрите отчёт перед отправкой. [Диагностика, скорость и видимость](connection-metrics.md#тест-скорость-и-видимость-vpn) описывают общий журнал тестов и ограничения измерений; [политика конфиденциальности](../../PRIVACY.md). + +Полный перечень переносимых и локальных настроек: [справочник полей](https://github.com/andre487/MegaProxyConfig/blob/main/docs/field-reference.md). diff --git a/docs/ru/subscriptions.md b/docs/ru/subscriptions.md index 29d0c2b..a71766c 100644 --- a/docs/ru/subscriptions.md +++ b/docs/ru/subscriptions.md @@ -85,3 +85,8 @@ Basic Auth, интервал и пауза не меняются, даже ес Общее локальное хранилище ограничено 1 000 профилей, 4 194 304 символами до кодирования и 8 MiB JSON после кодирования. Превышение лимита при импорте, редактировании или обновлении подписки приводит к отказу с сохранением прежней конфигурации. + +Необязательный хост проверки авторизации сохраняется при отсутствии +`proxy.knockHost` и старого `browser.knockHost` только для того же адреса и учётной +записи прокси. Явно пустое общее поле очищает значение. Изменение только этого +диагностического хоста не требует переподключения VPN. diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index 4b680f8..e496a28 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -8,6 +8,7 @@
No account, ads or analytics. Passwords and private keys are encrypted at rest; logs stay local unless shared. Diagnostics, enabled app-update checks and configured subscriptions contact external services. SOCKS5 does not encrypt its connection or credentials. MASQUE is experimental.
diff --git a/fastlane/metadata/android/ru-RU/full_description.txt b/fastlane/metadata/android/ru-RU/full_description.txt index f6f98b3..d11075b 100644 --- a/fastlane/metadata/android/ru-RU/full_description.txt +++ b/fastlane/metadata/android/ru-RU/full_description.txt @@ -8,6 +8,7 @@Без регистрации, рекламы и аналитики. Пароли и приватные ключи зашифрованы при хранении, журналы локальны до отправки по вашему выбору. Диагностика, включённые проверки обновлений и настроенные подписки обращаются к внешним сервисам. SOCKS5 не шифрует соединение и пароль. MASQUE экспериментален.