Last active
March 11, 2026 18:09
-
-
Save artiga033/fea992d95ad44dc8d024b229223b1002 to your computer and use it in GitHub Desktop.
Revisions
-
artiga033 revised this gist
Feb 10, 2026 . 1 changed file with 86 additions and 86 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -51,7 +51,7 @@ } }, "$defs": { "types/string-or-array.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$comment": "singbox allows using single string for array types if there is only one element.\n\nThis type is to allow the behavior.", "oneOf": [ @@ -66,7 +66,7 @@ } ] }, "certificate.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -89,7 +89,7 @@ } } }, "dns/fakeip.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -109,7 +109,7 @@ } } }, "dns/rule_action.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "oneOf": [ @@ -234,7 +234,7 @@ } ] }, "dns/rule.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { @@ -539,7 +539,7 @@ } } }, "dns/server/legacy.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": ["address"], @@ -578,7 +578,7 @@ } } }, "shared/dial.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "detour": { @@ -662,7 +662,7 @@ } } }, "dns/server/local.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -678,7 +678,7 @@ } ] }, "dns/server/hosts.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -696,7 +696,7 @@ } } }, "dns/server/tcp.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -722,7 +722,7 @@ } ] }, "dns/server/udp.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -748,7 +748,7 @@ } ] }, "shared/tls-outbound.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -899,7 +899,7 @@ } } }, "dns/server/tls.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -929,7 +929,7 @@ } ] }, "dns/server/quic.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -959,7 +959,7 @@ } ] }, "dns/server/https.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -1001,7 +1001,7 @@ } ] }, "dns/server/h3.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -1043,7 +1043,7 @@ } ] }, "dns/server/dhcp.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -1063,7 +1063,7 @@ } ] }, "dns/server/fakeip.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "type": { @@ -1082,7 +1082,7 @@ } } }, "dns/server/tailscale.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "required": ["endpoint"], "properties": { @@ -1100,7 +1100,7 @@ } } }, "dns/server/resolved.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "required": ["service"], "properties": { @@ -1118,7 +1118,7 @@ } } }, "dns/server.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -1195,7 +1195,7 @@ } ] }, "dns.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -1252,7 +1252,7 @@ } } }, "endpoint/wireguard.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -1350,7 +1350,7 @@ } ] }, "endpoint/tailscale.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -1421,7 +1421,7 @@ } ] }, "endpoint.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -1451,7 +1451,7 @@ } ] }, "experimental/cache-file.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -1481,7 +1481,7 @@ } } }, "experimental/clash-api.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -1544,7 +1544,7 @@ } } }, "experimental/v2ray-api.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -1585,7 +1585,7 @@ } } }, "experimental.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -1603,7 +1603,7 @@ } } }, "shared/listen.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -1691,7 +1691,7 @@ } } }, "inbound/direct.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -1724,7 +1724,7 @@ } ] }, "inbound/mixed.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -1764,7 +1764,7 @@ } ] }, "inbound/socks.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -1800,7 +1800,7 @@ } ] }, "shared/dns01_challenge.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "oneOf": [ @@ -1838,7 +1838,7 @@ } ] }, "shared/tls-inbound.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -2039,7 +2039,7 @@ } } }, "inbound/http.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2082,7 +2082,7 @@ } ] }, "shared/tcp-brutal.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -2100,7 +2100,7 @@ } } }, "shared/multiplex-inbound.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -2117,7 +2117,7 @@ } } }, "inbound/shadowsocks.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2206,7 +2206,7 @@ } ] }, "shared/v2ray-transport.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "oneOf": [ @@ -2329,7 +2329,7 @@ } ] }, "inbound/vmess.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2378,7 +2378,7 @@ } ] }, "inbound/trojan.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2450,7 +2450,7 @@ } ] }, "inbound/naive.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2494,7 +2494,7 @@ } ] }, "inbound/hysteria.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2573,7 +2573,7 @@ } ] }, "inbound/shadowtls.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2670,7 +2670,7 @@ } ] }, "inbound/tuic.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2731,7 +2731,7 @@ } ] }, "inbound/hysteria2.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2847,7 +2847,7 @@ } ] }, "inbound/vless.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2897,7 +2897,7 @@ } ] }, "inbound/anytls.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -2943,7 +2943,7 @@ } ] }, "inbound/tun.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3183,7 +3183,7 @@ } ] }, "inbound/redirect.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3203,7 +3203,7 @@ } ] }, "inbound/tproxy.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3228,7 +3228,7 @@ } ] }, "inbound.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -3321,7 +3321,7 @@ } ] }, "log.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -3344,7 +3344,7 @@ } } }, "ntp.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -3376,7 +3376,7 @@ } ] }, "outbound/direct.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3404,7 +3404,7 @@ } } }, "outbound/block.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "required": ["type"], "properties": { @@ -3417,7 +3417,7 @@ } } }, "shared/udp-over-tcp.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$comment": "The structure can be replaced with a boolean value when the version is not specified.", "oneOf": [ @@ -3440,7 +3440,7 @@ } ] }, "outbound/socks.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3489,7 +3489,7 @@ } ] }, "outbound/http.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3539,7 +3539,7 @@ } ] }, "shared/multiplex-outbound.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -3573,7 +3573,7 @@ } } }, "outbound/shadowsocks.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3648,7 +3648,7 @@ } ] }, "outbound/vmess.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3723,7 +3723,7 @@ } ] }, "outbound/trojan.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3769,7 +3769,7 @@ } ] }, "outbound/wireguard.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3877,7 +3877,7 @@ } ] }, "outbound/hysteria.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -3961,7 +3961,7 @@ } ] }, "outbound/vless.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4017,7 +4017,7 @@ } ] }, "outbound/shadowtls.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4057,7 +4057,7 @@ } ] }, "outbound/tuic.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4123,7 +4123,7 @@ } ] }, "outbound/hysteria2.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4197,7 +4197,7 @@ } ] }, "outbound/anytls.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4244,7 +4244,7 @@ } ] }, "outbound/tor.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4284,7 +4284,7 @@ } ] }, "outbound/ssh.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -4347,7 +4347,7 @@ } ] }, "outbound/dns.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "deprecated": true, "required": ["type"], @@ -4361,7 +4361,7 @@ } } }, "outbound/selector.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "required": ["type", "outbounds"], "properties": { @@ -4389,7 +4389,7 @@ } } }, "outbound/urltest.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "required": ["type", "outbounds"], "properties": { @@ -4429,7 +4429,7 @@ } } }, "outbound.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ @@ -4530,7 +4530,7 @@ } ] }, "rule-set/headless-rule.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { @@ -4701,7 +4701,7 @@ } } }, "rule-set.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "oneOf": [ @@ -4776,7 +4776,7 @@ } ] }, "route/rule_action.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "oneOf": [ @@ -4983,7 +4983,7 @@ } ] }, "route/rule.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { @@ -5269,7 +5269,7 @@ } } }, "route.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -5346,7 +5346,7 @@ } } }, "service/derp.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -5456,7 +5456,7 @@ } ] }, "service/resolved.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -5476,7 +5476,7 @@ } ] }, "service/ssm-api.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { @@ -5510,7 +5510,7 @@ } ] }, "service.schema.json": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "allOf": [ -
artiga033 revised this gist
Feb 10, 2026 . 1 changed file with 5546 additions and 3686 deletions.There are no files selected for viewing
-
artiga033 revised this gist
Dec 4, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2282,7 +2282,7 @@ "method": { "type": "string", "enum": [ "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305", "none", -
artiga033 revised this gist
Dec 4, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1005,7 +1005,7 @@ "description": "Tag of the target dns server." }, "disable_cache": { "type": "boolean", "description": "Disable cache and save cache in this query." }, "rewrite_ttl": { -
artiga033 revised this gist
Dec 4, 2023 . 1 changed file with 667 additions and 53 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,7 +6,7 @@ "$defs": { "listableString": { "$comments": "ref:https://github.com/SagerNet/sing-box/blob/b0db869b052aa32ec1716e43f7c1f50d7e491057/option/types.go#L77", "description": "allow not having to be an array when there's single item", "oneOf": [ { "type": "array", @@ -41,10 +41,22 @@ "type": "boolean", "description": "Enable TCP Fast Open." }, "tcp_multi_path": { "type": "boolean", "description": "Go 1.21 required.\nEnable TCP Multi Path." }, "udp_fragment": { "type": "boolean", "description": "Enable UDP fragmentation." }, "udp_timeout": { "type": "integer", "description": "UDP NAT expiration time in seconds, default is 300 (5 minutes)." }, "detour": { "type": "string", "description": "If set, connections will be forwarded to the specified inbound. Requires target inbound support, see Injectable." }, "sniff": { "type": "boolean", "description": "Enable sniffing. See Protocol Sniff for details." @@ -68,21 +80,9 @@ ], "description": "If set, the requested domain name will be resolved to IP before routing. If sniff_override_destination is in effect, its value will be taken as a fallback." }, "udp_disable_domain_unmapping": { "type": "boolean", "description": "If enabled, for UDP proxy requests addressed to a domain, the original packet address will be sent in the response instead of the mapped domain.\nThis option is used for compatibility with clients that do not support receiving UDP packets with domain addresses, such as Surge." } }, "required": [ @@ -368,6 +368,30 @@ } } }, "ech": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "pq_signature_schemes_enabled": { "type": "boolean", "description": "Enable support for post-quantum peer certificate signature schemes.\nIt is recommended to match the parameters of sing-box generate ech-keypair." }, "dynamic_record_sizing_disabled": { "type": "boolean", "description": "Disables adaptive sizing of TLS records.\nWhen true, the largest possible TLS record size is always used.\nWhen false, the size of TLS records may be adjusted in an attempt to improve latency." }, "key": { "$ref": "#/$defs/listableString", "description": "ECH key line array, in PEM format." }, "key_path": { "type": "string", "description": "The path to ECH key, in PEM format." } } }, "reality": { "type": "object", "properties": { @@ -469,13 +493,20 @@ "type": "boolean" }, "pq_signature_schemes_enabled": { "type": "boolean", "description": "Enable support for post-quantum peer certificate signature schemes.\nIt is recommended to match the parameters of sing-box generate ech-keypair." }, "dynamic_record_sizing_disabled": { "type": "boolean", "description": "Disables adaptive sizing of TLS records.\nWhen true, the largest possible TLS record size is always used.\nWhen false, the size of TLS records may be adjusted in an attempt to improve latency." }, "config": { "type": "string", "description": "ECH key line array, in PEM format.\nIf empty, load from DNS will be attempted." }, "config_path": { "type": "string", "description": "The path to ECH key, in PEM format.\nIf empty, load from DNS will be attempted." } } }, @@ -536,7 +567,8 @@ "http", "ws", "quic", "grpc", "httpupgrade" ] } }, @@ -553,7 +585,7 @@ "then": { "properties": { "host": { "$ref": "#/$defs/listableString", "description": "List of host domain.\nThe client will choose randomly and the server will verify if not empty." }, "path": { @@ -567,6 +599,16 @@ "headers": { "type": "object", "description": "Extra headers of HTTP request.\nThe server will write in response if not empty." }, "idle_timeout": { "type": "string", "$ref": "#/$defs/durationStringPattern", "description": "In HTTP2 server:\nSpecifies the time until idle clients should be closed with a GOAWAY frame. PING frames are not considered as activity.\nIn HTTP2 client:\nSpecifies the period of time after which a health check will be performed using a ping frame if no frames have been received on the connection. Please note that a ping response is considered a received frame, so if there is no other traffic on the connection, the health check will be executed every interval. If the value is zero, no health check will be performed.\nZero is used by default." }, "ping_timeout": { "type": "string", "$ref": "#/$defs/durationStringPattern", "description": "In HTTP2 client:\nSpecifies the timeout duration after sending a PING frame, within which a response must be received. If a response to the PING frame is not received within the specified timeout duration, the connection will be closed. The default timeout duration is 15 seconds." } } } @@ -623,13 +665,69 @@ "service_name": { "type": "string", "description": "Service name of gRPC." }, "idle_timeout": { "type": "string", "$ref": "#/$defs/durationStringPattern", "description": "In standard gRPC server/client:\nIf the transport doesn't see any activity after a duration of this time, it pings the client to check if the connection is still active.\nIn default gRPC server/client:\nIt has the same behavior as the corresponding setting in HTTP transport." }, "ping_timeout": { "type": "string", "$ref": "#/$defs/durationStringPattern", "description": "In standard gRPC server/client:\nThe timeout that after performing a keepalive check, the client will wait for activity. If no activity is detected, the connection will be closed.\nIn default gRPC server/client:\nIt has the same behavior as the corresponding setting in HTTP transport." }, "permit_without_stream": { "type": "boolean", "description": "In standard gRPC client:\nIf enabled, the client transport sends keepalive pings even with no active connections. If disabled, when there are no active connections, idle_timeout and ping_timeout will be ignored and no keepalive pings will be sent.\nDisabled by default." } } } }, { "if": { "properties": { "type": { "const": "httpupgrade" } } }, "then": { "properties": { "host": { "type": "string", "description": "Host domain.\nThe server will verify if not empty." }, "path": { "type": "string", "description": "Path of HTTP request.\nThe server will verify if not empty." }, "headers": { "type": "object", "description": "Extra headers of HTTP request.\nThe server will write in response if not empty." } } } } ] }, "tcpBrutal": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable TCP Brutal congestion control algorithm。" }, "up_mbps": { "type": "integer", "description": "Upload bandwidth, in Mbps." }, "down_mbps": { "type": "integer", "description": "Download bandwidth, in Mbps." } } }, "outboundMultiplexOptions": { "type": "object", "properties": { "enabled": { @@ -655,6 +753,31 @@ "max_streams": { "type": "integer", "description": "Maximum multiplexed streams in a connection before opening a new connection.\nConflict with max_connections and min_streams." }, "padding": { "type": "boolean", "description": "Requires sing-box server version 1.3-beta9 or later.\nEnable padding." }, "brutal": { "type": "object", "$ref": "#/$defs/tcpBrutal" } } }, "inboundMultiplexOptions": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable multiplex support." }, "padding": { "type": "boolean", "description": "If enabled, non-padded connections will be rejected." }, "brutal": { "type": "object", "$ref": "#/$defs/tcpBrutal" } } }, @@ -697,7 +820,7 @@ }, "address": { "type": "string", "pattern": "local|\\d{1,3}(\\.\\d{1,3}){3}|((tcp|udp|)://\\d{1,3}(\\.\\d{1,3}){3})|(tls|https|quic|h3)://([a-z0-9.-]+)(/.*)?|(rcode://(success|format_error|server_failure|name_error|not_implemented|refused))|dhcp://(auto|en\\d+)|fakeip", "description": "The address of the dns server." }, "address_resolver": { @@ -728,7 +851,10 @@ "type": "string", "description": "Tag of an outbound for connecting to the dns server." } }, "required": [ "address" ] }, "defaultDnsRule": { "type": "object", @@ -788,16 +914,22 @@ }, "geosite": { "$ref": "#/$defs/listableString", "description": "[Deprecated in sing-box 1.8.0] Match geosite.", "deprecated": true }, "source_geoip": { "$ref": "#/$defs/listableString", "description": "[Deprecated in sing-box 1.8.0] Match source geoip.", "deprecated": true }, "source_ip_cidr": { "$ref": "#/$defs/listableString", "description": "Match source ip cidr." }, "source_ip_is_private": { "type": "boolean", "description": "Match non-public source IP." }, "source_port": { "$ref": "#/$defs/portNumber", "description": "Match source port." @@ -848,6 +980,18 @@ "type": "string", "description": "Match Clash mode." }, "wifi_ssid": { "$ref": "#/$defs/listableString", "description": "Only supported in graphical clients on Android and iOS.\nMatch WiFi SSID." }, "wifi_bssid": { "$ref": "#/$defs/listableString", "description": "Only supported in graphical clients on Android and iOS.\nMatch WiFi BSSID." }, "rule_set": { "$ref": "#/$defs/listableString", "description": "Match Rule Set." }, "invert": { "type": "boolean", "description": "Invert match result." @@ -863,6 +1007,10 @@ "disable_cache": { "type": "bool", "description": "Disable cache and save cache in this query." }, "rewrite_ttl": { "type": "integer", "description": "Rewrite TTL in DNS responses." } }, "required": [ @@ -888,24 +1036,26 @@ "items": { "$ref": "#/$defs/defaultDnsRule" }, "description": "Included rules." } } }, "fakeIP": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable FakeIP service." }, "inet4_range": { "type": "string", "description": "IPv4 address range for FakeIP." }, "inet6_range": { "type": "string", "description": "IPv6 address range for FakeIP." } } }, "dnsOptions": { "type": "object", @@ -951,6 +1101,17 @@ "disable_expire": { "type": "boolean", "description": "Disable dns cache expire." }, "independent_cache": { "type": "boolean", "description": "Make each DNS server's cache independent for special purposes. If enabled, will slightly degrade performance." }, "reverse_mapping": { "type": "boolean", "description": "Stores a reverse mapping of IP addresses after responding to a DNS query in order to provide domain names when routing.\nSince this process relies on the act of resolving domain names by an application before making a request, it can be problematic in environments such as macOS, where DNS is proxied and cached by the system." }, "fakeip": { "$ref": "#/$defs/fakeIP" } } }, @@ -1006,6 +1167,8 @@ "naive", "hysteria", "shadowtls", "tuic", "hysteria2", "vless", "tun", "redirect", @@ -1510,6 +1673,155 @@ ] } }, { "if": { "properties": { "type": { "const": "tuic" } } }, "then": { "allOf": [ { "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "uuid": { "type": "string", "description": "TUIC user uuid." }, "password": { "type": "string", "description": "TUIC user password." } }, "required": [ "uuid" ] }, "description": "TUIC users." }, "congestion_control": { "type": "string", "enum": [ "cubic", "new_reno", "bbr" ], "description": "QUIC congestion control algorithm.\nOne of: cubic, new_reno, bbr\ncubic is used by default." }, "auth_timeout": { "type": "string", "$ref": "#/$defs/durationStringPattern", "description": "How long the server should wait for the client to send the authentication command.\n3s is used by default." }, "zero_rtt_handshake": { "type": "boolean", "description": "Enable 0-RTT QUIC connection handshake on the client side.\nThis is not impacting much on the performance, as the protocol is fully multiplexed.\n\nDisabling this is highly recommended, as it is vulnerable to replay attacks. See Attack of the clones." }, "heartbeat": { "type": "string", "$ref": "#/$defs/durationStringPattern", "description": "Interval for sending heartbeat packets for keeping the connection alive.\n10s is used by default." }, "tls": { "$ref": "#/$defs/inboundTlsOptions" } }, "required": [ "users", "tls" ] }, { "$ref": "#/$defs/listenFields" } ] } }, { "if": { "properties": { "type": { "const": "hysteria2" } } }, "then": { "allOf": [ { "properties": { "up_mbps": { "type": "number", "description": "Max bandwidth, in Mbps.\nNot limited if empty.\nConflict with ignore_client_bandwidth." }, "down_mbps": { "type": "number", "description": "Max bandwidth, in Mbps.\nNot limited if empty.\nConflict with ignore_client_bandwidth." }, "obfs": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "salamander" ], "description": "QUIC traffic obfuscator type, only available with salamander.\nDisabled if empty." }, "password": { "type": "string", "description": "QUIC traffic obfuscator password." } } }, "users": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "password": { "type": "string", "description": "Authentication password" } } }, "description": "Hysteria2 users" }, "ignore_client_bandwidth": { "type": "boolean", "description": "Commands the client to use the BBR flow control algorithm instead of Hysteria CC.\nConflict with up_mbps and down_mbps." }, "tls": { "$ref": "#/$defs/inboundTlsOptions" }, "masquerade": { "type": "string", "description": "HTTP3 server behavior when authentication fails.\nA 404 page will be returned if empty.", "pattern": "file:\\/\\/.*|https?:\\/\\/.*" }, "brutal_debug": { "type": "boolean", "description": "Enable debug information logging for Hysteria Brutal CC." } } }, { "$ref": "#/$defs/listenFields" } ] } }, { "if": { "properties": { @@ -1778,6 +2090,8 @@ "shadowsocksr", "vless", "shadowtls", "tuic", "hysteria2", "tor", "ssh", "dns", @@ -2018,7 +2332,7 @@ }, "multiplex": { "type": "object", "$ref": "#/$defs/outboundMultiplexOptions" } }, "required": [ @@ -2117,7 +2431,7 @@ }, "multiplex": { "type": "object", "$ref": "#/$defs/outboundMultiplexOptions" }, "transport": { "type": "object", @@ -2174,7 +2488,7 @@ }, "multiplex": { "type": "object", "$ref": "#/$defs/outboundMultiplexOptions" }, "transport": { "type": "object", @@ -2574,6 +2888,158 @@ ] } }, { "if": { "properties": { "type": { "const": "tuic" } } }, "then": { "allOf": [ { "properties": { "server": { "type": "string", "description": "The server address." }, "server_port": { "type": "integer", "description": "The server port." }, "uuid": { "type": "string", "description": "TUIC user uuid" }, "password": { "type": "string", "description": "TUIC user password" }, "congestion_control": { "type": "string", "enum": [ "cubic", "new_reno", "bbr" ], "description": "QUIC congestion control algorithm" }, "udp_relay_mode": { "type": "string", "oneOf": [ { "const": "native", "description": "native UDP characteristics" }, { "const": "quic", "description": "lossless UDP relay using QUIC streams, additional overhead is introduced" } ], "description": "UDP packet relay mode\nConflict with udp_over_stream." }, "udp_over_stream": { "type": "boolean", "description": "This is the TUIC port of the UDP over TCP protocol, designed to provide a QUIC stream based UDP relay mode that TUIC does not provide. Since it is an add-on protocol, you will need to use sing-box or another program compatible with the protocol as a server.\n\nThis mode has no positive effect in a proper UDP proxy scenario and should only be applied to relay streaming UDP traffic (basically QUIC streams).\n\nConflict with udp_relay_mode." }, "network": { "type": "string", "enum": [ "tcp", "udp" ], "description": "Enabled network\nOne of tcp udp.\nBoth is enabled by default." }, "tls": { "$ref": "#/$defs/outboundTlsOptions" } }, "required": [ "server", "server_port", "uuid", "password", "tls" ] }, { "$ref": "#/$defs/dialFields" } ] } }, { "if": { "properties": { "type": { "const": "hysteria2" } } }, "then": { "allOf": [ { "properties": { "server": { "type": "string", "description": "The server address." }, "server_port": { "type": "integer", "description": "The server port." }, "up_mbps": { "type": "number", "description": "Max bandwidth, in Mbps.\nIf empty, the BBR congestion control algorithm will be used instead of Hysteria CC." }, "down_mbps": { "type": "number", "description": "Max bandwidth, in Mbps.\nIf empty, the BBR congestion control algorithm will be used instead of Hysteria CC." }, "obfs": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "salamander" ], "description": "QUIC traffic obfuscator type, only available with salamander.\nDisabled if empty." }, "password": { "type": "string", "description": "QUIC traffic obfuscator password." } } }, "password": { "type": "string", "description": "Authentication password." }, "network": { "type": "string", "enum": [ "tcp", "udp" ], "description": "Enabled network\nOne of tcp udp.\nBoth is enabled by default." }, "tls": { "$ref": "#/$defs/outboundTlsOptions" }, "brutal_debug": { "type": "boolean", "description": "Enable debug information logging for Hysteria Brutal CC." } } }, { "$ref": "#/$defs/dialFields" } ] } }, { "if": { "properties": { @@ -2795,6 +3261,13 @@ 6 ] }, "network": { "type": "string", "enum": [ "tcp", "udp" ] }, "auth_user": { "$ref": "#/$defs/listableString", "description": "Username, see each inbound for details." @@ -2803,13 +3276,6 @@ "$ref": "#/$defs/listableString", "description": "Sniffed protocol, see Sniff for details." }, "domain": { "$ref": "#/$defs/listableString", "description": "Match full domain." @@ -2828,24 +3294,35 @@ }, "geosite": { "$ref": "#/$defs/listableString", "description": "[Deprecated in sing-box 1.8.0] Match geosite.", "deprecated": true }, "source_geoip": { "$ref": "#/$defs/listableString", "description": "[Deprecated in sing-box 1.8.0] Match source geoip.", "deprecated": true }, "geoip": { "$ref": "#/$defs/listableString", "description": "[Deprecated in sing-box 1.8.0] Match geoip.", "deprecated": true }, "source_ip_cidr": { "$ref": "#/$defs/listableString", "description": "Match source ip cidr." }, "source_ip_is_private": { "type": "boolean", "description": "Match non-public source IP." }, "ip_cidr": { "$ref": "#/$defs/listableString", "description": "Match ip cidr." }, "ip_is_private": { "type": "boolean", "description": "Match non-public IP." }, "source_port": { "$ref": "#/$defs/portNumber", "description": "Match source port." @@ -2896,6 +3373,18 @@ "type": "string", "description": "Match Clash mode." }, "wifi_ssid": { "$ref": "#/$defs/listableString", "description": "Only supported in graphical clients on Android and iOS. Match wifi ssid." }, "wifi_bssid": { "$ref": "#/$defs/listableString", "description": "Only supported in graphical clients on Android and iOS. Match wifi bssid." }, "rule_set": { "$ref": "#/$defs/listableString", "description": "Match rule set." }, "invert": { "type": "boolean", "description": "Invert match result." @@ -2943,6 +3432,88 @@ "outbound" ] }, "ruleSet": { "type": "object", "allOf": [ { "properties": { "type": { "type": "string", "enum": [ "local", "remote" ], "description": "Type of Rule Set, local or remote" }, "tag": { "type": "string", "description": "Tag of Rule Set" }, "format": { "type": "string", "description": "Format of Rule Set, source or binary.", "enum": [ "source", "binary" ] } }, "required": [ "type", "tag", "format" ] }, { "if": { "properties": { "type": { "const": "local" } } }, "then": { "properties": { "path": { "type": "string", "description": "File path of Rule Set." } }, "required": [ "path" ] } }, { "if": { "properties": { "type": { "const": "remote" } } }, "then": { "properties": { "url": { "type": "string", "description": "Download URL of Rule Set." }, "download_detour": { "type": "string", "description": "Tag of the outbound to download rule-set.\nDefault outbound will be used if empty" }, "update_interval": { "type": "string", "description": "Update interval of Rule Set.\n1d will be used if empty." } }, "required": [ "url" ] } } ] }, "routeOptions": { "type": "object", "properties": { @@ -2965,6 +3536,13 @@ ] } }, "rule_set": { "type": "array", "items": { "type": "object", "$ref": "#/$defs/ruleSet" } }, "final": { "type": "string", "description": "Default outbound tag. the first outbound will be used if empty." @@ -2990,6 +3568,27 @@ "experimentalOptions": { "type": "object", "properties": { "cache_file": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable cache file." }, "path": { "type": "string", "description": "Path to the cache file.\ncache.db will be used if empty." }, "cache_id": { "type": "string", "description": "Identifier in cache file.\nIf not empty, configuration specified data will use a separate store keyed by it." }, "store_fakeip": { "type": "boolean", "description": "Store fakeip in cache file." } } }, "clash_api": { "external_controller": { "type": "string", @@ -2999,6 +3598,14 @@ "type": "string", "description": "A relative path to the configuration directory or an absolute path to a directory in which you put some static web resource. sing-box will then serve it at http://{{external-controller}}/ui." }, "external_ui_download_url": { "type": "string", "description": "ZIP download URL for the external UI, will be used if the specified external_ui directory is empty.\nhttps://github.com/MetaCubeX/Yacd-meta/archive/gh-pages.zip will be used if empty." }, "external_ui_download_detour": { "type": "string", "description": "The tag of the outbound to download the external UI.\nDefault outbound will be used if empty." }, "secret": { "type": "string", "description": "Secret for the RESTful API (optional) Authenticate by spedifying HTTP header Authorization: Bearer ${secret} ALWAYS set a secret if RESTful API is listening on 0.0.0.0" @@ -3007,13 +3614,20 @@ "type": "string", "description": "Default mode in clash, rule will be used if empty.\nThis setting has no direct effect, but can be used in routing and DNS rules via the clash_mode rule item." }, "store_mode": { "type": "boolean", "description": "[Deprecated in sing-box 1.8.0] Store mode in cache file. Store Clash mode in cache file.", "deprecated": true }, "store_selected": { "type": "boolean", "description": "[Deprecated in sing-box 1.8.0] The tag must be set for target outbounds.\nStore selected outbound for the Selector outbound in cache file.", "deprecated": true }, "cache_file": { "type": "string", "description": "[Deprecated in sing-box 1.8.0] Cache file path, cache.db will be used if empty.", "deprecated": true } }, "v2ray_api": { -
artiga033 revised this gist
Mar 17, 2023 . 1 changed file with 1 addition and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1208,8 +1208,7 @@ }, "required": [ "method", "password" ] }, { -
artiga033 revised this gist
Mar 15, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -910,7 +910,7 @@ "dnsOptions": { "type": "object", "properties": { "servers": { "type": "array", "items": { "$ref": "#/$defs/dnsServer" -
artiga033 created this gist
Mar 12, 2023 .There are no files selected for viewing