Back to Sing Box

Naive

docs/configuration/outbound/naive.md

1.14.03.4 KB
Original Source

!!! question "Since sing-box 1.13.0"

Structure

json
{
  "type": "naive",
  "tag": "naive-out",

  "server": "127.0.0.1",
  "server_port": 443,
  "username": "sekai",
  "password": "password",
  "insecure_concurrency": 0,
  "extra_headers": {},
  "stream_receive_window": "",
  "udp_over_tcp": false | {},
  "quic": false,
  "quic_congestion_control": "",
  "quic_session_receive_window": "",
  "tls": {},

  ... // Dial Fields
}

!!! warning "Platform Support"

NaiveProxy outbound is only available on Apple platforms, Android, Windows and certain Linux builds.

**Official Release Build Variants:**

| Build Variant | Platforms | Description |
|---------------|-----------|-------------|
| (no suffix) | Linux amd64/arm64 | purego build, `libcronet.so` included |
| `-glibc` | Linux 386/amd64/arm/arm64/mipsle/mips64le/riscv64/loong64 | CGO build, dynamically linked with glibc, requires glibc >= 2.31 (loong64: >= 2.36) |
| `-musl` | Linux 386/amd64/arm/arm64/mipsle/riscv64/loong64 | CGO build, statically linked with musl |
| (no suffix) | Windows amd64/arm64 | purego build, `libcronet.dll` included |

For Linux, choose the glibc or musl variant based on your distribution's libc type.

**Runtime Requirements:**

- **Linux purego**: `libcronet.so` must be in the same directory as the sing-box binary or in system library path
- **Windows**: `libcronet.dll` must be in the same directory as `sing-box.exe` or in a directory listed in `PATH`

For self-built binaries, see [Build from source](/installation/build-from-source/#with_naive_outbound).

Fields

server

==Required==

The server address.

server_port

==Required==

The server port.

username

Authentication username.

password

Authentication password.

insecure_concurrency

Number of concurrent tunnel connections. Multiple connections make the tunneling easier to detect through traffic analysis, which defeats the purpose of NaiveProxy's design to resist traffic analysis.

extra_headers

Extra headers to send in HTTP requests.

stream_receive_window

The flow control window.

When quic is enabled, it sets the initial QUIC stream receive window, and 6 MB is used by default.

Otherwise, it sets the HTTP/2 session receive window, the stream receive window is set to half of it, and 4 MB is used by default on iOS, 128 MB on other platforms.

udp_over_tcp

UDP over TCP protocol settings.

See UDP Over TCP for details.

quic

Use QUIC instead of HTTP/2.

quic_congestion_control

QUIC congestion control algorithm.

AlgorithmDescription
bbrBBR
bbr2BBRv2
cubicCUBIC
renoNew Reno

cubic is used by default (the default of Chromium, which NaiveProxy is based on).

quic_session_receive_window

!!! note ""

Only used when `quic` is enabled.

The initial QUIC session receive window.

15 MB is used by default.

tls

==Required==

TLS configuration, see TLS.

Only server_name, certificate, certificate_path and ech are supported.

Self-signed certificates change traffic behavior significantly, which defeats the purpose of NaiveProxy's design to resist traffic analysis, and should not be used in production.

Dial Fields

See Dial Fields for details.