1
0
mirror of https://github.com/XTLS/Xray-docs-next.git synced 2025-08-22 19:38:36 +00:00

fix AsIs behavior

This commit is contained in:
Nikita Korotaev 2024-11-28 22:18:01 +05:00 committed by GitHub
parent 9ab5ddfa34
commit e0d44bc0bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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"`.