22icon : material/alert-decagram
33---
44
5+ #### 1.14.0-alpha.13
6+
7+ * Unify HTTP client ** 1**
8+ * Add Apple HTTP and TLS engines ** 2**
9+ * Unify HTTP/2 and QUIC parameters ** 3**
10+ * Add TLS spoof ** 4**
11+ * Fixes and improvements
12+
13+ ** 1** :
14+
15+ The new top-level [ ` http_clients ` ] ( /configuration/shared/http-client/ )
16+ option defines reusable HTTP clients (engine, version, dialer, TLS,
17+ HTTP/2 and QUIC parameters). Components that make outbound HTTP requests
18+ — remote rule-sets, ACME and Cloudflare Origin CA certificate providers,
19+ DERP ` verify_client_url ` , and the Tailscale ` control_http_client ` — now
20+ accept an inline HTTP client object or the tag of an ` http_clients `
21+ entry, replacing the dial and TLS fields previously inlined in each
22+ component. When the field is omitted, ACME, Cloudflare Origin CA, DERP
23+ and Tailscale dial direct (their existing default).
24+
25+ Remote rule-sets are the only HTTP-using component whose default for an
26+ omitted ` http_client ` has historically resolved to the default outbound,
27+ not to direct, and a typical configuration contains many of them. To
28+ avoid repeating the same ` http_client ` block in every rule-set,
29+ [ ` route.default_http_client ` ] ( /configuration/route/#default_http_client )
30+ selects a default rule-set client by tag and is the only field that
31+ consults it. If ` default_http_client ` is empty and ` http_clients ` is
32+ non-empty, the first entry is used automatically. The legacy fallback
33+ (use the default outbound when ` http_clients ` is empty altogether) is
34+ preserved with a deprecation warning and will be removed in sing-box
35+ 1.16.0, together with the legacy ` download_detour ` remote rule-set
36+ option and the legacy dialer fields on Tailscale endpoints.
37+
38+ ** 2** :
39+
40+ A new ` apple ` engine is available on Apple platforms in two independent
41+ places:
42+
43+ * [ HTTP client ` engine ` ] ( /configuration/shared/http-client/#engine ) —
44+ routes HTTP requests through ` NSURLSession ` .
45+ * Outbound TLS [ ` engine ` ] ( /configuration/shared/tls/#engine ) — routes
46+ the TLS handshake through ` Network.framework ` for direct TCP TLS
47+ client connections.
48+
49+ The default remains ` go ` . Both engines come with additional CGO and
50+ framework memory overhead and platform restrictions documented on each
51+ field.
52+
53+ ** 3** :
54+
55+ [ HTTP/2] ( /configuration/shared/http2/ ) and
56+ [ QUIC] ( /configuration/shared/quic/ ) parameters
57+ (` idle_timeout ` , ` keep_alive_period ` , ` stream_receive_window ` ,
58+ ` connection_receive_window ` , ` max_concurrent_streams ` ,
59+ ` initial_packet_size ` , ` disable_path_mtu_discovery ` ) are now shared
60+ across QUIC-based outbounds
61+ ([ Hysteria] ( /configuration/outbound/hysteria/ ) ,
62+ [ Hysteria2] ( /configuration/outbound/hysteria2/ ) ,
63+ [ TUIC] ( /configuration/outbound/tuic/ ) ) and HTTP clients running HTTP/2
64+ or HTTP/3.
65+
66+ This deprecates the Hysteria v1 tuning fields ` recv_window_conn ` ,
67+ ` recv_window ` , ` recv_window_client ` , ` max_conn_client ` and
68+ ` disable_mtu_discovery ` ; they will be removed in sing-box 1.16.0.
69+
70+ ** 4** :
71+
72+ Added outbound TLS [ ` spoof ` ] ( /configuration/shared/tls/#spoof ) and
73+ [ ` spoof_method ` ] ( /configuration/shared/tls/#spoof_method ) fields. When
74+ enabled, a forged ClientHello carrying a whitelisted SNI is sent before
75+ the real handshake to fool SNI-filtering middleboxes. Requires
76+ ` CAP_NET_RAW ` + ` CAP_NET_ADMIN ` or root on Linux and macOS, and
77+ Administrator privileges on Windows (ARM64 is not supported). IP-literal
78+ server names are rejected.
79+
80+ #### 1.14.0-alpha.12
81+
82+ * Fix fake-ip DNS server should return SUCCESS when address type is not configured
83+ * Fixes and improvements
84+
585#### 1.13.8
686
787* Update naiveproxy to v147.0.7727.49-1
888* Fix fake-ip DNS server should return SUCCESS when address type is not configured
989* Fixes and improvements
1090
11- #### 1.13.7
91+ #### 1.14.0-alpha.11
92+
93+ * Add optimistic DNS cache ** 1**
94+ * Update NaiveProxy to 147.0.7727.49
95+ * Fixes and improvements
96+
97+ ** 1** :
98+
99+ Optimistic DNS cache returns an expired cached response immediately while
100+ refreshing it in the background, reducing tail latency for repeated
101+ queries. Enabled via [ ` optimistic ` ] ( /configuration/dns/#optimistic )
102+ in DNS options, and can be persisted across restarts with the new
103+ [ ` store_dns ` ] ( /configuration/experimental/cache-file/#store_dns ) cache
104+ file option. A per-query
105+ [ ` disable_optimistic_cache ` ] ( /configuration/dns/rule_action/#disable_optimistic_cache )
106+ field is also available on DNS rule actions and the ` resolve ` route rule
107+ action.
12108
109+ This deprecates the ` independent_cache ` DNS option (the DNS cache now
110+ always keys by transport) and the ` store_rdrc ` cache file option
111+ (replaced by ` store_dns ` ); both will be removed in sing-box 1.16.0.
112+ See [ Migration] ( /migration/#migrate-independent-dns-cache ) .
113+
114+ #### 1.14.0-alpha.10
115+
116+ * Add ` evaluate ` DNS rule action and Response Match Fields ** 1**
117+ * ` ip_version ` and ` query_type ` now also take effect on internal DNS lookups ** 2**
118+ * Add ` package_name_regex ` route, DNS and headless rule item ** 3**
119+ * Add cloudflared inbound ** 4**
13120* Fixes and improvements
14121
122+ ** 1** :
123+
124+ Response Match Fields
125+ ([ ` response_rcode ` ] ( /configuration/dns/rule/#response_rcode ) ,
126+ [ ` response_answer ` ] ( /configuration/dns/rule/#response_answer ) ,
127+ [ ` response_ns ` ] ( /configuration/dns/rule/#response_ns ) ,
128+ and [ ` response_extra ` ] ( /configuration/dns/rule/#response_extra ) )
129+ match the evaluated DNS response. They are gated by the new
130+ [ ` match_response ` ] ( /configuration/dns/rule/#match_response ) field and
131+ populated by a preceding
132+ [ ` evaluate ` ] ( /configuration/dns/rule_action/#evaluate ) DNS rule action;
133+ the evaluated response can also be returned directly by a
134+ [ ` respond ` ] ( /configuration/dns/rule_action/#respond ) action.
135+
136+ This deprecates the Legacy Address Filter Fields (` ip_cidr ` ,
137+ ` ip_is_private ` without ` match_response ` ) in DNS rules, the Legacy
138+ ` strategy ` DNS rule action option, and the Legacy
139+ ` rule_set_ip_cidr_accept_empty ` DNS rule item; all three will be removed
140+ in sing-box 1.16.0.
141+ See [ Migration] ( /migration/#migrate-address-filter-fields-to-response-matching ) .
142+
143+ ** 2** :
144+
145+ ` ip_version ` and ` query_type ` in DNS rules, together with ` query_type ` in
146+ referenced rule-sets, now take effect on every DNS rule evaluation,
147+ including matches from internal domain resolutions that do not target a
148+ specific DNS server (for example a ` resolve ` route rule action without
149+ ` server ` set). In earlier versions they were silently ignored in that
150+ path. Combining these fields with any of the legacy DNS fields deprecated
151+ in ** 1** in the same DNS configuration is no longer supported and is
152+ rejected at startup.
153+ See [ Migration] ( /migration/#ip_version-and-query_type-behavior-changes-in-dns-rules ) .
154+
155+ ** 3** :
156+
157+ See [ Route Rule] ( /configuration/route/rule/#package_name_regex ) ,
158+ [ DNS Rule] ( /configuration/dns/rule/#package_name_regex ) and
159+ [ Headless Rule] ( /configuration/rule-set/headless-rule/#package_name_regex ) .
160+
161+ ** 4** :
162+
163+ See [ Cloudflared] ( /configuration/inbound/cloudflared/ ) .
164+
165+ #### 1.13.7
166+
167+ * Fixes and improvement
168+
15169#### 1.13.6
16170
17171* Fixes and improvements
18172
173+ #### 1.14.0-alpha.8
174+
175+ * Add BBR profile and hop interval randomization for Hysteria2 ** 1**
176+ * Fixes and improvements
177+
178+ ** 1** :
179+
180+ See [ Hysteria2 Inbound] ( /configuration/inbound/hysteria2/#bbr_profile ) and [ Hysteria2 Outbound] ( /configuration/outbound/hysteria2/#bbr_profile ) .
181+
182+ #### 1.14.0-alpha.8
183+
184+ * Fixes and improvements
185+
19186#### 1.13.5
20187
21188* Fixes and improvements
22189
190+ #### 1.14.0-alpha.7
191+
192+ * Fixes and improvements
193+
23194#### 1.13.4
24195
25196* Fixes and improvements
26197
198+ #### 1.14.0-alpha.4
199+
200+ * Refactor ACME support to certificate provider system ** 1**
201+ * Add Cloudflare Origin CA certificate provider ** 2**
202+ * Add Tailscale certificate provider ** 3**
203+ * Fixes and improvements
204+
205+ ** 1** :
206+
207+ See [ Certificate Provider] ( /configuration/shared/certificate-provider/ ) and [ Migration] ( /migration/#migrate-inline-acme-to-certificate-provider ) .
208+
209+ ** 2** :
210+
211+ See [ Cloudflare Origin CA] ( /configuration/shared/certificate-provider/cloudflare-origin-ca ) .
212+
213+ ** 3** :
214+
215+ See [ Tailscale] ( /configuration/shared/certificate-provider/tailscale ) .
216+
27217#### 1.13.3
28218
29219* Add OpenWrt and Alpine APK packages to release ** 1**
@@ -48,6 +238,59 @@ from [SagerNet/go](https://github.com/SagerNet/go).
48238
49239See [ OCM] ( /configuration/service/ocm ) .
50240
241+ #### 1.12.24
242+
243+ * Fixes and improvements
244+
245+ #### 1.14.0-alpha.2
246+
247+ * Add OpenWrt and Alpine APK packages to release ** 1**
248+ * Backport to macOS 10.13 High Sierra ** 2**
249+ * OCM service: Add WebSocket support for Responses API ** 3**
250+ * Fixes and improvements
251+
252+ ** 1** :
253+
254+ Alpine APK files use ` linux ` in the filename to distinguish from OpenWrt APKs which use the ` openwrt ` prefix:
255+
256+ - OpenWrt: ` sing-box_{version}_openwrt_{architecture}.apk `
257+ - Alpine: ` sing-box_{version}_linux_{architecture}.apk `
258+
259+ ** 2** :
260+
261+ Legacy macOS binaries (with ` -legacy-macos-10.13 ` suffix) now support
262+ macOS 10.13 High Sierra, built using Go 1.25 with patches
263+ from [ SagerNet/go] ( https://github.com/SagerNet/go ) .
264+
265+ ** 3** :
266+
267+ See [ OCM] ( /configuration/service/ocm ) .
268+
269+ #### 1.14.0-alpha.1
270+
271+ * Add ` source_mac_address ` and ` source_hostname ` rule items ** 1**
272+ * Add ` include_mac_address ` and ` exclude_mac_address ` TUN options ** 2**
273+ * Update NaiveProxy to 145.0.7632.159 ** 3**
274+ * Fixes and improvements
275+
276+ ** 1** :
277+
278+ New rule items for matching LAN devices by MAC address and hostname via neighbor resolution.
279+ Supported on Linux, macOS, or in graphical clients on Android and macOS.
280+
281+ See [ Route Rule] ( /configuration/route/rule/#source_mac_address ) , [ DNS Rule] ( /configuration/dns/rule/#source_mac_address ) and [ Neighbor Resolution] ( /configuration/shared/neighbor/ ) .
282+
283+ ** 2** :
284+
285+ Limit or exclude devices from TUN routing by MAC address.
286+ Only supported on Linux with ` auto_route ` and ` auto_redirect ` enabled.
287+
288+ See [ TUN] ( /configuration/inbound/tun/#include_mac_address ) .
289+
290+ ** 3** :
291+
292+ This is not an official update from NaiveProxy. Instead, it's a Chromium codebase update maintained by Project S.
293+
51294#### 1.13.2
52295
53296* Fixes and improvements
0 commit comments