2.5 KiB
Freedom
Freedom is an outbound protocol that can be used to send (normal) TCP or UDP data to any network.
OutboundConfigurationObject
{
"domainStrategy": "AsIs",
"redirect": "127.0.0.1:3366",
"userLevel": 0,
"fragment": {
"packets": "tlshello",
"length": "100-200",
"interval": "10-20" // ms
},
"proxyProtocol": 0
}
domainStrategy
: "AsIs" | "UseIP" | "UseIPv4" | "UseIPv6"
When the destination address is a domain name, configure the corresponding value for Freedom's behavior:
"AsIs"
: Freedom resolves the domain name using the system DNS server and connects to it."UseIP"
,"UseIPv4"
, and"UseIPv6"
: Xray resolves the domain name using the built-in DNS server and connects to it. The default value is"AsIs"
.
::: tip TIP 1
When using the "UseIP"
mode and the sendThrough
field is specified in the outbound connection configuration, Freedom will automatically determine the required IP type, IPv4 or IPv6, based on the value of sendThrough
.
:::
::: tip TIP 2
When using the "UseIPv4"
or "UseIPv6"
mode, Freedom will only use the corresponding IPv4 or IPv6 address. If sendThrough
specifies a mismatched local address, the connection will fail.
:::
redirect
: address_port
Freedom will force all data to be sent to the specified address (instead of the address specified in the inbound).
It is a string value, for example: "127.0.0.1:80"
, ":1234"
.
When the address is not specified, such as ":443"
, Freedom will not modify the original destination address. When the port is 0
, such as "xray.com:0"
, Freedom will not modify the original port.
userLevel
: number
User level. The connection will use the corresponding local policy for this user level.
The value of userLevel
corresponds to the value of level
in the policy. If not specified, the default value is 0.
fragment
: map
A key-value map used to control TCP fragmentation,under some circumstances it can cheat the censor system, like bypass a SNI blacklist.
"packets"
:support two different methods. "1-3" is for segmentation at TCP layer, applying to the beginning 1 to 3 data writes by the client. "tlshello" is for TLS client hello packet fragmentation.
"length"
: length to make the cut
"interval"
: time between fragments(ms)
proxyProtocol
: number
The value of proxyProtocol
represents the PROXY Protocol version. default value is 0
.