一个基于 Go 语言开发的多功能代理服务工具,支持 WebSocket、SOCKS5 等协议,适用于网络流量转发与多路复用场景。
. ├── configPkg/ # 配置处理包 ├── copyPkg/ # 数据拷贝包 ├── proxyPkg/ # 代理核心逻辑包 ├── config.json # 主配置文件 ├── logconfig1.yaml # 日志配置文件 ├── main.go # 程序入口 └── *.test.go # 测试文件
go build -o muxProxy main.go
# 使用默认配置运行
./muxProxy
# 指定配置运行
./muxProxy -config="mws://0.0.0.0:1081/ws"
# 或者直接传入参数
./muxProxy "mws://0.0.0.0:1081/ws"
程序支持以下协议类型:
ws - WebSocket 代理wss - 安全 WebSocket 代理mws - 多路复用 WebSocket 代理mwss - 安全多路复用 WebSocket 代理配置格式: {协议}://{监听地址}:{端口}/{认证路径}
示例:
mws://0.0.0.0:1081/ws - 在 1081 端口启动多路复用 WebSocket 服务,路径为 /wswss://0.0.0.0:1082/secure - 在 1082 端口启动安全 WebSocket 服务,路径为 /securemuxProxy 通过以下方式工作:
对于多路复用协议(mws/mwss),多个连接可以共享一个底层连接,提高连接效率和资源利用率。
日志配置文件,支持按级别分类记录日志并自动轮转。
github.com/gorilla/websocket - WebSocket 协议支持github.com/txthinking/socks5 - SOCKS5 代理实现golang.org/x/net/proxy - 底层网络代理支持github.com/xtaci/smux - 连接多路复用gopkg.in/natefinch/lumberjack.v2 - 日志文件切割github.com/rs/zerolog - 结构化日志输出cnb.cool/accbot/goTool - 工具类库