go-tunnel 项目教程
1. 项目目录结构及介绍
go-tunnel 项目的目录结构如下:
go-tunnel/
├── alpine/
├── certs/
├── debian/
├── docs/
├── etc/
├── src/
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── build
├── deb-it
├── go.mod
├── go.sum
目录介绍:
- alpine/: 包含与 Alpine Linux 相关的文件。
- certs/: 包含证书文件。
- debian/: 包含与 Debian 系统相关的文件。
- docs/: 包含项目文档。
- etc/: 包含配置文件示例。
- src/: 包含项目的源代码。
- .gitignore: Git 忽略文件列表。
- LICENSE: 项目许可证文件。
- Makefile: 项目的构建文件。
- README.md: 项目介绍和使用说明。
- build: 构建脚本。
- deb-it: Debian 打包脚本。
- go.mod: Go 模块文件。
- go.sum: Go 模块依赖校验文件。
2. 项目启动文件介绍
go-tunnel 项目的启动文件是 src/main.go
。这个文件是项目的入口点,负责初始化配置、启动服务等操作。
主要功能:
- 解析命令行参数。
- 加载配置文件。
- 初始化 TLS/SSL 隧道。
- 启动 Quic/TLS 服务。
3. 项目配置文件介绍
go-tunnel 项目的配置文件是一个 YAML 文件,通常命名为 gotun.conf
。配置文件的结构如下:
# 日志文件路径
log: STDOUT
# 日志级别
loglevel: DEBUG
# 配置目录
config-dir: /etc/gotun
# 监听器配置
listen:
# 监听普通文本
- address: 127.0.0.1:9090
allow: [127.0.0.1/8, 11.0.1.0/24, 11.0.2.0/24]
deny: []
timeout:
connect: 5
read: 2
write: 2
ratelimit:
global: 2000
per-host: 30
cache-size: 10000
# 通过 TLS 连接
- address: host.name:443
bind: my.ip.address
tls:
cert: /path/to/crt
key: /path/to/key
ca: /path/to/ca.crt
# 使用 SNI 监听 TLS
- address: 127.0.0.1:9443
allow: [127.0.0.1/8, 11.0.1.0/24, 11.0.2.0/24]
deny: []
timeout:
connect: 5
read: 2
write: 2
tls:
sni: /path/to/cert/dir
client-cert: required
client-ca: /path/to/clientca.crt
# 使用 Quic + 客户端认证连接到 SOCKS
- address: 127.0.0.1:8443
tls:
quic: true
cert: /path/to/crt
key: /path/to/key
ca: /path/to/ca.crt
client-cert: required
client-ca: /path/to/clientca.crt
connect:
address: SOCKS
配置项说明:
- log: 日志文件路径,可以是绝对路径、SYSLOG、STDOUT 或 STDERR。
- loglevel: 日志级别,可选值为 DEBUG、INFO、WARN、ERROR。
- config-dir: 配置文件目录。
- listen: 监听器配置,包括普通文本监听、TLS 连接、SNI 监听、Quic + 客户端认证等。
通过以上配置文件,可以灵活地配置 go-tunnel 项目,以满足不同的使用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考