Skip to content

Build from source

⚠️ Requirements

sing-box 1.10

  • Go 1.20.0 - ~
  • Go 1.20.0 - ~ with tag with_quic, or with_utls enabled
  • Go 1.21.0 - ~ with tag with_ech enabled

sing-box 1.9

  • Go 1.18.5 - 1.22.x
  • Go 1.20.0 - 1.22.x with tag with_quic, or with_utls enabled
  • Go 1.21.0 - 1.22.x with tag with_ech enabled

You can download and install Go from: https://go.dev/doc/install, latest version is recommended.

⏩ Simple Build

bash
make

Or build and install binary to $GOBIN:

bash
make install

⚙️ Custom Build

bash
TAGS="tag_a tag_b" make

or

bash
go build -tags "tag_a tag_b" ./cmd/sing-box

📌 Build Tags

Build TagEnabled by defaultDescription
with_quicBuild with QUIC support, see QUIC and HTTP3 DNS transports, Naive inbound, Hysteria Inbound, Hysteria Outbound and V2Ray Transport#QUIC.
with_grpc❌️Build with standard gRPC support, see V2Ray Transport#gRPC.
with_dhcpBuild with DHCP support, see DHCP DNS transport.
with_wireguardBuild with WireGuard support, see WireGuard outbound.
with_echBuild with TLS ECH extension support for TLS outbound, see TLS.
with_utlsBuild with uTLS support for TLS outbound, see TLS.
with_reality_serverBuild with reality TLS server support, see TLS.
with_acmeBuild with ACME TLS certificate issuer support, see TLS.
with_clash_apiBuild with Clash API support, see Experimental.
with_v2ray_api❌️Build with V2Ray API support, see Experimental.
with_gvisorBuild with gVisor support, see Tun inbound and WireGuard outbound.
with_embedded_tor (CGO required)❌️Build with embedded Tor support, see Tor outbound.

It is not recommended to change the default build tag list unless you really know what you are adding.