RU Sockopt: Add destinationStrategy

This commit is contained in:
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

View file

@ -38,7 +38,9 @@
"v6only": false,
"tcpWindowClamp": 600,
"tcpMptcp": false,
"tcpNoDelay": false
"tcpNoDelay": false,
"addressPortStrategy": "",
"customSockopt": []
}
}
```
@ -727,6 +729,22 @@ Reality лишь модифицирует TLS, и для реализации н
Этот параметр удален, так как 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`: []
Массив, позволяющий опытным пользователям указывать любые необходимые sockopt. Теоретически все вышеперечисленные настройки, связанные с соединением, могут быть эквивалентно настроены здесь. Естественно, можно также настроить другие параметры, существующие в Linux, но не добавленные в ядро. Приведенный ниже пример эквивалентен `"tcpcongestion": "bbr"` в ядре.