Skip to content

Releases: chainreactors/proxyclient

v1.1.0 — Multi-protocol Expansion & Modular Architecture

28 May 05:16

Choose a tag to compare

Overview

v1.1.0 是 ProxyClient 的一次重大更新,新增 8 种代理协议,引入 Clash 订阅集成和自适应负载均衡,并将项目架构重构为每个协议独立 Go module 的形式,实现真正的按需引入。

New Features

新增协议

协议 Scheme 依赖
Trojan trojan://password@host:port?sni=xxx 零额外依赖
VMess vmess://host:port?id=uuid sing-vmess
VLess vless://uuid@host:port sing-vmess
AnyTLS anytls://password@host:port sing-anytls
Hysteria2 hysteria2://password@host:port hysteria core (QUIC)
Clash 订阅 clash://?url=<subscribe-url> yaml.v3

Clash 订阅集成

  • 支持 Clash YAML / Base64+YAML / URI-per-line 三种订阅格式
  • 内嵌 GeoIP 数据库,支持按国家、协议类型、节点名称过滤
  • 并发健康检查,自动选择最快节点
  • 6 种负载均衡策略:adaptive / round-robin / random / hash / first / url-test

SOCKS5 UDP ASSOCIATE

完整实现 RFC 1928 UDP ASSOCIATE,dial(ctx, "udp", addr) 自动走 UDP 转发。

自适应负载均衡

loadbalance.NewAdaptive 基于成功率、延迟、最近失败时间三维度综合评分。所有策略内置死节点检测(连续 3 次失败标记死亡,60s 冷却后重试)。

Architecture Changes

独立 Module 架构

所有非核心协议迁移至 extra/,每个协议拥有独立的 go.mod

extra/
├── ssh/go.mod          — golang.org/x/crypto
├── shadowsocks/go.mod  — go-shadowsocks2
├── trojan/go.mod       — 零额外依赖
├── vmess/go.mod        — sing-vmess (含 VLess)
├── anytls/go.mod       — sing-anytls
├── hysteria2/go.mod    — hysteria core
├── suo5/go.mod         — suo5 webshell 隧道
├── neoreg/go.mod       — neoreg webshell 隧道
└── clash/go.mod        — Clash 订阅 + 负载均衡

引入 extra/trojan 不会拉入 hysteria2 的 QUIC 栈。根 go.mod 仅保留 things-go/go-socks5 一个直接依赖。

统一使用方式

所有协议通过 import _ 注册,不再需要任何 build tag:

import _ "github.com/chainreactors/proxyclient/extra/trojan"

proxy, _ := url.Parse("trojan://password@server:443")
dial, _ := proxyclient.NewClient(proxy)

Breaking Changes

  • extend/ 已删除 → import _ ".../extra/suo5" + import _ ".../extra/neoreg"
  • webshell/ 已删除 → suo5/neoreg 迁至 extra/
  • SSH 迁至 extra/sshimport _ 替代 build tag proxyclient_ssh
  • Shadowsocks 迁至 extra/shadowsocksimport _ 替代 build tag proxyclient_shadowsocks
  • 所有 build tag 已移除
  • extra/go.mod 统一模块拆分为每个协议独立 go.mod
  • http/serve.go 已移除

Migration

- import _ "github.com/chainreactors/proxyclient/extend"
+ import _ "github.com/chainreactors/proxyclient/extra/suo5"
+ import _ "github.com/chainreactors/proxyclient/extra/neoreg"

- // go build -tags proxyclient_ssh
+ import _ "github.com/chainreactors/proxyclient/extra/ssh"

- // go build -tags proxyclient_shadowsocks
+ import _ "github.com/chainreactors/proxyclient/extra/shadowsocks"

Install

go get github.com/chainreactors/proxyclient@v1.1.0

# 按需引入扩展协议
go get github.com/chainreactors/proxyclient/extra/trojan@v0.1.0
go get github.com/chainreactors/proxyclient/extra/clash@v0.1.0

Stats

72 files changed, +4364 / -1473 lines · 10 Go modules · 8 new protocols · 8 integration tests