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 |
|---|---|---|---|
| Windows | * | purego | None |
| Linux | amd64, arm64 | purego | Download libcronet from cronet-go releases to system library path or sing-box binary directory |
| Linux | 386, amd64, arm, arm64 | CGO | Chromium toolchain (see cronet-go) |
| Apple platforms | * | CGO | Xcode |
| Android | * | CGO | Android NDK |
Use with_purego tag.
Download libcronet.so from cronet-go releases and install to system library path or the same directory as sing-box binary, then use with_purego tag.
See cronet-go.
See cronet-go.