- The profile-guided optimization profile (
default.pgo) now includes v1.0.1 profiles from four production nodes under real load, alongside the previous ones. No functional changes.
- Users can no longer reach the node itself or its private networks through it: loopback, private, link-local (including a cloud's metadata service, such as 169.254.169.254), CGNAT, multicast and broadcast addresses, whether given directly or resolved from a domain. A domain keeps its public addresses, and later UDP packets to such addresses are dropped. v1.0.0 and v0 let them through. Set
allow_private_destinationsfor a node that should serve an intranet.
- With
acme, a client asking for a name the certificates do not cover, such as a CDN sending its own name, gets the node's certificate (default_server_name, or the firstdomain) instead of a failed handshake. A node behind a CDN can now renew its certificate: settls.acme.domainto the node's own name instead of copying a fixed certificate.
NeXT-Server is rewritten on sing-box 1.14, replacing Xray-core. The v0 line lives on the v0 branch.
- Panel API. v1 talks to NeXT-Panel's Server API V1 (
/api/server/v1) with each node's own communication key. The sharedmuKeyand/mod_muare no longer used. If the panel sits behind Cloudflare or another firewall that only lets/mod_muthrough, allow/api/server/v1/*as well. - Configuration. The YAML file is replaced by JSON (
/etc/next-server/config.json, comments allowed); see the README. The node type, port and transport now come from the panel, soNodeType,NodeIDand the custom inbound, outbound, route and DNS files are gone. - Certificates.
CertConfigis replaced by the sing-boxtlsblock:certificate_path/key_path, oracme(DNS-01 through Cloudflare, AliDNS or ACME-DNS). - Node types. Supported: Shadowsocks 2022, TUIC v5, Hysteria2, AnyTLS, VMess and Trojan. Snell and NaïveProxy are not supported yet, and the plain Shadowsocks multi-port mode is gone with the panel's removal of it.
A v0 certificate is not renewed once v0 stops; switch to acme before it expires.
- Users are updated in place: a user list change never restarts the listener or drops other users' connections, and a removed user's open connections are closed.
- Traffic is kept across user updates and failed reports, and reported once more on shutdown.
- Speed limits apply the stricter of the node's and the user's limit, per direction.
- Detect rules are enforced on the destination, the sniffed domain and the first payload, and hits are reported.
- Opt-in PROXY protocol, with a list of trusted relays.
- sing-mux, UDP over TCP, and all sing-box V2Ray transports (WebSocket, HTTP, HTTPUpgrade, gRPC, QUIC).
- Optional Sentry reporting (
-tags with_sentry), with per-connection noise kept out and a rate limit, and crash reports from any goroutine. - Optional pprof (
-tags with_pprof). Builds use the committeddefault.pgofor profile-guided optimization, collected on production nodes. next-server versionprints the version and the build tags.
End-to-end tests drive every supported protocol through real sing-box clients against a fake panel built from NeXT-Panel's Server API V1 controller, and run under the race detector on Linux. A trial build served a production Trojan + gRPC node with 461 users before the release.
{ "log": { "level": "warn" }, "servers": [ { "url": "https://<ApiHost>", "key": "<the node's communication key, not the muKey>", "listen": "::", // Either reuse the certificate v0 obtained... "tls": { "certificate_path": "/etc/next-server/cert/certificates/<CertDomain>.crt", "key_path": "/etc/next-server/cert/certificates/<CertDomain>.key" } // ...or let v1 renew it: "tls": { "acme": { "email": "<Email>", "dns01_challenge": { "provider": "cloudflare", "api_token": "<CF_DNS_API_TOKEN>" } } } } ] }