2023-11-09 17:04:08 +08:00
---
icon: material/file-code
---
# Build from source
## :material-graph: Requirements
2024-09-15 12:10:00 +08:00
### sing-box 1.10
2023-11-09 17:04:08 +08:00
2024-09-15 12:10:00 +08:00
* Go 1.20.0 - ~
2024-02-10 12:01:09 +08:00
* Go 1.20.0 - ~ with tag `with_quic` , or `with_utls` enabled
* Go 1.21.0 - ~ with tag `with_ech` enabled
2023-11-09 17:04:08 +08:00
2024-09-15 12:10:00 +08:00
### 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
2023-11-09 17:04:08 +08:00
You can download and install Go from: https://go.dev/doc/install, latest version is recommended.
## :material-fast-forward: Simple Build
```bash
make
```
2023-12-03 14:53:22 +08:00
Or build and install binary to `$GOBIN` :
2023-11-09 17:04:08 +08:00
```bash
make install
```
## :material-cog: Custom Build
```bash
TAGS="tag_a tag_b" make
```
or
```bash
go build -tags "tag_a tag_b" ./cmd/sing-box
```
## :material-folder-settings: Build Tags
2023-12-14 22:23:52 +08:00
| Build Tag | Enabled by default | Description |
|------------------------------------|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
2023-12-20 20:00:00 +08:00
| `with_quic` | :material-check: | Build with QUIC support, see [QUIC and HTTP3 DNS transports ](/configuration/dns/server/ ), [Naive inbound ](/configuration/inbound/naive/ ), [Hysteria Inbound ](/configuration/inbound/hysteria/ ), [Hysteria Outbound ](/configuration/outbound/hysteria/ ) and [V2Ray Transport#QUIC ](/configuration/shared/v2ray-transport#quic ). |
2024-04-30 07:33:49 +08:00
| `with_grpc` | :material-close:️ | Build with standard gRPC support, see [V2Ray Transport#gRPC ](/configuration/shared/v2ray-transport#grpc ). |
2023-12-20 20:00:00 +08:00
| `with_dhcp` | :material-check: | Build with DHCP support, see [DHCP DNS transport ](/configuration/dns/server/ ). |
| `with_wireguard` | :material-check: | Build with WireGuard support, see [WireGuard outbound ](/configuration/outbound/wireguard/ ). |
2024-04-30 07:33:49 +08:00
| `with_ech` | :material-check: | Build with TLS ECH extension support for TLS outbound, see [TLS ](/configuration/shared/tls#ech ). |
| `with_utls` | :material-check: | Build with [uTLS ](https://github.com/refraction-networking/utls ) support for TLS outbound, see [TLS ](/configuration/shared/tls#utls ). |
2023-12-20 20:00:00 +08:00
| `with_reality_server` | :material-check: | Build with reality TLS server support, see [TLS ](/configuration/shared/tls/ ). |
| `with_acme` | :material-check: | Build with ACME TLS certificate issuer support, see [TLS ](/configuration/shared/tls/ ). |
2024-04-30 07:33:49 +08:00
| `with_clash_api` | :material-check: | Build with Clash API support, see [Experimental ](/configuration/experimental#clash-api-fields ). |
| `with_v2ray_api` | :material-close:️ | Build with V2Ray API support, see [Experimental ](/configuration/experimental#v2ray-api-fields ). |
| `with_gvisor` | :material-check: | Build with gVisor support, see [Tun inbound ](/configuration/inbound/tun#stack ) and [WireGuard outbound ](/configuration/outbound/wireguard#system_interface ). |
2023-12-20 20:00:00 +08:00
| `with_embedded_tor` (CGO required) | :material-close:️ | Build with embedded Tor support, see [Tor outbound ](/configuration/outbound/tor/ ). |
2023-11-09 17:04:08 +08:00
It is not recommended to change the default build tag list unless you really know what you are adding.