You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
huyinsong 58b5d92aae 修复ipv6问题 4 days ago
.github/workflows 修复ipv6问题 4 days ago
cmd/wormhole-server 修复ipv6问题 4 days ago
configs 修复ipv6问题 4 days ago
internal/server 修复ipv6问题 4 days ago
pkg 清理工程 2 weeks ago
scripts 修复ipv6问题 4 days ago
.dockerignore 修复ipv6问题 4 days ago
.gitignore Add .gitignore and remove binary from version control 2 weeks ago
Dockerfile 修复ipv6问题 4 days ago
Makefile 修复ipv6问题 4 days ago
README.md 修复ipv6问题 4 days ago
go.mod 清理工程 2 weeks ago
go.sum 清理工程 2 weeks ago

README.md

Wormhole SOCKS5 Server

🚀 高性能企业级 SOCKS5 代理服务器

🎉 最新更新

v1.1.0 - 企业级优化功能集成(已清理)

完整的 SOCKS5 协议实现 配置文件管理
健康检查和指标监控 优雅启动和关闭 企业级日志记录 速率限制系统 连接池优化 内存使用优化 多平台编译支持 DNS缓存集成 (暂时禁用,避免端口冲突) 透明代理支持 (默认关闭,需要root权限)

快速开始

📦 预构建二进制文件下载

Releases 页面 下载适合您系统的预构建版本:

Linux:

  • wormhole-server-v1.1.0-linux-amd64.tar.gz - Linux x86_64
  • wormhole-server-v1.1.0-linux-arm64.tar.gz - Linux ARM64 (树莓派 等)
  • wormhole-server-v1.1.0-linux-arm.tar.gz - Linux ARM
  • wormhole-server-v1.1.0-linux-386.tar.gz - Linux x86

macOS:

  • wormhole-server-v1.1.0-darwin-amd64.tar.gz - macOS Intel
  • wormhole-server-v1.1.0-darwin-arm64.tar.gz - macOS Apple Silicon (M1/M2)

Windows:

  • wormhole-server-v1.1.0-windows-amd64.zip - Windows x64
  • wormhole-server-v1.1.0-windows-386.zip - Windows x86
  • wormhole-server-v1.1.0-windows-arm64.zip - Windows ARM64

FreeBSD:

  • wormhole-server-v1.1.0-freebsd-amd64.tar.gz - FreeBSD x86_64
  • wormhole-server-v1.1.0-freebsd-arm64.tar.gz - FreeBSD ARM64

🛠 本地编译

快速构建 (当前平台)

make build
make run

多平台编译

使用 Makefile 进行多平台编译:

# 构建所有支持的平台
make cross-compile

# 创建发布包 (包含配置文件和文档)
make release

# 构建特定平台
make build-linux       # Linux AMD64
make build-darwin      # macOS AMD64  
make build-windows     # Windows AMD64
make build-arm64       # Linux ARM64
make build-darwin-arm64 # macOS ARM64 (Apple Silicon)

# 查看支持的平台
make platforms

# 查看版本信息
make version

使用构建脚本

# 构建所有平台
./scripts/build.sh

# 构建特定版本的所有平台
./scripts/build.sh v1.2.0

# 构建特定平台
./scripts/build.sh v1.2.0 linux-amd64
./scripts/build.sh v1.2.0 darwin-arm64
./scripts/build.sh v1.2.0 windows-amd64

# 查看帮助
./scripts/build.sh --help

高级编译选项

# 自定义版本号
VERSION=v1.2.0 make cross-compile

# 构建并创建发布包
make release

# 构建多架构 Docker 镜像
make docker-build-multi

📋 版本信息

查看详细的版本和构建信息:

# 简短版本信息
./wormhole-server -version

# 详细版本信息 (包含Go版本、平台、功能等)
./wormhole-server -version-verbose

🚀 快速运行

# 使用默认配置运行
./wormhole-server

