Skip to content

ClearMind1/http-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go 代理服务器

基于 Go 语言开发的 HTTP + SOCKS5 代理服务器,支持请求转发、限流控制和安全验证。

特性

  • HTTP 代理 - 9888 端口,路径前缀验证
  • SOCKS5 代理 - 1080 端口,支持多用户认证
  • 请求安全验证
  • 流量控制(全局/IP 限流)
  • 自动重试机制
  • 访问日志
  • 流式响应支持(AI API 代理)

快速开始

环境变量

变量名 说明 默认值
KEY_PREFIX HTTP 代理路径前缀 必填
ENABLE_RATE_LIMIT 是否启用限流 true
ENABLE_SOCKS5 是否启用 SOCKS5 false
SOCKS5_USERS SOCKS5 用户列表,格式: user1:pass1,user2:pass2 -

运行

# 启动 HTTP 代理
go run main.go

# 启动 HTTP + SOCKS5(多用户认证)
KEY_PREFIX=abc123 ENABLE_SOCKS5=true SOCKS5_USERS=user1:pass1,user2:pass2 go run main.go

Docker

docker build -t proxy-server .
docker run -d -p 9888:9888 -p 1080:1080 \
  -e KEY_PREFIX="your_key_prefix" \
  -e ENABLE_SOCKS5=true \
  -e SOCKS5_USERS="user1:pass1" \
  proxy-server

使用方式

HTTP 代理 (9888端口)

http://localhost:9888/proxy/{KEY_PREFIX}/{target_url}
curl -x http://localhost:9888 http://localhost:9888/proxy/abc123/httpbin.org/get

SOCKS5 代理 (1080端口)

curl -x socks5://user1:pass1@localhost:1080 http://httpbin.org/ip

浏览器配置可使用 SwitchyOmega 插件。

系统配置

const (
    serverPort  = ":9888"            // HTTP 代理端口
    socks5Port  = ":1080"            // SOCKS5 代理端口
    rateLimit   = 100                // 全局每秒请求限制
    perIPLimit  = 10                 // 每IP每秒请求限制
    maxRetries  = 3                  // 最大重试次数
    timeout     = 60 * time.Second   // 请求超时
)

安全特性

  • URL 安全性验证(协议、域名格式)
  • 私有网络访问限制(10.x, 172.16-31.x, 192.168.x)
  • 敏感端口拦截(22, 23, 25, 135, 139, 445 等)
  • 路径遍历和注入检测
  • 请求内容大小限制(100MB)

测试工具

# SOCKS5 测试
cd tools
go run socks5.go [target_url] [proxy_addr] [username] [password]
# 示例
go run socks5.go http://httpbin.org/ip localhost:1080 user1 pass1

技术栈

  • Go 1.23+
  • github.com/armon/go-socks5

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors