# ccproxy-go **Repository Path**: shmilyhe/ccproxy-go ## Basic Information - **Project Name**: ccproxy-go - **Description**: 用Go 写的一个类似ccproxy的工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-14 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CCproxy Go 一个用Go语言实现的CCproxy代理服务器,支持HTTP、HTTPS和SOCKS5代理协议。 ## 功能特性 - ✅ HTTP代理(支持CONNECT方法) - ✅ HTTPS隧道代理 - ✅ SOCKS5代理 - ✅ 连接池管理 - ✅ 流量统计 - ✅ 连接监控 - ✅ 高性能并发处理 ## 快速开始 ### 环境要求 - Go 1.16 或更高版本 - Git(用于克隆项目) ### 安装与构建 #### Linux/macOS ```bash # 克隆项目 git clone cd ccproxy-go # 方法1: 使用构建脚本(推荐) chmod +x build.sh ./build.sh # 方法2: 手动构建 go build -o ccproxy ./cmd/ccproxy ``` #### Windows ```batch # 克隆项目 git clone cd ccproxy-go # 方法1: 使用构建脚本(推荐) build.bat # 方法2: 手动构建 go build -o ccproxy.exe ./cmd/ccproxy ``` ### 运行 #### Linux/macOS ```bash # 方法1: 使用启动脚本(推荐,启用认证和Web管理界面) chmod +x startup.sh ./startup.sh # 方法2: 手动运行(基本模式) ./ccproxy # 方法3: 手动运行(启用认证) ./ccproxy --enable-auth --web-port=8100 # 方法4: 指定端口运行 ./ccproxy -http-port 8080 -https-port 8443 -socks5-port 1080 # 方法5: 使用配置文件运行 ./ccproxy -config configs/proxy.yaml ``` #### Windows ```batch # 方法1: 使用启动脚本(推荐,启用认证和Web管理界面) startup.bat # 方法2: 手动运行(基本模式) ccproxy.exe # 方法3: 手动运行(启用认证) ccproxy.exe --enable-auth --web-port=8100 # 方法4: 指定端口运行 ccproxy.exe -http-port 8080 -https-port 8443 -socks5-port 1080 # 方法5: 使用配置文件运行 ccproxy.exe -config configs/proxy.yaml ``` ### 验证安装 构建成功后,您将看到以下文件: - **Linux/macOS**: `ccproxy` 可执行文件 - **Windows**: `ccproxy.exe` 可执行文件 运行脚本: - **Linux/macOS**: `build.sh`, `startup.sh` - **Windows**: `build.bat`, `startup.bat` ### 脚本说明 项目提供了以下脚本文件以简化构建和运行过程: #### 构建脚本 - **build.sh** (Linux/macOS): 检查Go环境,清理旧构建,编译生成`ccproxy`可执行文件 - **build.bat** (Windows): 检查Go环境,清理旧构建,编译生成`ccproxy.exe`可执行文件 #### 启动脚本 - **startup.sh** (Linux/macOS): 启动CCproxy代理服务器,启用用户认证,Web管理界面端口8100 - **startup.bat** (Windows): 启动CCproxy代理服务器,启用用户认证,Web管理界面端口8100 #### 脚本功能对比 | 脚本文件 | 平台 | 功能 | 输出文件 | |---------|------|------|----------| | build.sh | Linux/macOS | 构建代理服务器 | `ccproxy` | | build.bat | Windows | 构建代理服务器 | `ccproxy.exe` | | startup.sh | Linux/macOS | 启动代理服务器 | - | | startup.bat | Windows | 启动代理服务器 | - | ### 使用代理 #### HTTP代理 ``` export http_proxy=http://127.0.0.1:3128 export https_proxy=http://127.0.0.1:3128 curl http://example.com ``` #### SOCKS5代理 ``` export ALL_PROXY=socks5://127.0.0.1:1080 curl http://example.com ``` ## 配置说明 配置文件位于 `configs/proxy.yaml`,主要配置项: ```yaml proxy: http: enabled: true # 启用HTTP代理 listen_port: 3128 # 监听端口 max_connections: 1000 # 最大连接数 https: enabled: true # 启用HTTPS代理 listen_port: 3129 # 监听端口 cert_file: "./certs/server.crt" # TLS证书 key_file: "./certs/server.key" # TLS密钥 socks5: enabled: true # 启用SOCKS5代理 listen_port: 1080 # 监听端口 authentication: false # 是否启用认证 ``` ## 项目结构 ``` ccproxy-go/ ├── cmd/ccproxy/ # 主程序入口 ├── internal/proxy/ # 代理模块核心实现 │ ├── types.go # 类型定义 │ ├── proxy.go # 代理服务器主逻辑 │ ├── http_handler.go # HTTP处理器 │ └── connection_pool.go # 连接池管理 ├── configs/ # 配置文件 ├── docs/ # 设计文档 └── README.md # 项目说明 ``` ## 设计文档 详细的设计文档位于 `docs/` 目录: 1. [主设计文档](docs/design.md) - 整体架构设计 2. [proxy模块设计](docs/proxy-design.md) - 代理服务模块设计 3. [WEB模块设计](docs/web-design.md) - Web管理界面设计 4. [authing模块设计](docs/authing-design.md) - 认证授权模块设计 5. [manager模块设计](docs/manager-design.md) - 系统管理模块设计 6. [security模块设计](docs/security-design.md) - 安全防护模块设计 ## 开发指南 ### 构建测试 ```bash # 运行测试 go test ./internal/proxy/... # 构建并运行 go run cmd/ccproxy/main.go ``` ### 添加新功能 1. 在 `internal/proxy/` 目录下添加新的Go文件 2. 更新相应的接口定义 3. 编写单元测试 4. 更新设计文档 ## 性能优化 - 使用连接池复用TCP连接 - 异步非阻塞IO处理 - Goroutine池管理并发连接 - 内存缓冲区复用 ## 许可证 MIT License