with_quic, or with_utls enabledmake
Or build and install binary to $GOBIN:
make install
TAGS="tag_a tag_b" make
or
go build -tags "tag_a tag_b" ./cmd/sing-box
| Build Tag | Enabled by default | Description |
|---|---|---|
with_quic |
:material-check: | Build with QUIC support, see QUIC and HTTP3 DNS transports, Naive inbound, Hysteria Inbound, Hysteria Outbound and V2Ray Transport#QUIC. |
with_grpc |
:material-close:️ | Build with standard gRPC support, see V2Ray Transport#gRPC. |
with_dhcp |
:material-check: | Build with DHCP support, see DHCP DNS transport. |
with_wireguard |
:material-check: | Build with WireGuard support, see WireGuard outbound. |
with_utls |
:material-check: | Build with uTLS support for TLS outbound, see TLS. |
with_acme |
:material-check: | Build with ACME TLS certificate issuer support, see TLS. |
with_clash_api |
:material-check: | Build with Clash API support, see Experimental. |
with_v2ray_api |
:material-close:️ | Build with V2Ray API support, see Experimental. |
with_gvisor |
:material-check: | Build with gVisor support, see Tun inbound and WireGuard outbound. |
with_embedded_tor (CGO required) |
:material-close:️ | Build with embedded Tor support, see Tor outbound. |
with_tailscale |
:material-check: | Build with Tailscale support, see Tailscale endpoint |
with_naive_outbound |
:material-close:️ | Build with NaiveProxy outbound support, see NaiveProxy outbound. |
It is not recommended to change the default build tag list unless you really know what you are adding.
NaiveProxy outbound requires special build configurations depending on your target platform.
| Platform | Architectures | Mode | Requirements |
|---|---|---|---|
| Linux | amd64, arm64 | purego | None (library included in official releases) |
| Linux | 386, amd64, arm, arm64 | CGO | Chromium toolchain, glibc >= 2.31 at runtime |
| Linux (musl) | 386, amd64, arm, arm64 | CGO | Chromium toolchain |
| Windows | amd64, arm64 | purego | None (library included in official releases) |
| Apple platforms | * | CGO | Xcode |
| Android | * | CGO | Android NDK |
Use with_purego tag.
For official releases, libcronet.dll is included in the archive. For self-built binaries, download from cronet-go releases and place in the same directory as sing-box.exe or in a directory listed in PATH.
Use with_purego tag.
For official releases, libcronet.so is included in the archive. For self-built binaries, download from cronet-go releases and place in the same directory as sing-box binary or in system library path.
See cronet-go.
with_musl tag, statically linked, no runtime requirementsSee cronet-go.