| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- version = 1
- [common]
- # API mode, set to true to prevent loading local subscriptions or serving local files directly
- api_mode = false
- # Access token used for performing critical action through Web interface
- api_access_token = "password"
- # Default URLs, used when no URL is provided in request, use "|" to separate multiple subscription links, supports local files/URL
- default_url = []
- # Insert subscription links to requests. Can be used to add node(s) to all exported subscriptions.
- enable_insert = true
- # URLs to insert before subscription links, can be used to add node(s) to all exported subscriptions, supports local files/URL
- insert_url = [""]
- # Prepend inserted URLs to subscription links. Nodes in insert_url will be added to groups first with non-group-specific match pattern.
- prepend_insert_url = true
- # Exclude nodes which remarks match the following patterns. Supports regular expression.
- exclude_remarks = ["(到期|剩余流量|时间|官网|产品)"]
- # Only include nodes which remarks match the following patterns. Supports regular expression.
- #include_remarks = ["V3.*港"]
- # Enable script support for filtering nodes
- enable_filter = false
- # Script used for filtering nodes. Supports inline script and script path. A "filter" function with 1 argument which is a node should be defined in the script.
- # Example: Inline script: set value to content of script.
- # Script path: set value to "path:/path/to/script.js".
- #filter_script = '''
- #function filter(node) {
- # const info = JSON.parse(node.ProxyInfo);
- # if(info.EncryptMethod.includes('chacha20'))
- # return true;
- # return false;
- #}
- #'''
- # Setting an external config file as default when none is specified, supports local files/URL
- # default_external_config = "config/example_external_config.toml"
- # The file scope limit of the 'rule_base' options in external configs.
- base_path = "base"
- # Clash config base used by the generator, supports local files/URL
- clash_rule_base = "base/all_base.tpl"
- # Surge config base used by the generator, supports local files/URL
- surge_rule_base = "base/all_base.tpl"
- # Surfboard config base used by the generator, supports local files/URL
- surfboard_rule_base = "base/all_base.tpl"
- # Mellow config base used by the generator, supports local files/URL
- mellow_rule_base = "base/all_base.tpl"
- # Quantumult config base used by the generator, supports local files/URL
- quan_rule_base = "base/all_base.tpl"
- # Quantumult X config base used by the generator, supports local files/URL
- quanx_rule_base = "base/all_base.tpl"
- # Loon config base used by the generator, supports local files/URL
- loon_rule_base = "base/all_base.tpl"
- # Shadowsocks Android config base used by the generator, supports local files/URL
- sssub_rule_base = "base/all_base.tpl"
- # sing-box config base used by the generator, supports local files/URL
- singbox_rule_base = "base/all_base.tpl"
- # Proxy used to download rulesets or subscriptions, set to NONE or empty to disable it, set to SYSTEM to use system proxy.
- # Accept cURL-supported proxies (http:// https:// socks4a:// socks5://)
- proxy_config = "SYSTEM"
- proxy_ruleset = "SYSTEM"
- proxy_subscription = "NONE"
- # Append a proxy type string ([SS] [SSR] [VMess]) to node remark.
- append_proxy_type = false
- # When requesting /sub, reload this config file first.
- reload_conf_on_request = false
- [[userinfo.stream_rule]]
- # Rules to extract stream data from node
- # Format: full_match_regex|new_format_regex
- # where new_format_regex should be like "total=$1&left=$2&used=$3"
- match = '^剩余流量:(.*?)\|总流量:(.*)$'
- replace = 'total=$2&left=$1'
- [[userinfo.stream_rule]]
- match = '^剩余流量:(.*?) (.*)$'
- replace = 'total=$1&left=$2'
- [[userinfo.stream_rule]]
- match = '^Bandwidth: (.*?)/(.*)$'
- replace = 'used=$1&total=$2'
- [[userinfo.stream_rule]]
- match = '^.*剩余(.*?)(?:\s*?)@(?:.*)$'
- replace = 'total=$1'
- [[userinfo.time_rule]]
- # Rules to extract expire time data from node
- # Format: full_match_regex|new_format_regex
- # where new_format_regex should follow this example: yyyy:mm:dd:hh:mm:ss
- match = '^过期时间:(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$'
- replace = '$1:$2:$3:$4:$5:$6'
- [[userinfo.time_rule]]
- match = '^到期时间:(\d+)-(\d+)-(\d+)$'
- replace = '$1:$2:$3:0:0:0'
- [[userinfo.time_rule]]
- match = '^Smart Access expire: (\d+)/(\d+)/(\d+)$'
- replace = '$1:$2:$3:0:0:0'
- [node_pref]
- #udp_flag = false
- #tcp_fast_open_flag = false
- #skip_cert_verify_flag = false
- #tls13_flag = false
- sort_flag = false
- # Script used for sorting nodes. A "compare" function with 2 arguments which are the 2 nodes to be compared should be defined in the script. Supports inline script and script path.
- # Examples can be seen at the filter_script option in [common] section.
- #sort_script = '''
- #function compare(node_a, node_b) {
- # return info_a.Remark > info_b.Remark;
- #}
- #'''
- filter_deprecated_nodes = false
- append_sub_userinfo = true
- clash_use_new_field_name = true
- # Generate style of the proxies and proxy groups section of Clash subscriptions.
- # Supported styles: block, flow, compact
- # Block: - name: name1 Flow: - {name: name1, key: value} Compact: [{name: name1, key: value},{name: name2, key: value}]
- # key: value - {name: name2, key: value}
- # - name: name2
- # key: value
- clash_proxies_style = "flow"
- clash_proxy_groups_style = "block"
- # add Clash mode to sing-box rules, and add a GLOBAL group to end of outbounds
- singbox_add_clash_modes = true
- [[node_pref.rename_node]]
- match = '\(?((x|X)?(\d+)(\.?\d+)?)((\s?倍率?)|(x|X))\)?'
- replace = "$1x"
- [managed_config]
- # Append a '#!MANAGED-CONFIG' info to Surge configurations
- write_managed_config = true
- # Address prefix for MANAGED-CONFIG info, without the trailing "/".
- managed_config_prefix = "http://127.0.0.1:25500"
- # Managed config update interval in seconds, determine how long the config will be updated.
- config_update_interval = 86400
- # If config_update_strict is set to true, Surge will require a force update after the interval.
- config_update_strict = false
- # Device ID to be written to rewrite scripts for some version of Quantumult X
- quanx_device_id = ""
- [surge_external_proxy]
- #surge_ssr_path = "/usr/bin/ssr-local"
- resolve_hostname = true
- [emojis]
- add_emoji = false
- remove_old_emoji = true
- [[emojis.emoji]]
- #match = '(流量|时间|应急)'
- #emoji = '🏳️🌈'
- import = "snippets/emoji.toml"
- # [[custom_groups]]
- # name = "Auto"
- # type = "url-test"
- # rule = [".*"]
- # url = "http://www.gstatic.com/generate_204"
- # interval = 300
- # tolerance = 150
- # lazy = true
- # [[custom_groups]]
- # name = "Proxy"
- # type = "select"
- # rule = [".*", "[]DIRECT"]
- # disable_udp = false
- # [[custom_groups]]
- # name = "LoadBalance"
- # type = "load-balance"
- # rule = [".*", "[]Proxy", "[]DIRECT"]
- # interval = 100
- # strategy = "consistent-hashing"
- # url = "http://www.gstatic.com/generate_204"
- [[custom_groups]]
- import = "snippets/groups.toml"
- [ruleset]
- # Enable generating rules with rulesets
- enabled = true
- # Overwrite the existing rules in rule_base
- overwrite_original_rules = false
- # Perform a ruleset update on request
- update_ruleset_on_request = false
- # [[rulesets]]
- # group = "Proxy"
- # ruleset = "https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Unbreak.list"
- # type = "surge-ruleset"
- # interval = 86400
- [[rulesets]]
- import = "snippets/rulesets.toml"
- [template]
- template_path = ""
- [[template.globals]]
- key = "clash.http_port"
- value = "7890"
- [[template.globals]]
- key = "clash.socks_port"
- value = "7891"
- [[template.globals]]
- key = "clash.allow_lan"
- value = "true"
- [[template.globals]]
- key = "clash.log_level"
- value = "info"
- [[template.globals]]
- key = "clash.external_controller"
- value = "127.0.0.1:9090"
- [[template.globals]]
- key = "singbox.allow_lan"
- value = "true"
- [[template.globals]]
- key = "singbox.mixed_port"
- value = "2080"
- [[aliases]]
- uri = "/clash"
- target = "/sub?target=clash"
- [[aliases]]
- uri = "/clashr"
- target = "/sub?target=clashr"
- [[aliases]]
- uri = "/surge"
- target = "/sub?target=surge"
- [[aliases]]
- uri = "/quan"
- target = "/sub?target=quan"
- [[aliases]]
- uri = "/quanx"
- target = "/sub?target=quanx"
- [[aliases]]
- uri = "/mellow"
- target = "/sub?target=mellow"
- [[aliases]]
- uri = "/surfboard"
- target = "/sub?target=surfboard"
- [[aliases]]
- uri = "/loon"
- target = "/sub?target=loon"
- [[aliases]]
- uri = "/singbox"
- target = "/sub?target=singbox"
- [[aliases]]
- uri = "/ss"
- target = "/sub?target=ss"
- [[aliases]]
- uri = "/ssd"
- target = "/sub?target=ssd"
- [[aliases]]
- uri = "/sssub"
- target = "/sub?target=sssub"
- [[aliases]]
- uri = "/ssr"
- target = "/sub?target=ssr"
- [[aliases]]
- uri = "/v2ray"
- target = "/sub?target=v2ray"
- [[aliases]]
- uri = "/trojan"
- target = "/sub?target=trojan"
- [[aliases]]
- uri = "/test"
- target = "/render?path=templates/test.tpl"
- #[[tasks]]
- #name = "tick"
- #cronexp = "0/10 * * * * ?"
- #path = "tick.js"
- #timeout = 3
- [server]
- listen = "0.0.0.0"
- port = 25500
- serve_file_root = "web"
- [advanced]
- log_level = "debug"
- print_debug_info = true
- max_pending_connections = 10240
- max_concurrent_threads = 4
- max_allowed_rulesets = 64
- max_allowed_rules = 0
- max_allowed_download_size = 0
- enable_cache = true
- cache_subscription = 60
- cache_config = 300
- cache_ruleset = 21600
- script_clean_context = true
- async_fetch_ruleset = false
- skip_failed_links = true
|