mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-08-04 14:36:07 +00:00
17323 lines
433 KiB
JSON
17323 lines
433 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://sing-box.sagernet.org/schema.json",
|
|
"type": "object",
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string",
|
|
"examples": [
|
|
"https://sing-box.sagernet.org/schema.json"
|
|
]
|
|
},
|
|
"log": {
|
|
"$ref": "#/$defs/LogOptions"
|
|
},
|
|
"dns": {
|
|
"$ref": "#/$defs/DNS"
|
|
},
|
|
"ntp": {
|
|
"$ref": "#/$defs/NTPOptions"
|
|
},
|
|
"certificate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"store": {
|
|
"type": "string",
|
|
"enum": [
|
|
"system",
|
|
"mozilla",
|
|
"chrome",
|
|
"none"
|
|
]
|
|
},
|
|
"certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_directory_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"certificate_providers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/CertificateProvider"
|
|
}
|
|
},
|
|
"http_clients": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/HTTPClient"
|
|
}
|
|
},
|
|
"network_namespaces": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/NetworkNamespace"
|
|
}
|
|
},
|
|
"endpoints": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Endpoint"
|
|
}
|
|
},
|
|
"inbounds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Inbound"
|
|
}
|
|
},
|
|
"outbounds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Outbound"
|
|
}
|
|
},
|
|
"route": {
|
|
"$ref": "#/$defs/RouteOptions"
|
|
},
|
|
"services": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Service"
|
|
}
|
|
},
|
|
"experimental": {
|
|
"$ref": "#/$defs/ExperimentalOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"$defs": {
|
|
"ACMEExternalAccountOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key_id": {
|
|
"type": "string"
|
|
},
|
|
"mac_key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ACMEProviderDNS01Challenge": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"provider": {
|
|
"const": "alidns"
|
|
},
|
|
"ttl": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"propagation_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"propagation_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"resolvers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"override_domain": {
|
|
"type": "string"
|
|
},
|
|
"access_key_id": {
|
|
"type": "string"
|
|
},
|
|
"access_key_secret": {
|
|
"type": "string"
|
|
},
|
|
"region_id": {
|
|
"type": "string"
|
|
},
|
|
"security_token": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"provider"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"provider": {
|
|
"const": "cloudflare"
|
|
},
|
|
"ttl": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"propagation_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"propagation_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"resolvers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"override_domain": {
|
|
"type": "string"
|
|
},
|
|
"api_token": {
|
|
"type": "string"
|
|
},
|
|
"zone_token": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"provider"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"provider": {
|
|
"const": "acmedns"
|
|
},
|
|
"ttl": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"propagation_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"propagation_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"resolvers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"override_domain": {
|
|
"type": "string"
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"subdomain": {
|
|
"type": "string"
|
|
},
|
|
"server_url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"provider"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"AnyTLSUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BrutalOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"up_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"down_mbps": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CCMUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CacheFileOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"cache_id": {
|
|
"type": "string"
|
|
},
|
|
"store_fakeip": {
|
|
"type": "boolean"
|
|
},
|
|
"rdrc_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"store_dns": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CertificateProvider": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "acme"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"data_directory": {
|
|
"type": "string"
|
|
},
|
|
"default_server_name": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string"
|
|
},
|
|
"account_key": {
|
|
"type": "string"
|
|
},
|
|
"disable_http_challenge": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tls_alpn_challenge": {
|
|
"type": "boolean"
|
|
},
|
|
"alternative_http_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"alternative_tls_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"external_account": {
|
|
"$ref": "#/$defs/ACMEExternalAccountOptions"
|
|
},
|
|
"dns01_challenge": {
|
|
"$ref": "#/$defs/ACMEProviderDNS01Challenge"
|
|
},
|
|
"key_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ed25519",
|
|
"p256",
|
|
"p384",
|
|
"rsa2048",
|
|
"rsa4096"
|
|
]
|
|
},
|
|
"profile": {
|
|
"type": "string"
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "cloudflare-origin-ca"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"data_directory": {
|
|
"type": "string"
|
|
},
|
|
"api_token": {
|
|
"type": "string"
|
|
},
|
|
"origin_ca_key": {
|
|
"type": "string"
|
|
},
|
|
"request_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"origin-rsa",
|
|
"origin-ecc"
|
|
]
|
|
},
|
|
"requested_validity": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
7,
|
|
30,
|
|
90,
|
|
365,
|
|
730,
|
|
1095,
|
|
5475
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tailscale"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"CertificateProviderReference": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "certificate_provider"
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "acme"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"data_directory": {
|
|
"type": "string"
|
|
},
|
|
"default_server_name": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string"
|
|
},
|
|
"account_key": {
|
|
"type": "string"
|
|
},
|
|
"disable_http_challenge": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tls_alpn_challenge": {
|
|
"type": "boolean"
|
|
},
|
|
"alternative_http_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"alternative_tls_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"external_account": {
|
|
"$ref": "#/$defs/ACMEExternalAccountOptions"
|
|
},
|
|
"dns01_challenge": {
|
|
"$ref": "#/$defs/ACMEProviderDNS01Challenge"
|
|
},
|
|
"key_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ed25519",
|
|
"p256",
|
|
"p384",
|
|
"rsa2048",
|
|
"rsa4096"
|
|
]
|
|
},
|
|
"profile": {
|
|
"type": "string"
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "cloudflare-origin-ca"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"data_directory": {
|
|
"type": "string"
|
|
},
|
|
"api_token": {
|
|
"type": "string"
|
|
},
|
|
"origin_ca_key": {
|
|
"type": "string"
|
|
},
|
|
"request_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"origin-rsa",
|
|
"origin-ecc"
|
|
]
|
|
},
|
|
"requested_validity": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
7,
|
|
30,
|
|
90,
|
|
365,
|
|
730,
|
|
1095,
|
|
5475
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tailscale"
|
|
},
|
|
"endpoint": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"ClashAPIOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"external_controller": {
|
|
"type": "string"
|
|
},
|
|
"external_ui": {
|
|
"type": "string"
|
|
},
|
|
"external_ui_download_url": {
|
|
"type": "string"
|
|
},
|
|
"external_ui_download_detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"secret": {
|
|
"type": "string"
|
|
},
|
|
"default_mode": {
|
|
"type": "string"
|
|
},
|
|
"access_control_allow_origin": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"access_control_allow_private_network": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DERPMeshOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"host": {
|
|
"type": "string"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DNS": {
|
|
"type": "object",
|
|
"properties": {
|
|
"servers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/DNSServer"
|
|
}
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/DNSRule"
|
|
}
|
|
},
|
|
"final": {
|
|
"type": "string",
|
|
"x-tag-reference": "dns_server"
|
|
},
|
|
"reverse_mapping": {
|
|
"type": "boolean"
|
|
},
|
|
"strategy": {
|
|
"$ref": "#/$defs/DomainStrategy"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"disable_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_expire": {
|
|
"type": "boolean"
|
|
},
|
|
"cache_capacity": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"optimistic": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"client_subnet": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DNSQueryType": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"A",
|
|
"AAAA",
|
|
"AFSDB",
|
|
"AMTRELAY",
|
|
"ANY",
|
|
"APL",
|
|
"ATMA",
|
|
"AVC",
|
|
"AXFR",
|
|
"CAA",
|
|
"CDNSKEY",
|
|
"CDS",
|
|
"CERT",
|
|
"CNAME",
|
|
"CSYNC",
|
|
"DHCID",
|
|
"DLV",
|
|
"DNAME",
|
|
"DNSKEY",
|
|
"DS",
|
|
"EID",
|
|
"EUI48",
|
|
"EUI64",
|
|
"GID",
|
|
"GPOS",
|
|
"HINFO",
|
|
"HIP",
|
|
"HTTPS",
|
|
"IPSECKEY",
|
|
"ISDN",
|
|
"IXFR",
|
|
"KEY",
|
|
"KX",
|
|
"L32",
|
|
"L64",
|
|
"LOC",
|
|
"LP",
|
|
"MAILA",
|
|
"MAILB",
|
|
"MB",
|
|
"MD",
|
|
"MF",
|
|
"MG",
|
|
"MINFO",
|
|
"MR",
|
|
"MX",
|
|
"NAPTR",
|
|
"NID",
|
|
"NIMLOC",
|
|
"NINFO",
|
|
"NS",
|
|
"NSAP-PTR",
|
|
"NSEC",
|
|
"NSEC3",
|
|
"NSEC3PARAM",
|
|
"NULL",
|
|
"NXNAME",
|
|
"NXT",
|
|
"None",
|
|
"OPENPGPKEY",
|
|
"OPT",
|
|
"PTR",
|
|
"PX",
|
|
"RESINFO",
|
|
"RKEY",
|
|
"RP",
|
|
"RRSIG",
|
|
"RT",
|
|
"Reserved",
|
|
"SIG",
|
|
"SMIMEA",
|
|
"SOA",
|
|
"SPF",
|
|
"SRV",
|
|
"SSHFP",
|
|
"SVCB",
|
|
"TA",
|
|
"TALINK",
|
|
"TKEY",
|
|
"TLSA",
|
|
"TSIG",
|
|
"TXT",
|
|
"UID",
|
|
"UINFO",
|
|
"UNSPEC",
|
|
"URI",
|
|
"X25",
|
|
"ZONEMD"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"DNSRCode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"NOERROR",
|
|
"FORMERR",
|
|
"SERVFAIL",
|
|
"NXDOMAIN",
|
|
"NOTIMP",
|
|
"NOTIMPL",
|
|
"REFUSED",
|
|
"YXDOMAIN",
|
|
"YXRRSET",
|
|
"NXRRSET",
|
|
"NOTAUTH",
|
|
"NOTZONE",
|
|
"DSOTYPENI",
|
|
"BADSIG",
|
|
"BADKEY",
|
|
"BADTIME",
|
|
"BADMODE",
|
|
"BADNAME",
|
|
"BADALG",
|
|
"BADTRUNC",
|
|
"BADCOOKIE"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"DNSRule": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"unevaluatedProperties": false,
|
|
"allOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"inbound": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"query_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/DNSQueryType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/DNSQueryType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auth_user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"protocol": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_keyword": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"source_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"clash_mode": {
|
|
"type": "string"
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_is_expensive": {
|
|
"type": "boolean"
|
|
},
|
|
"network_is_constrained": {
|
|
"type": "boolean"
|
|
},
|
|
"wifi_ssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"wifi_bssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"interface_address": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"network_interface_address": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"default_interface_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_mac_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_hostname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"preferred_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set_ip_cidr_match_source": {
|
|
"type": "boolean"
|
|
},
|
|
"match_response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"ip_accept_any": {
|
|
"type": "boolean"
|
|
},
|
|
"response_rcode": {
|
|
"$ref": "#/$defs/DNSRCode"
|
|
},
|
|
"response_answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"response_ns": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"response_extra": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/$defs/DNSRuleAction"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"unevaluatedProperties": false,
|
|
"allOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "logical"
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"and",
|
|
"or"
|
|
]
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/NestedDNSRule"
|
|
}
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"mode",
|
|
"rules"
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/$defs/DNSRuleAction"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"DNSRuleAction": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "route"
|
|
},
|
|
"race": {
|
|
"type": "boolean"
|
|
},
|
|
"server": {
|
|
"type": "string",
|
|
"x-tag-reference": "dns_server"
|
|
},
|
|
"speculative": {
|
|
"type": "boolean"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"disable_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_optimistic_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"rewrite_ttl": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"client_subnet": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "evaluate"
|
|
},
|
|
"race": {
|
|
"type": "boolean"
|
|
},
|
|
"server": {
|
|
"type": "string",
|
|
"x-tag-reference": "dns_server"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"speculative": {
|
|
"type": "boolean"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"disable_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_optimistic_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"rewrite_ttl": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"client_subnet": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "respond"
|
|
},
|
|
"race": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "route-options"
|
|
},
|
|
"race": {
|
|
"type": "boolean"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"disable_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_optimistic_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"rewrite_ttl": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"client_subnet": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "reject"
|
|
},
|
|
"race": {
|
|
"type": "boolean"
|
|
},
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"default",
|
|
"drop",
|
|
"reply"
|
|
]
|
|
},
|
|
"no_drop": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "predefined"
|
|
},
|
|
"race": {
|
|
"type": "boolean"
|
|
},
|
|
"rcode": {
|
|
"$ref": "#/$defs/DNSRCode"
|
|
},
|
|
"answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ns": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"extra": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"DNSServer": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "dhcp"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"prefer_go": {
|
|
"type": "boolean"
|
|
},
|
|
"neighbor_domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"interface": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "fakeip"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"inet4_range": {
|
|
"type": "string",
|
|
"examples": [
|
|
"198.18.0.0/15"
|
|
]
|
|
},
|
|
"inet6_range": {
|
|
"type": "string",
|
|
"examples": [
|
|
"fc00::/18"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "h3"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "hosts"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"predefined": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "https"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "local"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"prefer_go": {
|
|
"type": "boolean"
|
|
},
|
|
"neighbor_domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "mdns"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"prefer_go": {
|
|
"type": "boolean"
|
|
},
|
|
"neighbor_domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"interface": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "openconnect"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string"
|
|
},
|
|
"accept_default_resolvers": {
|
|
"type": "boolean"
|
|
},
|
|
"accept_search_domain": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "openvpn"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string"
|
|
},
|
|
"accept_default_resolvers": {
|
|
"type": "boolean"
|
|
},
|
|
"accept_search_domain": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "quic"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "resolved"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"service": {
|
|
"type": "string"
|
|
},
|
|
"accept_default_resolvers": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tailscale"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string"
|
|
},
|
|
"accept_default_resolvers": {
|
|
"type": "boolean"
|
|
},
|
|
"accept_search_domain": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tcp"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tls"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "udp"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"DebugOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"gc_percent": {
|
|
"type": "integer"
|
|
},
|
|
"max_stack": {
|
|
"type": "integer"
|
|
},
|
|
"max_threads": {
|
|
"type": "integer"
|
|
},
|
|
"panic_on_fault": {
|
|
"type": "boolean"
|
|
},
|
|
"trace_back": {
|
|
"type": "string"
|
|
},
|
|
"memory_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"oom_killer": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DialerOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DomainResolver": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "dns_server"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"server": {
|
|
"type": "string",
|
|
"x-tag-reference": "dns_server"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"strategy": {
|
|
"$ref": "#/$defs/DomainStrategy"
|
|
},
|
|
"disable_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_optimistic_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"rewrite_ttl": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"client_subnet": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"server"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"DomainStrategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"as_is",
|
|
"prefer_ipv4",
|
|
"prefer_ipv6",
|
|
"ipv4_only",
|
|
"ipv6_only"
|
|
]
|
|
},
|
|
"Duration": {
|
|
"type": "string",
|
|
"pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\.\\d+)(ns|us|µs|μs|ms|s|m|h|d))+|0)$"
|
|
},
|
|
"Endpoint": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "openconnect"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"system": {
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_mapping": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_filtering": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_nat_max": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"flavor": {
|
|
"type": "string",
|
|
"enum": [
|
|
"anyconnect",
|
|
"gp",
|
|
"fortinet",
|
|
"f5",
|
|
"pulse",
|
|
"nc"
|
|
]
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"auth_group": {
|
|
"type": "string"
|
|
},
|
|
"cookie": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"$ref": "#/$defs/OpenConnectTokenOptions"
|
|
},
|
|
"reported_os": {
|
|
"type": "string"
|
|
},
|
|
"user_agent": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"local_hostname": {
|
|
"type": "string"
|
|
},
|
|
"mobile": {
|
|
"$ref": "#/$defs/OpenConnectMobileOptions"
|
|
},
|
|
"csd": {
|
|
"$ref": "#/$defs/OpenConnectCSDOptions"
|
|
},
|
|
"hip": {
|
|
"$ref": "#/$defs/OpenConnectHIPOptions"
|
|
},
|
|
"tncc": {
|
|
"$ref": "#/$defs/OpenConnectTNCCOptions"
|
|
},
|
|
"fortinet_host_check": {
|
|
"$ref": "#/$defs/OpenConnectFortinetHostCheckOptions"
|
|
},
|
|
"no_udp": {
|
|
"type": "boolean"
|
|
},
|
|
"dtls_local_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"compression_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"compression_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"stateless",
|
|
"all"
|
|
]
|
|
},
|
|
"ipv6_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"http_keepalive_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"xml_post_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"external_auth_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"password_authentication_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive_enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"pfs": {
|
|
"type": "boolean"
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"base_mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"dpd_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"reconnect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"trojan_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"queue_length": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"allow_insecure_crypto": {
|
|
"type": "boolean"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OpenConnectTLSOptions"
|
|
},
|
|
"form_entries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OpenConnectFormEntryOptions"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "openvpn-client"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"system": {
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_mapping": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_filtering": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_nat_max": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"static_key"
|
|
]
|
|
},
|
|
"network": {
|
|
"type": "string",
|
|
"enum": [
|
|
"udp",
|
|
"udp4",
|
|
"udp6",
|
|
"tcp",
|
|
"tcp4",
|
|
"tcp6"
|
|
]
|
|
},
|
|
"servers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OpenVPNRemoteOptions"
|
|
}
|
|
},
|
|
"remote_random": {
|
|
"type": "boolean"
|
|
},
|
|
"address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"peer_address": {
|
|
"type": "string"
|
|
},
|
|
"peer_address_ipv6": {
|
|
"type": "string"
|
|
},
|
|
"topology": {
|
|
"type": "string",
|
|
"enum": [
|
|
"net30",
|
|
"p2p",
|
|
"subnet"
|
|
]
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"auth_retry": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"nointeract",
|
|
"interact"
|
|
]
|
|
},
|
|
"static_challenge": {
|
|
"type": "string"
|
|
},
|
|
"static_challenge_echo": {
|
|
"type": "boolean"
|
|
},
|
|
"static_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"static_key_path": {
|
|
"type": "string"
|
|
},
|
|
"key_direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client"
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OpenVPNOutboundTLSOptions"
|
|
},
|
|
"cipher": {
|
|
"type": "string"
|
|
},
|
|
"data_ciphers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"data_ciphers_fallback": {
|
|
"type": "string"
|
|
},
|
|
"auth": {
|
|
"type": "string"
|
|
},
|
|
"mss_fix": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"mss_fix_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"mss_fix_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"mtu",
|
|
"fixed"
|
|
]
|
|
},
|
|
"fragment": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"replay_window": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"replay_window_time": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"compression": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"no",
|
|
"lz4",
|
|
"lz4-v2",
|
|
"stub",
|
|
"stub-v2",
|
|
"disabled",
|
|
"off"
|
|
]
|
|
},
|
|
"compression_lzo": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"no",
|
|
"yes",
|
|
"adaptive",
|
|
"asym",
|
|
"disabled",
|
|
"off"
|
|
]
|
|
},
|
|
"allow_compression": {
|
|
"type": "string",
|
|
"enum": [
|
|
"no",
|
|
"asym",
|
|
"yes"
|
|
]
|
|
},
|
|
"route_no_pull": {
|
|
"type": "boolean"
|
|
},
|
|
"pull_filters": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OpenVPNPullFilterOptions"
|
|
}
|
|
},
|
|
"routes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"route_gateway": {
|
|
"type": "string"
|
|
},
|
|
"route_metric": {
|
|
"type": "integer"
|
|
},
|
|
"redirect_gateway": {
|
|
"type": "boolean"
|
|
},
|
|
"redirect_gateway_flags": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"redirect_private": {
|
|
"type": "boolean"
|
|
},
|
|
"block_ipv6": {
|
|
"type": "boolean"
|
|
},
|
|
"ping_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ping_restart": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ping_restart_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"renegotiate_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"renegotiate_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"renegotiate_bytes": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"renegotiate_packets": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"tls_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"handshake_window": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"explicit_exit_notify": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "openvpn-server"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"system": {
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_mapping": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_filtering": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_nat_max": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"static_key"
|
|
]
|
|
},
|
|
"network": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
"remote": {
|
|
"type": "string"
|
|
},
|
|
"remote_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"max_clients": {
|
|
"type": "integer"
|
|
},
|
|
"address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"peer_address": {
|
|
"type": "string"
|
|
},
|
|
"peer_address_ipv6": {
|
|
"type": "string"
|
|
},
|
|
"topology": {
|
|
"type": "string",
|
|
"enum": [
|
|
"net30",
|
|
"p2p",
|
|
"subnet"
|
|
]
|
|
},
|
|
"duplicate_cn": {
|
|
"type": "boolean"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/User"
|
|
}
|
|
},
|
|
"static_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"static_key_path": {
|
|
"type": "string"
|
|
},
|
|
"key_direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client"
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OpenVPNInboundTLSOptions"
|
|
},
|
|
"cipher": {
|
|
"type": "string"
|
|
},
|
|
"data_ciphers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"data_ciphers_fallback": {
|
|
"type": "string"
|
|
},
|
|
"auth": {
|
|
"type": "string"
|
|
},
|
|
"mss_fix": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"mss_fix_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"mss_fix_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"mtu",
|
|
"fixed"
|
|
]
|
|
},
|
|
"replay_window": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"replay_window_time": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"push": {
|
|
"$ref": "#/$defs/OpenVPNPushOptions"
|
|
},
|
|
"ping_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ping_restart": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"renegotiate_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"renegotiate_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"renegotiate_bytes": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"renegotiate_packets": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"handshake_window": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tailscale"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"state_directory": {
|
|
"type": "string"
|
|
},
|
|
"auth_key": {
|
|
"type": "string"
|
|
},
|
|
"control_url": {
|
|
"type": "string"
|
|
},
|
|
"ephemeral": {
|
|
"type": "boolean"
|
|
},
|
|
"hostname": {
|
|
"type": "string"
|
|
},
|
|
"accept_routes": {
|
|
"type": "boolean"
|
|
},
|
|
"exit_node": {
|
|
"type": "string"
|
|
},
|
|
"exit_node_allow_lan_access": {
|
|
"type": "boolean"
|
|
},
|
|
"advertise_routes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"advertise_exit_node": {
|
|
"type": "boolean"
|
|
},
|
|
"advertise_tags": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"relay_server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"relay_server_static_endpoints": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"system_interface": {
|
|
"type": "boolean"
|
|
},
|
|
"system_interface_name": {
|
|
"type": "string"
|
|
},
|
|
"system_interface_mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"ssh_server": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_pty": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_sftp": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_forwarding": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "wireguard"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"system": {
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"private_key": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"peers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/WireGuardPeer"
|
|
}
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_mapping": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_filtering": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_nat_max": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"workers": {
|
|
"type": "integer"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"ExperimentalOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cache_file": {
|
|
"$ref": "#/$defs/CacheFileOptions"
|
|
},
|
|
"clash_api": {
|
|
"$ref": "#/$defs/ClashAPIOptions"
|
|
},
|
|
"v2ray_api": {
|
|
"$ref": "#/$defs/V2RayAPIOptions"
|
|
},
|
|
"debug": {
|
|
"$ref": "#/$defs/DebugOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HTTPClient": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"engine": {
|
|
"type": "string",
|
|
"enum": [
|
|
"go",
|
|
"apple"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"disable_version_fallback": {
|
|
"type": "boolean"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HTTPClientReference": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "http_client"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"engine": {
|
|
"type": "string",
|
|
"enum": [
|
|
"go",
|
|
"apple"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"disable_version_fallback": {
|
|
"type": "boolean"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"HTTPHeader": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"HTTPProxyOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bypass_domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"match_domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HeadlessRule": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"query_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/DNSQueryType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/DNSQueryType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"icmp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"icmp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_keyword": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_is_expensive": {
|
|
"type": "boolean"
|
|
},
|
|
"network_is_constrained": {
|
|
"type": "boolean"
|
|
},
|
|
"wifi_ssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"wifi_bssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_interface_address": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"default_interface_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "logical"
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"and",
|
|
"or"
|
|
]
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/HeadlessRule"
|
|
}
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"mode",
|
|
"rules"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"Hysteria2InboundRealm": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server_url": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"realm_id": {
|
|
"type": "string"
|
|
},
|
|
"stun_servers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"port_mapping": {
|
|
"$ref": "#/$defs/Hysteria2RealmPortMapping"
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
},
|
|
"stun_domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Hysteria2Realm": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server_url": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"realm_id": {
|
|
"type": "string"
|
|
},
|
|
"stun_servers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"port_mapping": {
|
|
"$ref": "#/$defs/Hysteria2RealmPortMapping"
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Hysteria2RealmPortMapping": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"lifetime": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Hysteria2User": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HysteriaRealmUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"max_realms": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"HysteriaUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"auth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auth_str": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Inbound": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "anytls"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/AnyTLSUser"
|
|
}
|
|
},
|
|
"padding_scheme": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "cloudflared"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"ha_connections": {
|
|
"type": "integer"
|
|
},
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"auto",
|
|
"quic",
|
|
"http2",
|
|
"h2mux"
|
|
]
|
|
},
|
|
"post_quantum": {
|
|
"type": "boolean"
|
|
},
|
|
"edge_ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"datagram_version": {
|
|
"type": "string",
|
|
"enum": [
|
|
"v2",
|
|
"v3"
|
|
]
|
|
},
|
|
"grace_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"region": {
|
|
"type": "string"
|
|
},
|
|
"control_dialer": {
|
|
"$ref": "#/$defs/DialerOptions"
|
|
},
|
|
"tunnel_dialer": {
|
|
"$ref": "#/$defs/DialerOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "direct"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"override_address": {
|
|
"type": "string"
|
|
},
|
|
"override_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "http"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/User"
|
|
}
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"set_system_proxy": {
|
|
"type": "boolean"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "hysteria"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"up": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"up_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"down": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"down_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"obfs": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/HysteriaUser"
|
|
}
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "hysteria2"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"up_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"down_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"obfs": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "salamander"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "gecko"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"min_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"max_packet_size": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Hysteria2User"
|
|
}
|
|
},
|
|
"ignore_client_bandwidth": {
|
|
"type": "boolean"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
},
|
|
"masquerade": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "file"
|
|
},
|
|
"directory": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "proxy"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"rewrite_host": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "string"
|
|
},
|
|
"status_code": {
|
|
"type": "integer"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bbr_profile": {
|
|
"type": "string",
|
|
"enum": [
|
|
"standard",
|
|
"conservative",
|
|
"aggressive"
|
|
]
|
|
},
|
|
"brutal_debug": {
|
|
"type": "boolean"
|
|
},
|
|
"realm": {
|
|
"$ref": "#/$defs/Hysteria2InboundRealm"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "mixed"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/User"
|
|
}
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"set_system_proxy": {
|
|
"type": "boolean"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "naive"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/User"
|
|
}
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"quic_congestion_control": {
|
|
"type": "string",
|
|
"enum": [
|
|
"bbr",
|
|
"bbr_standard",
|
|
"bbr2",
|
|
"bbr2_variant",
|
|
"cubic",
|
|
"reno"
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "redirect"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "shadowsocks"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"aes-128-gcm",
|
|
"aes-192-gcm",
|
|
"aes-256-gcm",
|
|
"chacha20-ietf-poly1305",
|
|
"xchacha20-ietf-poly1305",
|
|
"2022-blake3-aes-128-gcm",
|
|
"2022-blake3-aes-256-gcm",
|
|
"2022-blake3-chacha20-poly1305"
|
|
]
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/ShadowsocksUser"
|
|
}
|
|
},
|
|
"destinations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/ShadowsocksDestination"
|
|
}
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/InboundMultiplexOptions"
|
|
},
|
|
"managed": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "shadowtls"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/ShadowTLSUser"
|
|
}
|
|
},
|
|
"handshake": {
|
|
"$ref": "#/$defs/ShadowTLSHandshakeOptions"
|
|
},
|
|
"handshake_for_server_name": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/ShadowTLSHandshakeOptions"
|
|
}
|
|
},
|
|
"strict_mode": {
|
|
"type": "boolean"
|
|
},
|
|
"wildcard_sni": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"off",
|
|
"authed",
|
|
"all"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "snell"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"const": 5
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"psk": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/SnellUser"
|
|
}
|
|
},
|
|
"obfs_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"http",
|
|
"tls"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"version"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "snell"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"const": 6
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"psk": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/SnellUser"
|
|
}
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"unshaped",
|
|
"unsafe-raw"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"version"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "socks"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/User"
|
|
}
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tproxy"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"udp_mapping": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_filtering": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_nat_max": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "trojan"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/TrojanUser"
|
|
}
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"fallback": {
|
|
"$ref": "#/$defs/ServerOptions"
|
|
},
|
|
"fallback_for_alpn": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/ServerOptions"
|
|
}
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/InboundMultiplexOptions"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/$defs/V2RayTransport"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tuic"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/TUICUser"
|
|
}
|
|
},
|
|
"congestion_control": {
|
|
"type": "string",
|
|
"enum": [
|
|
"cubic",
|
|
"new_reno",
|
|
"bbr"
|
|
]
|
|
},
|
|
"auth_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"zero_rtt_handshake": {
|
|
"type": "boolean"
|
|
},
|
|
"heartbeat": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tun"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"interface_name": {
|
|
"type": "string"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"examples": [
|
|
"172.19.0.1/30",
|
|
"fdfe:dcba:9876::1/126"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"172.19.0.1/30",
|
|
"fdfe:dcba:9876::1/126"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dns_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"disabled",
|
|
"native",
|
|
"hijack"
|
|
]
|
|
},
|
|
"dns_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auto_route": {
|
|
"type": "boolean"
|
|
},
|
|
"iproute2_table_index": {
|
|
"type": "integer"
|
|
},
|
|
"iproute2_rule_index": {
|
|
"type": "integer"
|
|
},
|
|
"auto_redirect": {
|
|
"type": "boolean"
|
|
},
|
|
"auto_redirect_input_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"auto_redirect_output_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"auto_redirect_reset_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"auto_redirect_nfqueue": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"auto_redirect_iproute2_fallback_rule_index": {
|
|
"type": "integer"
|
|
},
|
|
"exclude_mptcp": {
|
|
"type": "boolean"
|
|
},
|
|
"loopback_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"strict_route": {
|
|
"type": "boolean"
|
|
},
|
|
"route_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"route_address_set": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"route_exclude_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"route_exclude_address_set": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include_interface": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"exclude_interface": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include_uid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include_uid_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"exclude_uid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"exclude_uid_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include_android_user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include_package": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"exclude_package": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include_mac_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"exclude_mac_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"udp_mapping": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_filtering": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"endpoint_independent",
|
|
"address_dependent",
|
|
"address_and_port_dependent"
|
|
]
|
|
},
|
|
"udp_nat_max": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"stack": {
|
|
"type": "string",
|
|
"enum": [
|
|
"system",
|
|
"gvisor",
|
|
"mixed"
|
|
]
|
|
},
|
|
"platform": {
|
|
"$ref": "#/$defs/TunPlatformOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "vless"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/VLESSUser"
|
|
}
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/InboundMultiplexOptions"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/$defs/V2RayTransport"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "vmess"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/VMessUser"
|
|
}
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/InboundMultiplexOptions"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/$defs/V2RayTransport"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"InboundECHOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"key_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InboundMultiplexOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"padding": {
|
|
"type": "boolean"
|
|
},
|
|
"brutal": {
|
|
"$ref": "#/$defs/BrutalOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InboundRealityHandshakeOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InboundRealityOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"handshake": {
|
|
"$ref": "#/$defs/InboundRealityHandshakeOptions"
|
|
},
|
|
"private_key": {
|
|
"type": "string"
|
|
},
|
|
"short_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"max_time_difference": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InboundTLSOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"insecure": {
|
|
"type": "boolean"
|
|
},
|
|
"alpn": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"examples": [
|
|
"http/1.1",
|
|
"h2",
|
|
"h3"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"http/1.1",
|
|
"h2",
|
|
"h3"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"min_version": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"max_version": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"cipher_suites": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"curve_preferences": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"P256",
|
|
"P384",
|
|
"P521",
|
|
"X25519",
|
|
"X25519MLKEM768"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"P256",
|
|
"P384",
|
|
"P521",
|
|
"X25519",
|
|
"X25519MLKEM768"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"client_authentication": {
|
|
"type": "string",
|
|
"enum": [
|
|
"no",
|
|
"request",
|
|
"require-any",
|
|
"verify-if-given",
|
|
"require-and-verify"
|
|
]
|
|
},
|
|
"client_certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate_public_key_sha256": {
|
|
"anyOf": [
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"key_path": {
|
|
"type": "string"
|
|
},
|
|
"kernel_tx": {
|
|
"type": "boolean"
|
|
},
|
|
"kernel_rx": {
|
|
"type": "boolean"
|
|
},
|
|
"handshake_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"certificate_provider": {
|
|
"$ref": "#/$defs/CertificateProviderReference"
|
|
},
|
|
"ech": {
|
|
"$ref": "#/$defs/InboundECHOptions"
|
|
},
|
|
"reality": {
|
|
"$ref": "#/$defs/InboundRealityOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"InterfaceType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"cellular",
|
|
"ethernet",
|
|
"other",
|
|
"wifi"
|
|
]
|
|
},
|
|
"LogOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"level": {
|
|
"type": "string",
|
|
"enum": [
|
|
"trace",
|
|
"debug",
|
|
"info",
|
|
"warn",
|
|
"warning",
|
|
"error",
|
|
"fatal",
|
|
"panic"
|
|
]
|
|
},
|
|
"output": {
|
|
"type": "string"
|
|
},
|
|
"timestamp": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"NTPOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"write_to_system": {
|
|
"type": "boolean"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"NestedDNSRule": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"inbound": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"query_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/DNSQueryType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/DNSQueryType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auth_user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"protocol": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_keyword": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"source_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"clash_mode": {
|
|
"type": "string"
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_is_expensive": {
|
|
"type": "boolean"
|
|
},
|
|
"network_is_constrained": {
|
|
"type": "boolean"
|
|
},
|
|
"wifi_ssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"wifi_bssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"interface_address": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"network_interface_address": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"default_interface_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_mac_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_hostname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"preferred_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set_ip_cidr_match_source": {
|
|
"type": "boolean"
|
|
},
|
|
"match_response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"ip_accept_any": {
|
|
"type": "boolean"
|
|
},
|
|
"response_rcode": {
|
|
"$ref": "#/$defs/DNSRCode"
|
|
},
|
|
"response_answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"response_ns": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"response_extra": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "logical"
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"and",
|
|
"or"
|
|
]
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/NestedDNSRule"
|
|
}
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"mode",
|
|
"rules"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"NestedRule": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"inbound": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"icmp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"icmp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auth_user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"protocol": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_keyword": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"source_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"clash_mode": {
|
|
"type": "string"
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_is_expensive": {
|
|
"type": "boolean"
|
|
},
|
|
"network_is_constrained": {
|
|
"type": "boolean"
|
|
},
|
|
"wifi_ssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"wifi_bssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"interface_address": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"network_interface_address": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"default_interface_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_mac_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_hostname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"preferred_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set_ip_cidr_match_source": {
|
|
"type": "boolean"
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "logical"
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"and",
|
|
"or"
|
|
]
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/NestedRule"
|
|
}
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"mode",
|
|
"rules"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"NetworkNamespace": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"tag"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "unshare"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"pid_file": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"tag"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"OCMUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectCSDOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wrapper_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectFormEntryOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"form_id": {
|
|
"type": "string"
|
|
},
|
|
"submission_key": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
},
|
|
"promote": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectFortinetHostCheckOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hostcheck": {
|
|
"type": "string"
|
|
},
|
|
"check_virtual_desktop": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectHIPOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wrapper_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectMobileOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"platform_version": {
|
|
"type": "string"
|
|
},
|
|
"device_type": {
|
|
"type": "string"
|
|
},
|
|
"device_unique_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectTLSOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"insecure": {
|
|
"type": "boolean"
|
|
},
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"peer_fingerprint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"system_trust_disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"certificate_authority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_authority_path": {
|
|
"type": "string"
|
|
},
|
|
"client_certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"client_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_key_path": {
|
|
"type": "string"
|
|
},
|
|
"client_key_password": {
|
|
"type": "string"
|
|
},
|
|
"mca_certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"mca_certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"mca_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"mca_key_path": {
|
|
"type": "string"
|
|
},
|
|
"mca_key_password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectTNCCCertificateOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectTNCCOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wrapper_path": {
|
|
"type": "string"
|
|
},
|
|
"device_id": {
|
|
"type": "string"
|
|
},
|
|
"user_agent": {
|
|
"type": "string"
|
|
},
|
|
"machine_identification_enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"certificates": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OpenConnectTNCCCertificateOptions"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenConnectTokenOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"totp",
|
|
"hotp",
|
|
"stoken",
|
|
"oidc"
|
|
]
|
|
},
|
|
"secret": {
|
|
"type": "string"
|
|
},
|
|
"secret_path": {
|
|
"type": "string"
|
|
},
|
|
"pin": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"device_id": {
|
|
"type": "string"
|
|
},
|
|
"counter": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNControlWrapOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls_auth",
|
|
"tls_crypt",
|
|
"tls_crypt_v2"
|
|
]
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"key_path": {
|
|
"type": "string"
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNInboundControlWrapOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls_auth",
|
|
"tls_crypt",
|
|
"tls_crypt_v2"
|
|
]
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"key_path": {
|
|
"type": "string"
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client"
|
|
]
|
|
},
|
|
"force_cookie": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNInboundTLSOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"key_path": {
|
|
"type": "string"
|
|
},
|
|
"client_certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"verify_client_certificate": {
|
|
"type": "string",
|
|
"enum": [
|
|
"require",
|
|
"optional",
|
|
"none"
|
|
]
|
|
},
|
|
"client_name": {
|
|
"type": "string"
|
|
},
|
|
"client_name_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"subject",
|
|
"name",
|
|
"name-prefix"
|
|
]
|
|
},
|
|
"peer_fingerprint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"crl_path": {
|
|
"type": "string"
|
|
},
|
|
"remote_certificate_ku": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"remote_certificate_eku": {
|
|
"type": "string"
|
|
},
|
|
"remote_certificate_tls": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client",
|
|
"none"
|
|
]
|
|
},
|
|
"certificate_profile": {
|
|
"type": "string",
|
|
"enum": [
|
|
"legacy",
|
|
"preferred",
|
|
"insecure",
|
|
"suiteb"
|
|
]
|
|
},
|
|
"ns_certificate_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client"
|
|
]
|
|
},
|
|
"version_min": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"version_max": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"cipher": {
|
|
"type": "string"
|
|
},
|
|
"groups": {
|
|
"type": "string"
|
|
},
|
|
"control_wrap": {
|
|
"$ref": "#/$defs/OpenVPNInboundControlWrapOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNOutboundTLSOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"server_name_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"subject",
|
|
"name",
|
|
"name-prefix"
|
|
]
|
|
},
|
|
"certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"client_certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"client_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_key_path": {
|
|
"type": "string"
|
|
},
|
|
"peer_fingerprint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"crl_path": {
|
|
"type": "string"
|
|
},
|
|
"remote_certificate_ku": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"remote_certificate_eku": {
|
|
"type": "string"
|
|
},
|
|
"remote_certificate_tls": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client",
|
|
"none"
|
|
]
|
|
},
|
|
"certificate_profile": {
|
|
"type": "string",
|
|
"enum": [
|
|
"legacy",
|
|
"preferred",
|
|
"insecure",
|
|
"suiteb"
|
|
]
|
|
},
|
|
"ns_certificate_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"server",
|
|
"client"
|
|
]
|
|
},
|
|
"version_min": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"version_max": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"cipher": {
|
|
"type": "string"
|
|
},
|
|
"groups": {
|
|
"type": "string"
|
|
},
|
|
"control_wrap": {
|
|
"$ref": "#/$defs/OpenVPNControlWrapOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNPullFilterOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"accept",
|
|
"ignore",
|
|
"reject"
|
|
]
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNPushDNSServerOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"priority": {
|
|
"type": "integer"
|
|
},
|
|
"addresses": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"resolve_domains": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dnssec": {
|
|
"type": "string",
|
|
"enum": [
|
|
"yes",
|
|
"optional",
|
|
"no"
|
|
]
|
|
},
|
|
"transport": {
|
|
"type": "string",
|
|
"enum": [
|
|
"plain",
|
|
"dot",
|
|
"doh"
|
|
]
|
|
},
|
|
"sni": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNPushOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"routes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dns": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dns_servers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OpenVPNPushDNSServerOptions"
|
|
}
|
|
},
|
|
"search_domains": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dhcp_options": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"redirect_gateway": {
|
|
"type": "boolean"
|
|
},
|
|
"redirect_gateway_flags": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"block_outside_dns": {
|
|
"type": "boolean"
|
|
},
|
|
"ping_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ping_restart": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OpenVPNRemoteOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"network": {
|
|
"type": "string",
|
|
"enum": [
|
|
"udp",
|
|
"udp4",
|
|
"udp6",
|
|
"tcp",
|
|
"tcp4",
|
|
"tcp6"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Outbound": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "anytls"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"idle_session_check_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"idle_session_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"min_idle_session": {
|
|
"type": "integer"
|
|
},
|
|
"client_metadata": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "block"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "bridge"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"interface": {
|
|
"type": "string"
|
|
},
|
|
"bridge_name": {
|
|
"type": "string"
|
|
},
|
|
"iproute2_table_index": {
|
|
"type": "integer"
|
|
},
|
|
"iproute2_rule_index": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "direct"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "http"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "hysteria"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"server_ports": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"hop_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"up": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"up_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"down": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"down_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"obfs": {
|
|
"type": "string"
|
|
},
|
|
"auth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auth_str": {
|
|
"type": "string"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "hysteria2"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"server_ports": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"hop_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"hop_interval_max": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"up_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"down_mbps": {
|
|
"type": "integer"
|
|
},
|
|
"obfs": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "salamander"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "gecko"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"min_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"max_packet_size": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
},
|
|
"bbr_profile": {
|
|
"type": "string",
|
|
"enum": [
|
|
"standard",
|
|
"conservative",
|
|
"aggressive"
|
|
]
|
|
},
|
|
"brutal_debug": {
|
|
"type": "boolean"
|
|
},
|
|
"realm": {
|
|
"$ref": "#/$defs/Hysteria2Realm"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "naive"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"insecure_concurrency": {
|
|
"type": "integer"
|
|
},
|
|
"extra_headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"udp_over_tcp": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
1,
|
|
2
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"quic": {
|
|
"type": "boolean"
|
|
},
|
|
"quic_congestion_control": {
|
|
"type": "string",
|
|
"enum": [
|
|
"bbr",
|
|
"bbr2",
|
|
"cubic",
|
|
"reno"
|
|
]
|
|
},
|
|
"quic_session_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "selector"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"outbounds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
}
|
|
},
|
|
"default": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"interrupt_exist_connections": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "shadowsocks"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"aes-128-gcm",
|
|
"aes-192-gcm",
|
|
"aes-256-gcm",
|
|
"chacha20-ietf-poly1305",
|
|
"xchacha20-ietf-poly1305",
|
|
"2022-blake3-aes-128-gcm",
|
|
"2022-blake3-aes-256-gcm",
|
|
"2022-blake3-chacha20-poly1305",
|
|
"aes-128-ctr",
|
|
"aes-192-ctr",
|
|
"aes-256-ctr",
|
|
"aes-128-cfb",
|
|
"aes-192-cfb",
|
|
"aes-256-cfb",
|
|
"rc4-md5",
|
|
"chacha20-ietf",
|
|
"xchacha20"
|
|
]
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"plugin": {
|
|
"type": "string"
|
|
},
|
|
"plugin_opts": {
|
|
"type": "string"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"udp_over_tcp": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
1,
|
|
2
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/OutboundMultiplexOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "shadowtls"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "snell"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"const": 4
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"psk": {
|
|
"type": "string"
|
|
},
|
|
"userkey": {
|
|
"type": "string"
|
|
},
|
|
"reuse": {
|
|
"type": "boolean"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"obfs_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"http",
|
|
"tls"
|
|
]
|
|
},
|
|
"obfs_host": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"version"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "snell"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"const": 6
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"psk": {
|
|
"type": "string"
|
|
},
|
|
"userkey": {
|
|
"type": "string"
|
|
},
|
|
"reuse": {
|
|
"type": "boolean"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"unshaped",
|
|
"unsafe-raw"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"version"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "socks"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"enum": [
|
|
"4",
|
|
"4a",
|
|
"5"
|
|
]
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"udp_over_tcp": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
1,
|
|
2
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "ssh"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"private_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"private_key_path": {
|
|
"type": "string"
|
|
},
|
|
"private_key_passphrase": {
|
|
"type": "string"
|
|
},
|
|
"host_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"host_key_algorithms": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_version": {
|
|
"type": "string"
|
|
},
|
|
"cipher": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"mac": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"kex_algorithm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tor"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"executable_path": {
|
|
"type": "string"
|
|
},
|
|
"extra_args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"data_directory": {
|
|
"type": "string"
|
|
},
|
|
"torrc": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "trojan"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/OutboundMultiplexOptions"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/$defs/V2RayTransport"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "tuic"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"uuid": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"congestion_control": {
|
|
"type": "string",
|
|
"enum": [
|
|
"cubic",
|
|
"new_reno",
|
|
"bbr"
|
|
]
|
|
},
|
|
"udp_relay_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"native",
|
|
"quic"
|
|
]
|
|
},
|
|
"udp_over_stream": {
|
|
"type": "boolean"
|
|
},
|
|
"zero_rtt_handshake": {
|
|
"type": "boolean"
|
|
},
|
|
"heartbeat": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "urltest"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"outbounds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
}
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tolerance": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"interrupt_exist_connections": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "vless"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"uuid": {
|
|
"type": "string"
|
|
},
|
|
"flow": {
|
|
"type": "string"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/OutboundMultiplexOptions"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/$defs/V2RayTransport"
|
|
},
|
|
"packet_encoding": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "vmess"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"uuid": {
|
|
"type": "string"
|
|
},
|
|
"security": {
|
|
"type": "string",
|
|
"enum": [
|
|
"auto",
|
|
"none",
|
|
"zero",
|
|
"aes-128-cfb",
|
|
"aes-128-gcm",
|
|
"chacha20-poly1305"
|
|
]
|
|
},
|
|
"alter_id": {
|
|
"type": "integer"
|
|
},
|
|
"global_padding": {
|
|
"type": "boolean"
|
|
},
|
|
"authenticated_length": {
|
|
"type": "boolean"
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"packet_encoding": {
|
|
"type": "string",
|
|
"enum": [
|
|
"packetaddr",
|
|
"xudp"
|
|
]
|
|
},
|
|
"multiplex": {
|
|
"$ref": "#/$defs/OutboundMultiplexOptions"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/$defs/V2RayTransport"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"OutboundECHOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"config_path": {
|
|
"type": "string"
|
|
},
|
|
"query_server_name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OutboundMultiplexOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"h2mux",
|
|
"smux",
|
|
"yamux"
|
|
]
|
|
},
|
|
"max_connections": {
|
|
"type": "integer"
|
|
},
|
|
"min_streams": {
|
|
"type": "integer"
|
|
},
|
|
"max_streams": {
|
|
"type": "integer"
|
|
},
|
|
"padding": {
|
|
"type": "boolean"
|
|
},
|
|
"brutal": {
|
|
"$ref": "#/$defs/BrutalOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OutboundRealityOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"public_key": {
|
|
"type": "string"
|
|
},
|
|
"short_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OutboundTLSOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"engine": {
|
|
"type": "string",
|
|
"enum": [
|
|
"go",
|
|
"apple",
|
|
"windows"
|
|
]
|
|
},
|
|
"disable_sni": {
|
|
"type": "boolean"
|
|
},
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"insecure": {
|
|
"type": "boolean"
|
|
},
|
|
"alpn": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"examples": [
|
|
"http/1.1",
|
|
"h2",
|
|
"h3"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"http/1.1",
|
|
"h2",
|
|
"h3"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"min_version": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"max_version": {
|
|
"type": "string",
|
|
"enum": [
|
|
"1.0",
|
|
"1.1",
|
|
"1.2",
|
|
"1.3"
|
|
]
|
|
},
|
|
"cipher_suites": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"curve_preferences": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"P256",
|
|
"P384",
|
|
"P521",
|
|
"X25519",
|
|
"X25519MLKEM768"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"P256",
|
|
"P384",
|
|
"P521",
|
|
"X25519",
|
|
"X25519MLKEM768"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"certificate_public_key_sha256": {
|
|
"anyOf": [
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_certificate_path": {
|
|
"type": "string"
|
|
},
|
|
"client_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client_key_path": {
|
|
"type": "string"
|
|
},
|
|
"fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"fragment_fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"record_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"spoof": {
|
|
"type": "string"
|
|
},
|
|
"spoof_method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"wrong-sequence",
|
|
"wrong-checksum",
|
|
"wrong-ack",
|
|
"wrong-md5",
|
|
"wrong-timestamp"
|
|
]
|
|
},
|
|
"kernel_tx": {
|
|
"type": "boolean"
|
|
},
|
|
"kernel_rx": {
|
|
"type": "boolean"
|
|
},
|
|
"handshake_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ech": {
|
|
"$ref": "#/$defs/OutboundECHOptions"
|
|
},
|
|
"utls": {
|
|
"$ref": "#/$defs/OutboundUTLSOptions"
|
|
},
|
|
"reality": {
|
|
"$ref": "#/$defs/OutboundRealityOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OutboundUTLSOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"fingerprint": {
|
|
"type": "string",
|
|
"enum": [
|
|
"chrome_psk",
|
|
"chrome_psk_shuffle",
|
|
"chrome_padding_psk_shuffle",
|
|
"chrome_pq",
|
|
"chrome_pq_psk",
|
|
"chrome",
|
|
"firefox",
|
|
"edge",
|
|
"safari",
|
|
"360",
|
|
"qq",
|
|
"ios",
|
|
"android",
|
|
"random",
|
|
"randomized"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RouteOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Rule"
|
|
}
|
|
},
|
|
"rule_set": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/RuleSet"
|
|
}
|
|
},
|
|
"final": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"find_process": {
|
|
"type": "boolean"
|
|
},
|
|
"find_neighbor": {
|
|
"type": "boolean"
|
|
},
|
|
"dhcp_lease_files": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auto_detect_interface": {
|
|
"type": "boolean"
|
|
},
|
|
"override_android_vpn": {
|
|
"type": "boolean"
|
|
},
|
|
"default_interface": {
|
|
"type": "string"
|
|
},
|
|
"default_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"default_domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"default_network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"default_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"default_fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"default_fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"default_http_client": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Rule": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"unevaluatedProperties": false,
|
|
"allOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"inbound": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
4,
|
|
6
|
|
]
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"icmp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"icmp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"auth_user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"protocol": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"client": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_keyword": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"domain_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"ip_cidr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ip_is_private": {
|
|
"type": "boolean"
|
|
},
|
|
"source_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"port_range": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"process_path_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"package_name_regex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"clash_mode": {
|
|
"type": "string"
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"network_is_expensive": {
|
|
"type": "boolean"
|
|
},
|
|
"network_is_constrained": {
|
|
"type": "boolean"
|
|
},
|
|
"wifi_ssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"wifi_bssid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"interface_address": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"network_interface_address": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"default_interface_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_mac_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"source_hostname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"preferred_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"x-tag-reference": "rule_set"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rule_set_ip_cidr_match_source": {
|
|
"type": "boolean"
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/$defs/RuleAction"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"unevaluatedProperties": false,
|
|
"allOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "logical"
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"and",
|
|
"or"
|
|
]
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/NestedRule"
|
|
}
|
|
},
|
|
"invert": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"mode",
|
|
"rules"
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/$defs/RuleAction"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"RuleAction": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "route"
|
|
},
|
|
"outbound": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"override_address": {
|
|
"type": "string"
|
|
},
|
|
"override_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_disable_domain_unmapping": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_connect": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"tls_fragment_fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls_record_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"tls_spoof": {
|
|
"type": "string"
|
|
},
|
|
"tls_spoof_method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"wrong-sequence",
|
|
"wrong-checksum",
|
|
"wrong-ack",
|
|
"wrong-md5",
|
|
"wrong-timestamp"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "route-options"
|
|
},
|
|
"override_address": {
|
|
"type": "string"
|
|
},
|
|
"override_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_disable_domain_unmapping": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_connect": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"tls_fragment_fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls_record_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"tls_spoof": {
|
|
"type": "string"
|
|
},
|
|
"tls_spoof_method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"wrong-sequence",
|
|
"wrong-checksum",
|
|
"wrong-ack",
|
|
"wrong-md5",
|
|
"wrong-timestamp"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "direct"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "bypass"
|
|
},
|
|
"outbound": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"override_address": {
|
|
"type": "string"
|
|
},
|
|
"override_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"udp_disable_domain_unmapping": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_connect": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"tls_fragment_fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tls_record_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"tls_spoof": {
|
|
"type": "string"
|
|
},
|
|
"tls_spoof_method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"wrong-sequence",
|
|
"wrong-checksum",
|
|
"wrong-ack",
|
|
"wrong-md5",
|
|
"wrong-timestamp"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "reject"
|
|
},
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"",
|
|
"default",
|
|
"drop",
|
|
"reply"
|
|
]
|
|
},
|
|
"no_drop": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "hijack-dns"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "sniff"
|
|
},
|
|
"sniffer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tls",
|
|
"http",
|
|
"quic",
|
|
"dns",
|
|
"stun",
|
|
"bittorrent",
|
|
"dtls",
|
|
"ssh",
|
|
"rdp",
|
|
"ntp"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"const": "resolve"
|
|
},
|
|
"server": {
|
|
"type": "string",
|
|
"x-tag-reference": "dns_server"
|
|
},
|
|
"timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"strategy": {
|
|
"$ref": "#/$defs/DomainStrategy"
|
|
},
|
|
"disable_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_optimistic_cache": {
|
|
"type": "boolean"
|
|
},
|
|
"rewrite_ttl": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"client_subnet": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"RuleSet": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"inline",
|
|
""
|
|
]
|
|
},
|
|
"tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/HeadlessRule"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"tag"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "local"
|
|
},
|
|
"tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"source",
|
|
"binary"
|
|
]
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"tag"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "remote"
|
|
},
|
|
"tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"source",
|
|
"binary"
|
|
]
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"initial_path": {
|
|
"type": "string"
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
},
|
|
"update_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"tag"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"ServerOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Service": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "api"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"secret": {
|
|
"type": "string"
|
|
},
|
|
"access_control_allow_origin": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"examples": [
|
|
"http://sing-box-dashboard.sagernet.org/",
|
|
"https://sing-box-dashboard.sagernet.org/"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"http://sing-box-dashboard.sagernet.org/",
|
|
"https://sing-box-dashboard.sagernet.org/"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"access_control_allow_private_network": {
|
|
"type": "boolean"
|
|
},
|
|
"dashboard": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"download_url": {
|
|
"type": "string"
|
|
},
|
|
"http_client": {
|
|
"$ref": "#/$defs/HTTPClientReference"
|
|
},
|
|
"update_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "ccm"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"credential_path": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/CCMUser"
|
|
}
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"usages_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "derp"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"config_path": {
|
|
"type": "string"
|
|
},
|
|
"verify_client_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"verify_client_url": {
|
|
"anyOf": [
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"engine": {
|
|
"type": "string",
|
|
"enum": [
|
|
"go",
|
|
"apple"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"disable_version_fallback": {
|
|
"type": "boolean"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"engine": {
|
|
"type": "string",
|
|
"enum": [
|
|
"go",
|
|
"apple"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"disable_version_fallback": {
|
|
"type": "boolean"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/OutboundTLSOptions"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"initial_packet_size": {
|
|
"type": "integer"
|
|
},
|
|
"disable_path_mtu_discovery": {
|
|
"type": "boolean"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"home": {
|
|
"type": "string"
|
|
},
|
|
"mesh_with": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/DERPMeshOptions"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/DERPMeshOptions"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"mesh_psk": {
|
|
"type": "string"
|
|
},
|
|
"mesh_psk_file": {
|
|
"type": "string"
|
|
},
|
|
"stun": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "hysteria-realm"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"keep_alive_period": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"stream_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"connection_receive_window": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"max_concurrent_streams": {
|
|
"type": "integer"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/HysteriaRealmUser"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "ocm"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
},
|
|
"credential_path": {
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OCMUser"
|
|
}
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"usages_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "oom-killer"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"memory_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"safety_margin": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"min_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"max_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "resolved"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "ssm-api"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"servers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"cache_path": {
|
|
"type": "string"
|
|
},
|
|
"tls": {
|
|
"$ref": "#/$defs/InboundTLSOptions"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "usbip-client"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"devices": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/USBIPDeviceMatch"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "usbip-server"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
""
|
|
]
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
},
|
|
"devices": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/USBIPDeviceMatch"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "usbip-server"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"const": "dynamic"
|
|
},
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"listen_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"udp_timeout": {
|
|
"$ref": "#/$defs/UDPTimeout"
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "inbound"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"provider"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"ShadowTLSHandshakeOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"detour": {
|
|
"type": "string",
|
|
"x-tag-reference": "outbound"
|
|
},
|
|
"bind_interface": {
|
|
"type": "string"
|
|
},
|
|
"inet4_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"inet6_bind_address": {
|
|
"type": "string"
|
|
},
|
|
"bind_address_no_port": {
|
|
"type": "boolean"
|
|
},
|
|
"protect_path": {
|
|
"type": "string"
|
|
},
|
|
"routing_mark": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"reuse_addr": {
|
|
"type": "boolean"
|
|
},
|
|
"netns": {
|
|
"type": "string",
|
|
"x-tag-reference": "network_namespace"
|
|
},
|
|
"connect_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_fast_open": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_multi_path": {
|
|
"type": "boolean"
|
|
},
|
|
"disable_tcp_keep_alive": {
|
|
"type": "boolean"
|
|
},
|
|
"tcp_keep_alive": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"tcp_keep_alive_interval": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"udp_fragment": {
|
|
"type": "boolean"
|
|
},
|
|
"domain_resolver": {
|
|
"$ref": "#/$defs/DomainResolver"
|
|
},
|
|
"network_strategy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"default",
|
|
"fallback",
|
|
"hybrid"
|
|
]
|
|
},
|
|
"network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_network_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/InterfaceType"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/InterfaceType"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"fallback_delay": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ShadowTLSUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ShadowsocksDestination": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"server": {
|
|
"type": "string"
|
|
},
|
|
"server_port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ShadowsocksUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SnellUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"userkey": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TUICUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"uuid": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TrojanUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TunPlatformOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"http_proxy": {
|
|
"$ref": "#/$defs/HTTPProxyOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UDPTimeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\.\\d+)(ns|us|µs|μs|ms|s|m|h|d))+|0)$"
|
|
}
|
|
]
|
|
},
|
|
"USBIPDeviceMatch": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bus_id": {
|
|
"type": "string"
|
|
},
|
|
"vendor_id": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"product_id": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"serial": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"User": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Username": {
|
|
"type": "string"
|
|
},
|
|
"Password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"V2RayAPIOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"listen": {
|
|
"type": "string"
|
|
},
|
|
"stats": {
|
|
"$ref": "#/$defs/V2RayStatsServiceOptions"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"V2RayStatsServiceOptions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"inbounds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"outbounds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"V2RayTransport": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "http"
|
|
},
|
|
"host": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ping_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "ws"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
},
|
|
"max_early_data": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4294967295
|
|
},
|
|
"early_data_header_name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "quic"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "grpc"
|
|
},
|
|
"service_name": {
|
|
"type": "string"
|
|
},
|
|
"idle_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"ping_timeout": {
|
|
"$ref": "#/$defs/Duration"
|
|
},
|
|
"permit_without_stream": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"const": "httpupgrade"
|
|
},
|
|
"host": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"$ref": "#/$defs/HTTPHeader"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"VLESSUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"uuid": {
|
|
"type": "string"
|
|
},
|
|
"flow": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"VMessUser": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"uuid": {
|
|
"type": "string"
|
|
},
|
|
"alterId": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"WireGuardPeer": {
|
|
"type": "object",
|
|
"properties": {
|
|
"address": {
|
|
"type": "string"
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"public_key": {
|
|
"type": "string"
|
|
},
|
|
"pre_shared_key": {
|
|
"type": "string"
|
|
},
|
|
"allowed_ips": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"persistent_keepalive_interval": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"reserved": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|