sing-box/docs/installation/build-from-source.md
2024-01-03 12:21:37 +08:00

6.3 KiB

icon
material/file-code

Build from source

:material-graph: Requirements

Before sing-box 1.4.0:

  • Go 1.18.5 - 1.20.x

Since sing-box 1.4.0:

  • Go 1.18.5 - ~
  • Go 1.20.0 - ~ if with_quic tag enabled

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

:material-fast-forward: Simple Build

make

Or build and install binary to $GOBIN:

make install

:material-cog: Custom Build

TAGS="tag_a tag_b" make

or

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

:material-folder-settings: Build Tags

Build Tag Enabled by default Description
with_quic Build 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_dhcp Build with DHCP support, see DHCP DNS transport.
with_wireguard Build with WireGuard support, see WireGuard outbound.
with_ech Build with TLS ECH extension support for TLS outbound, see TLS.
with_utls Build with uTLS support for TLS outbound, see TLS.
with_reality_server Build with reality TLS server support, see TLS.
with_acme Build with ACME TLS certificate issuer support, see TLS.
with_clash_api Build with Clash API support, see Experimental.
with_v2ray_api ✖️ Build with V2Ray API support, see Experimental.
with_gvisor Build with gVisor support, see Tun inbound and WireGuard outbound.
with_embedded_tor (CGO required) ✖️ Build with embedded Tor support, see Tor outbound.
with_lwip (CGO required) ✖️ Build with LWIP Tun stack support, see Tun inbound.

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