6.8 KiB
Freedom
Freedom - это исходящий протокол, который можно использовать для отправки (обычных) данных TCP или UDP в любую сеть.
OutboundConfigurationObject
{
"domainStrategy": "AsIs",
"redirect": "127.0.0.1:3366",
"userLevel": 0,
"fragment": {
"packets": "tlshello",
"length": "100-200",
"interval": "10-20" // в миллисекундах
},
"proxyProtocol": 0
}
domainStrategy
: "AsIs"
"UseIP" | "UseIPv6v4" | "UseIPv6" | "UseIPv4v6" | "UseIPv4"
"ForceIP" | "ForceIPv6v4" | "ForceIPv6" | "ForceIPv4v6" | "ForceIPv4"
Значение по умолчанию: "AsIs"
.
Если целевой адрес является доменным именем, настройте соответствующее значение для режима работы Freedom:
- При использовании
"AsIs"
Xray будет напрямую использовать системный стек для установления соединения, приоритет и выбор IP будут зависеть от системных настроек. По некоторым причинам UDP-соединения, использующие доменные имена, будут игнорировать системные настройки и отдавать приоритет IPv4. - При указании других значений для разрешения будет использоваться встроенный DNS-сервер Xray-core. Если DNSObject отсутствует, будет использоваться системный DNS. Если существует несколько подходящих IP-адресов, ядро случайным образом выберет один IP-адрес в качестве целевого.
"IPv4"
означает попытку подключения только с использованием IPv4,"IPv4v6"
- попытку подключения с использованием IPv4 или IPv6, но с предпочтением IPv4 для доменных имен с поддержкой обоих протоколов. (То же самое относится и к v4v6, но в обратном порядке, поэтому здесь не приводится).- Если в настройках встроенного DNS указан параметр
"queryStrategy"
, фактическое поведение будет объединено с этой опцией, и будут разрешаться только те типы IP, которые включены в обе опции. Например,"queryStrategy": "UseIPv4"
и"domainStrategy": "UseIP"
фактически эквивалентны"domainStrategy": "UseIPv4"
. - При использовании опций, начинающихся с
"Use"
, если результаты разрешения не соответствуют требованиям (например, доменное имя имеет только результат разрешения IPv4, но используется UseIPv6), будет выполнен откат к AsIs. - При использовании опций, начинающихся с
"Force"
, если результаты разрешения не соответствуют требованиям, соединение не будет установлено.
::: tip СОВЕТ 1
При использовании режимов "UseIP"
или "ForceIP"
и указании sendThrough
в конфигурации исходящего соединения Freedom будет автоматически определять необходимый тип IP (IPv4 или IPv6) на основе значения sendThrough
. Если вручную указать один тип IP (например, UseIPv4), но он не совпадает с локальным адресом, указанным в sendThrough
, соединение не будет установлено.
:::
redirect
: адрес_порт
Freedom будет принудительно отправлять все данные на указанный адрес (а не на адрес, указанный во входящем соединении).
Его значение представляет собой строку, например: "127.0.0.1:80"
, ":1234"
.
Если адрес не указан, например, ":443"
, Freedom не будет изменять исходный целевой адрес.
Если порт равен 0
, например, "xray.com: 0"
, Freedom не будет изменять исходный порт.
userLevel
: number
Уровень пользователя, для соединения будет использоваться локальная политика, соответствующая этому уровню пользователя.
Значение userLevel соответствует значению level
в разделе policy. Если не указано, используется значение по умолчанию - 0.
fragment
: map
Некоторые пары "ключ-значение" для управления исходящей TCP-фрагментацией, которые в некоторых случаях могут обмануть систему цензуры, например, обойти черный список SNI.
"packets"
: поддерживаются два режима фрагментации: "1-3" - это фрагментация потока TCP, применяемая к первым трем операциям записи данных на стороне клиента. "tlshello" - это фрагментация пакета TLS-рукопожатия.
"length"
: длина фрагмента пакета (в байтах).
"interval"
: интервал фрагментации (в миллисекундах).
proxyProtocol
: number
Протокол PROXY обычно используется в сочетании с redirect
для перенаправления на Nginx или другой сервер, на котором включен протокол PROXY. Если сервер не поддерживает протокол PROXY, соединение будет разорвано.
Значение proxyProtocol - это номер версии протокола PROXY, возможные значения: 1
или 2
. Если не указано, используется значение по умолчанию - 0
(протокол не используется).