# 指定配置文件
./wormhole-server -config configs/server.yaml

配置

编辑 configs/server.yaml 来自定义服务器设置:

proxy:
  address: 0.0.0.0
  port: 1080

auth:
  username: admin
  password: your_secure_password

healthCheck:
  enabled: true
  address: 127.0.0.1
  port: 8090

测试连接

# 测试健康检查
curl http://127.0.0.1:8090/health

# 测试指标
curl http://127.0.0.1:8090/metrics

# 使用SOCKS5代理 (如果开启了认证)
curl --socks5 admin:your_secure_password@127.0.0.1:1080 http://httpbin.org/ip

🐳 Docker 部署

make docker-build
docker run -p 1080:1080 -p 8090:8090 wormhole-server:v1.1.0

# 多架构 Docker 镜像
make docker-build-multi

🔧 支持的平台

我们支持以下平台的交叉编译:

平台 架构 状态 说明
Linux amd64 x86_64 处理器
Linux arm64 ARM64 处理器 (树莓派 4+)
Linux 386 x86 32位处理器
Linux arm ARM 32位处理器
macOS amd64 Intel 处理器
macOS arm64 Apple Silicon (M1/M2)
Windows amd64 x86_64 处理器
Windows 386 x86 32位处理器
Windows arm64 ARM64 处理器
FreeBSD amd64 x86_64 处理器
FreeBSD arm64 ARM64 处理器

🏗 构建要求

  • Go 1.21+ - 必需的 Go 版本
  • Git - 用于版本信息 (可选)
  • Make - 用于 Makefile 命令 (可选)
  • zip - 用于创建 Windows 发布包 (可选)

📊 CI/CD 自动化

项目包含完整的 GitHub Actions 工作流,支持:

  • 自动测试 - 每次推送和 PR 都会运行测试
  • 多平台构建 - 自动构建所有支持的平台
  • 自动发布 - 标签推送时自动创建 GitHub Release
  • Docker 镜像 - 自动构建和推送多架构 Docker 镜像
  • 校验和验证 - 自动生成文件校验和

功能特性

🎯 高性能优化

  • 完整的SOCKS5协议 - 支持CONNECT/BIND/UDP
  • 多种认证方式 - 无认证/用户名密码
  • 连接池管理 - 智能连接复用,支持1000+并发连接
  • 访问控制 - IP白名单/黑名单
  • DNS 缓存 - 减少 70% 查询延迟 (暂时禁用)
  • 速率限制 - Token Bucket算法,全局+单IP限制
  • 内存优化 - 缓冲区池,减少 30% 内存使用
  • 透明代理 - Linux/macOS iptables/pfctl支持 (默认关闭)
  • 多平台支持 - 11个平台/架构组合

🛡 企业安全

  • IP 访问控制 - 白名单/黑名单
  • 认证系统 - 用户名/密码认证
  • 连接监控 - 实时连接统计
  • 审计日志 - 完整的连接记录
  • 速率限制 - DDoS防护,100rps全局+10rps单IP
  • 🔄 TLS 加密 - 可选加密连接 (计划中)

📊 监控运维

  • 实时指标 - 连接数、请求数、错误率
  • 健康检查 - HTTP健康检查端点
  • 结构化日志 - JSON/文本格式
  • 优雅关闭 - 信号处理和资源清理
  • 管理API - RESTful 健康检查接口
  • 内存监控 - 自动GC触发,堆内存阈值监控
  • 🔄 仪表板 - Web 监控界面 (计划中)

🔧 系统功能

  • 透明代理 - Linux/macOS iptables/pfctl支持 (需要手动启用)
  • 🔄 系统代理设置 - 自动配置系统代理 (已移除,待重新实现)
  • DNS代理 - 带缓存的DNS转发 (暂时禁用)
  • 多平台支持 - Linux/macOS/Windows

迁移状态

