{ "$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 } } }