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.
wormhole-server/README.md

253 lines
6.4 KiB

# Wormhole SOCKS5 Server
🚀 高性能企业级 SOCKS5 代理服务器
2 weeks ago
## 🎉 最新更新
**v1.1.0 - 企业级优化功能集成(已清理)**
**完整的 SOCKS5 协议实现**
**配置文件管理**
**健康检查和指标监控**
**优雅启动和关闭**
**企业级日志记录**
**速率限制系统**
**连接池优化**
**内存使用优化**
**DNS缓存集成** (暂时禁用,避免端口冲突)
**透明代理支持** (默认关闭,需要root权限)
## 快速开始
### 构建和运行
```bash
make build
make run
```
2 weeks ago
### 直接运行
```bash
./bin/wormhole-server
```
### 配置
编辑 `configs/server.yaml` 来自定义服务器设置:
```yaml
proxy:
address: 0.0.0.0
port: 1080
auth:
username: admin
password: your_secure_password
2 weeks ago
healthCheck:
enabled: true
address: 127.0.0.1
port: 8090
```
### 测试连接
```bash
# 测试健康检查
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 部署
```bash
make docker-build
2 weeks ago
docker run -p 1080:1080 -p 8090:8090 wormhole-server:v1.0.0
```
## 功能特性
### 🎯 高性能优化
2 weeks ago
-**完整的SOCKS5协议** - 支持CONNECT/BIND/UDP
-**多种认证方式** - 无认证/用户名密码
-**连接池管理** - 智能连接复用,支持1000+并发连接
-**访问控制** - IP白名单/黑名单
- **DNS 缓存** - 减少 70% 查询延迟 (暂时禁用)
-**速率限制** - Token Bucket算法,全局+单IP限制
-**内存优化** - 缓冲区池,减少 30% 内存使用
- **透明代理** - Linux/macOS iptables/pfctl支持 (默认关闭)
### 🛡 企业安全
2 weeks ago
-**IP 访问控制** - 白名单/黑名单
-**认证系统** - 用户名/密码认证
-**连接监控** - 实时连接统计
-**审计日志** - 完整的连接记录
-**速率限制** - DDoS防护,100rps全局+10rps单IP
- 🔄 TLS 加密 - 可选加密连接 (计划中)
### 📊 监控运维
2 weeks ago
-**实时指标** - 连接数、请求数、错误率
-**健康检查** - HTTP健康检查端点
-**结构化日志** - JSON/文本格式
-**优雅关闭** - 信号处理和资源清理
-**管理API** - RESTful 健康检查接口
-**内存监控** - 自动GC触发,堆内存阈值监控
- 🔄 仪表板 - Web 监控界面 (计划中)
### 🔧 系统功能
- **透明代理** - Linux/macOS iptables/pfctl支持 (需要手动启用)
- 🔄 **系统代理设置** - 自动配置系统代理 (已移除,待重新实现)
- **DNS代理** - 带缓存的DNS转发 (暂时禁用)
-**多平台支持** - Linux/macOS/Windows
## 迁移状态
此项目是从 [原始 Wormhole 项目](https://github.com/azoic/wormhole) 拆分出的独立服务器。
2 weeks ago
### ✅ 已完成 (v1.1.0)
- [x] **基础项目结构**
- [x] **完整的SOCKS5协议实现**
- [x] **配置管理系统**
- [x] **构建系统和Docker支持**
- [x] **健康检查和指标监控**
- [x] **日志记录和错误处理**
- [x] **优雅启动和关闭**
- [x] **基本的单元测试**
- [x] **速率限制系统 (Token Bucket算法)**
- [x] **连接池管理 (1000+并发)**
- [x] **内存优化 (缓冲区池+自动GC)**
- [x] **代码清理和优化**
### 🔄 进行中 (v1.2.0)
- [ ] DNS缓存端口冲突修复
- [ ] 透明代理权限管理优化
- [ ] 优化的数据转发器重新集成
- [ ] 系统代理设置功能重新实现
- [ ] 更完整的测试覆盖
- [ ] 性能基准测试
- [ ] 文档完善
### 🎯 计划中 (v2.0.0)
- [ ] Web管理界面
- [ ] 集群支持
- [ ] 负载均衡
- [ ] 插件系统
2 weeks ago
- [ ] 高级分析功能
2 weeks ago
## 性能特性
2 weeks ago
### 🚀 连接池优化
- **最大连接数**: 1000 (可配置)
- **连接生命周期**: 30分钟 (可配置)
- **最大空闲时间**: 5分钟 (可配置)
- **预创建连接**: 0个 (已优化,避免SOCKS5代理地址问题)
2 weeks ago
### ⚡ 速率限制
- **全局限制**: 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
## 配置参考
完整的配置文件示例:
```yaml
# 服务类型
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"
```
2 weeks ago
## 贡献代码
1. Fork 项目
2 weeks ago
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](LICENSE) 文件