Ver Fonte

Add `dns.cache_capacity`

世界 há 11 meses atrás
pai
commit
c9f9d9ee1c
4 ficheiros alterados com 38 adições e 1 exclusões
  1. 18 0
      docs/configuration/dns/index.md
  2. 18 1
      docs/configuration/dns/index.zh.md
  3. 1 0
      option/dns.go
  4. 1 0
      route/router.go

+ 18 - 0
docs/configuration/dns/index.md

@@ -1,3 +1,12 @@
+---
+icon: material/new
+---
+
+
+!!! quote "Changes in sing-box 1.11.0"
+
+    :material-plus: [cache_capacity](#cache_capacity)
+
 !!! quote "Changes in sing-box 1.9.0"
 
     :material-plus: [client_subnet](#client_subnet)
@@ -16,6 +25,7 @@
     "disable_cache": false,
     "disable_expire": false,
     "independent_cache": false,
+    "cache_capacity": 0,
     "reverse_mapping": false,
     "client_subnet": "",
     "fakeip": {}
@@ -58,6 +68,14 @@ Disable dns cache expire.
 
 Make each DNS server's cache independent for special purposes. If enabled, will slightly degrade performance.
 
+#### cache_capacity
+
+!!! quote "Since sing-box 1.11.0"
+
+LRU cache capacity.
+
+Value less than 1024 will be ignored.
+
 #### reverse_mapping
 
 Stores a reverse mapping of IP addresses after responding to a DNS query in order to provide domain names when routing.

+ 18 - 1
docs/configuration/dns/index.zh.md

@@ -1,4 +1,12 @@
-!!! quote "sing-box 1.9.0 中的更改"
+---
+icon: material/new
+---
+
+!!! quote "自 sing-box 1.11.0 起"
+
+    :material-plus: [cache_capacity](#cache_capacity)
+
+!!! quote "自 sing-box 1.9.0 起"
 
     :material-plus: [client_subnet](#client_subnet)
 
@@ -16,6 +24,7 @@
     "disable_cache": false,
     "disable_expire": false,
     "independent_cache": false,
+    "cache_capacity": 0,
     "reverse_mapping": false,
     "client_subnet": "",
     "fakeip": {}
@@ -57,6 +66,14 @@
 
 使每个 DNS 服务器的缓存独立,以满足特殊目的。如果启用,将轻微降低性能。
 
+#### cache_capacity
+
+!!! quote "自 sing-box 1.11.0 起"
+
+LRU 缓存容量。
+
+小于 1024 的值将被忽略。
+
 #### reverse_mapping
 
 在响应 DNS 查询后存储 IP 地址的反向映射以为路由目的提供域名。

+ 1 - 0
option/dns.go

@@ -31,6 +31,7 @@ type DNSClientOptions struct {
 	DisableCache     bool                  `json:"disable_cache,omitempty"`
 	DisableExpire    bool                  `json:"disable_expire,omitempty"`
 	IndependentCache bool                  `json:"independent_cache,omitempty"`
+	CacheCapacity    uint32                `json:"cache_capacity,omitempty"`
 	ClientSubnet     *badoption.Prefixable `json:"client_subnet,omitempty"`
 }
 

+ 1 - 0
route/router.go

@@ -96,6 +96,7 @@ func NewRouter(ctx context.Context, logFactory log.Factory, options option.Route
 		DisableCache:     dnsOptions.DNSClientOptions.DisableCache,
 		DisableExpire:    dnsOptions.DNSClientOptions.DisableExpire,
 		IndependentCache: dnsOptions.DNSClientOptions.IndependentCache,
+		CacheCapacity:    dnsOptions.DNSClientOptions.CacheCapacity,
 		RDRC: func() dns.RDRCStore {
 			cacheFile := service.FromContext[adapter.CacheFile](ctx)
 			if cacheFile == nil {