mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-07 22:38:10 +03:00
Sockopt: Clarify dual-stack DNS fallback behavior
This commit is contained in:
@@ -97,7 +97,7 @@ Sockopt используется для настройки низкоуровн
|
||||
|
||||
- При `"AsIs"` Xray никак специально не обрабатывает доменное имя и в конце использует обычный dialer Go. Приоритет фиксирован правилами RFC 6724 и обычно приводит к предпочтению IPv6.
|
||||
- При любом другом значении Xray использует [встроенный DNS](../dns.md). Если `DNSObject` отсутствует, используется системный DNS. Если есть несколько подходящих IP-адресов, ядро случайным образом выбирает один.
|
||||
- `"IPv4"` означает попытку использовать только IPv4. `"IPv4v6"` означает использование IPv4 или IPv6, но для dual-stack домена предпочитается IPv4. Аналогично работают и IPv6-first варианты.
|
||||
- `"IPv4"` означает разрешение только IPv4. `"IPv4v6"` означает, что сначала разрешается IPv4, а IPv6 разрешается только в том случае, если разрешение IPv4 завершилось ошибкой или не вернуло ни одного IP-адреса. Если IPv4-адреса уже получены, последующая ошибка подключения не приводит к переходу на IPv6. Для `"IPv6"` и `"IPv6v4"` действует та же логика, но порядок семейств адресов обратный.
|
||||
- Если во встроенном DNS также задан `"queryStrategy"`, фактическое поведение определяется пересечением двух настроек. Например, `"queryStrategy": "UseIPv4"` вместе с `"domainStrategy": "UseIP"` фактически эквивалентно `"domainStrategy": "UseIPv4"`.
|
||||
- Варианты `"Use*"` делают fallback к `"AsIs"`, если результат разрешения не соответствует нужному семейству адресов.
|
||||
- Варианты `"Force*"` завершают соединение ошибкой, если получить нужный тип адреса не удалось.
|
||||
@@ -274,7 +274,7 @@ Xray проверяет, присутствуют ли в запросе заг
|
||||
|
||||
Реализация Happy Eyeballs по RFC 8305, только для TCP. Когда целью является доменное имя, Xray запускает гонку между разрешенными адресами и выбирает первый успешный. Работает только если `Sockopt.domainStrategy` не равен `AsIs`.
|
||||
|
||||
Значения `UseIPv4v6` и `ForceIPv4v6` фактически сводят список к IPv4 и только при неудаче обращаются к IPv6. Это не рекомендуется. Лучше использовать `UseIP` или `ForceIP` вместе с `HappyEyeballs.interleave`.
|
||||
Значения `UseIPv4v6` и `ForceIPv4v6` фактически сокращают список доступных IP-адресов до IPv4 и переходят к разрешению IPv6 только в том случае, если разрешение IPv4 завершилось ошибкой или не вернуло ни одного IP-адреса. Ошибка подключения по IPv4 не запускает этот переход. Такое использование не рекомендуется. Лучше использовать `UseIP` или `ForceIP` вместе с `HappyEyeballs.interleave`.
|
||||
|
||||
::: warning
|
||||
Не используйте эту функцию вместе с `targetStrategy` этого outbound, потому что тогда `Sockopt` увидит только конечный IP после подмены.<br>
|
||||
|
||||
Reference in New Issue
Block a user