go-tunnel 项目教程

go-tunnel 项目教程

go-tunnel TLS/SSL Tunnel - A modern STunnel replacement written in golang go-tunnel 项目地址: https://gitcode.com/gh_mirrors/go/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 项目,以满足不同的使用场景。

go-tunnel TLS/SSL Tunnel - A modern STunnel replacement written in golang go-tunnel 项目地址: https://gitcode.com/gh_mirrors/go/go-tunnel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窦育培

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值