此项目是从 原始 Wormhole 项目 拆分出的独立服务器。

已完成 (v1.1.0)

  • 基础项目结构
  • 完整的SOCKS5协议实现
  • 配置管理系统
  • 构建系统和Docker支持
  • 健康检查和指标监控
  • 日志记录和错误处理
  • 优雅启动和关闭
  • 基本的单元测试
  • 速率限制系统 (Token Bucket算法)
  • 连接池管理 (1000+并发)
  • 内存优化 (缓冲区池+自动GC)
  • 代码清理和优化

🔄 进行中 (v1.2.0)

  • DNS缓存端口冲突修复
  • 透明代理权限管理优化
  • 优化的数据转发器重新集成
  • 系统代理设置功能重新实现
  • 更完整的测试覆盖
  • 性能基准测试
  • 文档完善

🎯 计划中 (v2.0.0)

  • Web管理界面
  • 集群支持
  • 负载均衡
  • 插件系统
  • 高级分析功能

性能特性

🚀 连接池优化

  • 最大连接数: 1000 (可配置)
  • 连接生命周期: 30分钟 (可配置)
  • 最大空闲时间: 5分钟 (可配置)
  • 预创建连接: 0个 (已优化,避免SOCKS5代理地址问题)

速率限制

  • 全局限制: 100 RPS,突发200
  • 单IP限制: 10 RPS,突发20
  • 算法: Token Bucket
  • 清理间隔: 5分钟自动清理过期桶

🧠 内存优化

  • 缓冲区池: 8种大小 (512B-64KB)
  • 自动GC: 堆内存超过512MB时触发
  • 监控间隔: 30秒内存统计
  • 阈值告警: 堆分配100MB,系统200MB

🌐 DNS缓存 (暂时禁用)

  • 状态: 因端口冲突暂时禁用
  • 计划: v1.2.0修复后重新启用
  • 目标: 10,000条记录,10分钟TTL

配置参考

完整的配置文件示例:

# 服务类型
serviceType: server

# 代理服务器配置
proxy:
  address: 0.0.0.0    # 监听地址
  port: 1080          # 监听端口

# 认证配置
auth:
  username: admin     # 用户名 (空则无认证)
  password: secure123 # 密码
  methods:            # 支持的认证方法
    - password        # 可选: none, password

# 基本设置
timeout: 30s          # 连接超时
maxConns: 5000        # 最大连接数
logLevel: info        # 日志级别: debug, info, warn, error

# 健康检查
healthCheck:
  enabled: true
  address: 127.0.0.1
  port: 8090

# 优化功能
optimizedServer:
  enabled: true
  bufferSize: 65536
  
  # DNS缓存 (暂时禁用)
  dnsCache:
    enabled: false  # 避免端口冲突
    maxSize: 10000
    ttl: 10m
  
  # 速率限制
  rateLimit:
    enabled: true
    requestsPerSecond: 100
    burstSize: 200
    perIPRequestsPerSec: 10
    perIPBurstSize: 20
    cleanupInterval: 5m
  
  # 连接池 (优化配置)
  connectionPool:
    enabled: true
    maxSize: 1000
    maxLifetime: 30m
    maxIdle: 5m
    initialSize: 0  # 禁用预创建,避免SOCKS5代理地址问题
  
  # 内存优化
  memory:
    enabled: true
    bufferSizes: [512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]
    monitorInterval: 30s
    enableAutoGC: true
    heapAllocThresholdMB: 100
    heapSysThresholdMB: 200
    forceGCThresholdMB: 500
  
  # 透明代理 (需要root权限)
  transparent:
    enabled: false
    transparentPort: 8888
    dnsPort: 15353  # 使用非标准端口避免冲突
    bypassIPs:
      - "127.0.0.1"
      - "192.168.1.0/24"

贡献代码

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交代码 (git commit -m 'Add some amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 发起 Pull Request

许可证

MIT License - 详见 LICENSE 文件