sing-box 项目使用教程
sing-box The universal proxy platform 项目地址: https://gitcode.com/gh_mirrors/sing/sing-box
1. 项目目录结构及介绍
sing-box/
├── adapter/
├── clients/
├── cmd/
├── common/
├── constant/
├── docs/
├── experimental/
├── inbound/
├── include/
├── log/
├── option/
├── outbound/
├── release/
├── router/
├── test/
├── transport/
├── .gitignore
├── .gitmodules
├── golangci.yml
├── goreleaser-fury.yaml
├── goreleaser.yaml
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── box.go
├── box_outbound.go
├── debug.go
├── debug_http.go
├── debug_stub.go
├── debug_unix.go
├── go.mod
├── go.sum
└── mkdocs.yml
目录结构介绍
- adapter/: 包含项目的适配器代码。
- clients/: 包含客户端相关的代码。
- cmd/: 包含命令行工具的代码。
- common/: 包含通用功能的代码。
- constant/: 包含常量定义的代码。
- docs/: 包含项目的文档。
- experimental/: 包含实验性功能的代码。
- inbound/: 包含入站连接处理的代码。
- include/: 包含头文件或包含文件。
- log/: 包含日志处理的代码。
- option/: 包含配置选项的代码。
- outbound/: 包含出站连接处理的代码。
- release/: 包含发布相关的文件。
- router/: 包含路由处理的代码。
- test/: 包含测试代码。
- transport/: 包含传输层处理的代码。
- .gitignore: Git 忽略文件。
- .gitmodules: Git 子模块配置文件。
- golangci.yml: GolangCI 配置文件。
- goreleaser-fury.yaml: Goreleaser 配置文件。
- goreleaser.yaml: Goreleaser 配置文件。
- Dockerfile: Docker 构建文件。
- LICENSE: 项目许可证文件。
- Makefile: 项目构建文件。
- README.md: 项目介绍文件。
- box.go: 主程序文件。
- box_outbound.go: 出站处理文件。
- debug.go: 调试功能文件。
- debug_http.go: HTTP 调试功能文件。
- debug_stub.go: 调试存根文件。
- debug_unix.go: Unix 调试功能文件。
- go.mod: Go 模块文件。
- go.sum: Go 模块依赖文件。
- mkdocs.yml: MkDocs 配置文件。
2. 项目启动文件介绍
项目的启动文件是 box.go
。这个文件包含了项目的主入口点,负责初始化配置、启动服务和处理请求。
box.go
文件内容概述
- 初始化配置: 从配置文件中读取配置信息。
- 启动服务: 根据配置启动相应的服务。
- 处理请求: 处理来自客户端的请求。
3. 项目配置文件介绍
项目的配置文件通常位于 option/
目录下,常见的配置文件包括 config.yaml
或 config.json
。配置文件定义了项目的各种选项和参数,如服务端口、日志级别、路由规则等。
配置文件示例
# config.yaml
server:
port: 8080
log:
level: info
routes:
- path: /api
handler: apiHandler
- path: /static
handler: staticHandler
配置文件内容介绍
- server: 定义服务器配置,如端口号。
- log: 定义日志配置,如日志级别。
- routes: 定义路由规则,如路径和对应的处理函数。
通过以上内容,您可以了解 sing-box
项目的基本结构、启动文件和配置文件的使用方法。
sing-box The universal proxy platform 项目地址: https://gitcode.com/gh_mirrors/sing/sing-box