From e0d44bc0bd3fa3cb45d22f7a4ca3efe904347d00 Mon Sep 17 00:00:00 2001 From: Nikita Korotaev <104270279+iambabyninja@users.noreply.github.com> Date: Thu, 28 Nov 2024 22:18:01 +0500 Subject: [PATCH] fix AsIs behavior --- docs/ru/config/transport.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/ru/config/transport.md b/docs/ru/config/transport.md index c276fe0..8124290 100644 --- a/docs/ru/config/transport.md +++ b/docs/ru/config/transport.md @@ -558,4 +558,20 @@ Reality — это самое безопасное на данный момен > "ForceIP" | "ForceIPv6v4" | "ForceIPv6" | "ForceIPv4v6" | "ForceIPv4" -В предыдущих версиях, когда Xray пытался установить системное соединение с использованием доменного имени, разрешение доменного имени выполнялось системой и не контролировалось Xray. Это приводило к таким проблемам, как [невозможность разрешить доменные имена в нестандартных средах Linux](https://github.com/v2ray/v2ray-core/issues/1909). Для решения этой проблемы в X +В предыдущих версиях, когда Xray пытался использовать доменное имя для установления системного соединения, его разрешение выполнялось системой и не контролировалось Xray. +Это приводило к таким проблемам, как [невозможность разрешить доменное имя в нестандартных Linux-средах](https://github.com/v2ray/v2ray-core/issues/1909). +Для решения этой проблемы в Xray 1.3.1 в Sockopt был добавлен параметр `domainStrategy` в разделе Freedom. + +Значение по умолчанию: `"AsIs"`. + +Если целевой адрес представлен доменным именем, можно настроить соответствующее значение. Поведение Freedom в зависимости от настройки следующее: + +- При использовании `"AsIs"` Xray будет напрямую использовать встроенную функцию `Dial` из Go для установления соединения, с фиксированным приоритетом, заданным по умолчанию в RFC6724 (игнорируя такие настройки, как `gai.conf`). *(Простыми словами: IPv6 будет использоваться с приоритетом.)* +- При использовании другого значения будет применен [встроенный DNS-сервер](../dns.md) Xray-core для разрешения доменного имени. + Если объект `DNSObject` отсутствует, будет использоваться системный DNS. Если существует несколько подходящих IP-адресов, ядро выберет один из них случайным образом. +- `"IPv4"` означает попытку установить соединение, используя только IPv4, + `"IPv4v6"` означает попытку соединения с использованием IPv4 или IPv6, но для доменов с двойным стеком будет использоваться IPv4. + *(Если поменять местами v4 и v6, логика остается аналогичной)* +- Если во встроенном DNS установлен параметр `"queryStrategy"`, то фактическое поведение будет комбинацией с этим параметром, и будут разрешаться только типы IP-адресов, присутствующие в обоих параметрах. Например: + `"queryStrategy": "UseIPv4"` и `"domainStrategy": "UseIP"` фактически эквивалентны `"domainStrategy": "UseIPv4"`. +