Skip to content

Commit b9235e9

Browse files
committed
Bump version
1 parent 594a9cd commit b9235e9

1 file changed

Lines changed: 244 additions & 1 deletion

File tree

docs/changelog.md

Lines changed: 244 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,218 @@
22
icon: 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

49239
See [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

Comments
 (0)