RU Sockopt: Add destinationStrategy

pull/664/head
Nikita Korotaev 2025-03-07 20:41:51 +05:00 committed by GitHub
parent fb5318cb1d
commit e4260455c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 19 additions and 1 deletions

View File

@ -38,7 +38,9 @@
"v6only": false, "v6only": false,
"tcpWindowClamp": 600, "tcpWindowClamp": 600,
"tcpMptcp": false, "tcpMptcp": false,
"tcpNoDelay": false "tcpNoDelay": false,
"addressPortStrategy": "",
"customSockopt": []
} }
} }
``` ```
@ -727,6 +729,22 @@ Reality лишь модифицирует TLS, и для реализации н
Этот параметр удален, так как golang по умолчанию включает TCP no delay. Если вы хотите отключить его, используйте customSockopt. Этот параметр удален, так как golang по умолчанию включает TCP no delay. Если вы хотите отключить его, используйте customSockopt.
> `addressPortStrategy`: "none" | "SrvPortOnly" | "SrvAddressOnly" | "SrvPortAndAddress" | "TxtPortOnly" | "TxtAddressOnly" | "TxtPortAndAddress"
Использование SRV или TXT записей для определения целевого адреса/порта исходящего трафика. По умолчанию `none` (отключено).
Запросы DNS выполняются через системный DNS (не через встроенный DNS Xray). Домен для DNS запроса определяется настройками исходящего подключения. Если DNS запрос не удался, трафик отправляется по исходному адресу и порту.
Префикс `Srv` указывает на запрос SRV-записей (стандартный формат), префикс `Txt` - на запрос TXT-записей (формат вида `127.0.0.1:80`).
`PortOnly`: Сброс только порта.
`AddressOnly`: Сброс только адреса.
`PortAndAddress`: Сброс адреса и порта.
Важно! Данная настройка применяется *до* этапа выбора стратегии разрешения доменов (`domainStrategy`) в `sockopt`. После сброса адреса продолжает действовать `domainStrategy` (если она активна), но *после* того, как `domainStrategy` в `Freedom` уже отработала. Если в `Freedom` настроено явное разрешение в IP-адрес, данная опция не оказывает никакого эффекта.
PS: Если трафик домена, например, обычный веб-трафик, маршрутизируется через `Freedom` с установленной стратегией `AsIs`, то при активации этой опции будет предпринята попытка разрешить домен и сбросить адрес/порт в соответствии с полученными данными. Например, ядро Xray попытается запросить SRV-запись для `google.com` и перенаправить трафик, опираясь на информацию из этой записи.
> `customSockopt`: [] > `customSockopt`: []
Массив, позволяющий опытным пользователям указывать любые необходимые sockopt. Теоретически все вышеперечисленные настройки, связанные с соединением, могут быть эквивалентно настроены здесь. Естественно, можно также настроить другие параметры, существующие в Linux, но не добавленные в ядро. Приведенный ниже пример эквивалентен `"tcpcongestion": "bbr"` в ядре. Массив, позволяющий опытным пользователям указывать любые необходимые sockopt. Теоретически все вышеперечисленные настройки, связанные с соединением, могут быть эквивалентно настроены здесь. Естественно, можно также настроить другие параметры, существующие в Linux, но не добавленные в ядро. Приведенный ниже пример эквивалентен `"tcpcongestion": "bbr"` в ядре.