Files
sing-box-extended-mirror/docs/installation/build-from-source.zh.md
T

98 lines
8.1 KiB
Markdown
Raw Normal View History

2023-12-03 14:53:22 +08:00
---
icon: material/file-code
---
# 从源代码构建
## :material-graph: 要求
2025-02-22 08:00:59 +08:00
### sing-box 1.11
* Go 1.23.1 - ~
2024-09-15 12:10:00 +08:00
### sing-box 1.10
2023-12-03 14:53:22 +08:00
2024-09-15 12:10:00 +08:00
* Go 1.20.0 - ~
* Go 1.21.0 - ~ with tag `with_ech` enabled
2023-12-03 14:53:22 +08:00
2024-09-15 12:10:00 +08:00
### sing-box 1.9
2023-12-03 14:53:22 +08:00
2024-09-15 12:10:00 +08:00
* 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-12-09 12:11:21 +08:00
2023-12-03 14:53:22 +08:00
您可以从 https://go.dev/doc/install 下载并安装 Go,推荐使用最新版本。
## :material-fast-forward: 快速开始
```bash
make
```
或者构建二进制文件并将其安装到 `$GOBIN`:
```bash
make install
```
## :material-cog: 自定义构建
```bash
TAGS="tag_a tag_b" make
```
or
```bash
go build -tags "tag_a tag_b" ./cmd/sing-box
```
## :material-folder-settings: 构建标记
2024-04-30 07:33:49 +08:00
| 构建标记 | 默认启动 | 说明 |
|------------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
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). |
| `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/). |
| `with_utls` | :material-check: | Build with [uTLS](https://github.com/refraction-networking/utls) support for TLS outbound, see [TLS](/configuration/shared/tls#utls). |
| `with_acme` | :material-check: | Build with ACME TLS certificate issuer support, see [TLS](/configuration/shared/tls/). |
| `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). |
| `with_embedded_tor` (CGO required) | :material-close:️ | Build with embedded Tor support, see [Tor outbound](/configuration/outbound/tor/). |
2025-04-06 19:14:41 +08:00
| `with_tailscale` | :material-check: | Build with Tailscale support, see [Tailscale endpoint](/configuration/endpoint/tailscale) |
2025-12-12 15:02:08 +08:00
| `with_naive_outbound` | :material-close:️ | 构建 NaiveProxy 出站支持,参阅 [NaiveProxy 出站](/zh/configuration/outbound/naive/)。 |
2023-12-03 14:53:22 +08:00
除非您确实知道您正在启用什么,否则不建议更改默认构建标签列表。
2025-12-12 15:02:08 +08:00
## :material-layers: with_naive_outbound
NaiveProxy 出站需要根据目标平台进行特殊的构建配置。
### 支持的平台
| 平台 | 架构 | 模式 | 要求 |
|---------------|----------------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------|
| Windows | * | purego | 无 |
| Linux | amd64, arm64 | purego | 从 [cronet-go releases](https://github.com/sagernet/cronet-go/releases) 下载 libcronet 到系统库目录或 sing-box 二进制文件相同目录 |
| Linux | 386, amd64, arm, arm64 | CGO | Chromium 工具链(参阅 [cronet-go](https://github.com/sagernet/cronet-go)) |
| Apple 平台 | * | CGO | Xcode |
| Android | * | CGO | Android NDK |
### Windows
使用 `with_purego` 标记。
### Linux (purego, 仅 amd64/arm64)
从 [cronet-go releases](https://github.com/sagernet/cronet-go/releases) 下载 `libcronet.so` 并安装到系统库目录或 sing-box 二进制文件相同目录,然后使用 `with_purego` 标记。
### Linux (CGO)
参阅 [cronet-go](https://github.com/sagernet/cronet-go#linux-build-instructions)。
### Apple 平台 / Android
参阅 [cronet-go](https://github.com/sagernet/cronet-go)。