PackageTrack
Sign in Get early access

github.com/chainreactors/rem

v0.3.0 #4144 most downloaded on Go modules chainreactors/rem

What this package is like to depend on

Last release 1 months ago

22 Jul 2026

Release timing varies

gaps range from 2 weeks to 10 months

Nearly every release is documented

notes for 4 of 4 stable releases

Nothing withdrawn

no release was ever pulled

1 years old

7 releases · first in 2025

4 releases in the last 12 months

see the full history below

Release timeline

7 releases · Apr 2025 to Jul 2026
2026
Release Pre-release

Releases

latest 7
  1. v0.3.1-0.20260722154308-a590395593c7 22 Jul 2026 pre-release

    Nothing published for this version

  2. v0.3.0 17 Mar 2026
    Release notes

    v0.3.0

    v0.3.0 是一次大版本重构, 引入了 Simplex 单工信道传输框架、SR-ARQ 可靠传输协议、yamux 多路复用等核心能力, 同时对协议栈、CLI 接口、编译体系进行了全面现代化改造。

    新功能

    Simplex 单工信道传输框架

    新增 x/simplex 包, 实现基于轮询的单工信道抽象层, 支持在各种云 API / 协议上建立全双工隧道:

    • [feat] DNS 信道 (simplex+dns://), 通过 DNS TXT/CNAME 记录传输数据, 支持自定义 DNS 服务器
    • [feat] OSS 信道 (simplex+oss://), 通过阿里云 OSS 对象存储传输数据, HMAC-SHA1 签名, 支持 file/mirror 模式
    • [feat] HTTP 信道 (simplex+http://), 通过 HTTP 轮询传输数据, 自定义 UA/Host/Content-Type
    • [feat] File 信道, 通过本地文件系统传输数据 (测试/离线场景)
    • [feat] SimplexBuffer 双通道缓冲区, CTRL 包优先于 DATA 包传输, TLV 分片重组
    • [feat] SimplexPacket TLV 协议格式 (Type 1B + Length 4B + Value), 支持 MTU 自动分片

    Simplex 信道用法

    # DNS 信道
    rem -s "simplex+dns://0.0.0.0:5353/tunnel.example.com"
    rem -c "simplex+dns://8.8.8.8:53/tunnel.example.com" -l socks5://127.0.0.1:1080
    
    # OSS 信道
    rem -s "simplex+oss:///rem?endpoint=oss-cn-hangzhou.aliyuncs.com&bucket=mybucket&ak=...&sk=..."
    rem -c "simplex+oss:///rem?endpoint=...&bucket=...&ak=...&sk=..." -l socks5://127.0.0.1:1080
    
    # HTTP 信道
    rem -s "simplex+http://0.0.0.0:8080/tunnel?interval=100&max=131072"
    rem -c "simplex+http://server:8080/tunnel?interval=100" -l socks5://127.0.0.1:1080

    Simplex 信道 URL 通用参数:

    参数 说明 默认值
    interval 轮询间隔 (ms) 3000
    max 最大包体大小 信道默认
    wrapper 数据包装器 (raw/snappy 等) -
    proxy 出站代理 URL -

    Relay 多跳路由

    • [feat] 新增 relay 模式 (-c -s), 任意节点同时监听下游和连接上游, 自动成为中继
    • [feat] Agent 通过 RouteAnnounce 自动发现网络拓扑, 支持 10+ 跳链路
    • [feat] raw TCP 透传, wrapper 加密端到端保持, 不在 relay 层解密
    • [feat] relay link 自动生成, 带 &via=agentID 的上游 URL
    • [feat] -d 参数跨多跳路由到指定 Agent
    # Console
    rem -s tcp://0.0.0.0:34996
    
    # Relay: 连上游 + 监听下游
    rem -c tcp://console:34996 -s tcp://0.0.0.0:35000 -a relay-a
    
    # Leaf: 连 Relay, 流量从 Console 出去
    rem -c tcp://relay-a:35000 -l socks5://127.0.0.1:1080
    
    # 跨多跳路由到指定节点
    rem -c tcp://gateway:34996 -d "backend" -l socks5://127.0.0.1:1080

    Agent 拓扑发现

    • [feat] 网络图 JSON 序列化: 节点类型 (server/relay/client)、服务列表、连接关系、流量统计
    • [feat] /api/topology 端点, 为可视化管理和智能路由打基础

    多连接管理 (ConnHub)

    • [feat] ConnHub 连接管理器, 管理多条并行通道, bridgeRoute 路由缓存
    • [feat] 三种负载均衡算法:
      • fallback — 主连接优先, 故障切换到备用连接 (默认)
      • random — 随机选择连接
      • round-robin / rr — 轮询选择
    • [feat] 通过 --lb 参数或 URL ?lb= 指定算法
    # 多连接 fallback 模式
    rem -c tcp://primary:34996 -c tcp://backup:34996 --lb fallback
    
    # round-robin 轮询
    rem -c tcp://srv1:34996 -c tcp://srv2:34996 -c ws://srv3:8080/tunnel --lb round-robin

    上下行分离信道 (Duplex)

    • [feat] 支持 up-/down- URL 前缀语法, 将上行和下行流量拆分到不同信道
    • [feat] Login 消息 ChannelRole 字段 ("up:pair-0" / "down:pair-0") 完成方向配对
    • [feat] mergeHalfConn 合并两个半双工连接为全双工
    • 用例: TCP 上行 + UDP 下行, HTTP 上行 + WebSocket 下行, 不同 endpoint 伪装

    Multi-Serve 双向 Serve

    • [feat] -l/-r 支持重复指定, 单连接上同时开启多个 serve
    • [feat] 两端各自独立配置, 互为出口
    # 本端同时开 SOCKS5 + 端口转发
    rem -c tcp://server:34996 -l socks5://127.0.0.1:1080 -l forward://127.0.0.1:3306?dest=db:3306
    
    # 两端同时开 SOCKS5, 互为出口
    rem -c tcp://server:34996 -l socks5://127.0.0.1:1080 -r socks5://0.0.0.0:2080

    新增传输层

    • [feat] HTTP/2 隧道传输 (h2:// / h2s://), 独立 HTTP/2 tunnel, h2c 明文和 TLS 双模式
    • [feat] StreamHTTP 隧道 (streamhttp:// / streamhttps://), SSE 下行 + HTTP POST 上行, 反向代理重放缓冲, H1 兼容
    • [feat] DNS 隧道传输 (dns://), base64 编码嵌入域名, KCP 可靠传输
    • [feat] Memory Tunnel (memory://), 进程内 net.Pipe, 用于 C 库集成
    • [feat] WireGuard 传输层增强, hash-based tun_ip 自动分配 (100.64.x.y)

    代理链级联

    • [feat] -x 出站代理链, 支持 SOCKS5/HTTP/SS 混合级联, 按顺序串联
    • [feat] -f Console 连接代理链, 为 tunnel 连接指定代理
    • 流量路径: 本地 → -f 代理链 → Console → Tunnel → -x 代理链 → 目标
    rem -c tcp://server:34996 -x socks5://proxy1:1080 -x http://proxy2:8080
    rem -c tcp://server:34996 -f socks5://bastion:1080
    rem -c tcp://server:34996 -x ss://aes-256-gcm:password@proxy:8388

    CLI 接口变更

    • [feat] -l (本端 serve) / -r (对端 serve) 替代旧的 -m proxy / -m reverse
    • [feat] --list 参数, 列出所有已注册的 tunnel/serve/wrapper 组件
    • [feat] --retry / --retry-interval / --retry-max-interval 重连参数
    • [feat] --lb 负载均衡算法选择
    • [feat] -m/--mode 兼容旧版参数 (legacy, ignored)

    URL Query 通用参数:

    参数 说明 示例
    tls 启用 TLS tcp://host:port?tls
    tlsintls 嵌套 TLS tcp://host:port?tls&tlsintls
    wrapper 指定 wrapper tcp://host:port?wrapper=snappy
    retry 最大重试次数 (0=无限) tcp://host:port?retry=5
    retry-interval 重试间隔 (秒) tcp://host:port?retry-interval=10
    retry-max-interval 最大退避间隔 (秒) tcp://host:port?retry-max-interval=300
    lb 负载均衡算法 tcp://host:port?lb=round-robin

    其他新功能

    • [feat] 加密算法注册中心重构 (x/cryptor), 两层模型 (Block+Stream), 支持: aes, sm4, twofish, tripledes, cast5, blowfish, tea, xtea, xor
    • [feat] 编码器库 (x/encoders): base32, base58, base64, hex, gzip, images
    • [feat] Agent 自动恢复机制 (SafeGoWithRestart), goroutine panic 后自动重启
    • [feat] Server 重启热重连, RST 通知机制让 client 快速感知并重连
    • [feat] 动态轮询间隔调整, 通过 Reconfigure 消息运行时修改 simplex 轮询频率
    • [feat] 指数退避+抖动的 client 重连策略
    • [feat] 流量统计, 250ms 桶滑动窗口, 每连接实时带宽/累计流量/最后活跃时间
    • [feat] C 库导出 (-buildmode c-shared/c-archive), 支持 Python/C/Rust 等语言调用
    • [feat] 编译期内置默认值, -s/-c/-l/-r/-q 可编译到二进制, 免配置部署

    架构重构

    • [refactor] 消息协议: 从 protobuf 切换到手写 wire protocol (protocol/message/wire.go), 移除 protobuf/proto 依赖, 降低体积
    • [refactor] 多路复用: 替换 hashicorp/yamux 为本地 x/yamux, 深度集成到 agent 层
    • [refactor] CLI 解析: 从 go-flags 切换到标准库 flag, 移除 runtime yaml 依赖
    • [refactor] TLS 管理: 从 x/utils 抽取 x/xtls 包, 统一管理 TLS 证书配置
    • [refactor] Build Tag 体系: DNS/OSS 各有独立 tag, 按需条件编译
    • [refactor] 连接管理: 引入 ConnHub 替代单连接模型, bridge 改为 yamux stream
    • [refactor] InboundSide: 用 "local"/"remote"/"" 替代旧的 "proxy"/"reverse", 语义更清晰
    • [refactor] URL 解析: 统一 tunnel+serve+wrapper 的 URL 语法, 支持 query 参数配置一切
    • [refactor] WireGuard: 拆分为 config/device/keys 等独立文件

    性能优化

    • [perf] cio.Join 64KB buffer pool, 减少大文件传输 GC 开销
    • [perf] token bucket 限速器使用 sync.Cond 替代 1ms 自旋等待
    • [perf] SOCKS5 请求解析使用 sync.Pool 复用 bufio.Reader
    • [perf] HTTP Transport server→client 数据投递重写, 性能提升 3-5x
    • [perf] KCP simplex 场景 CPU 占用优化

    Bug 修复

    • [fix] ARQ session 生命周期 bug 导致 goroutine 泄漏和数据丢失
    • [fix] SimplexBuffer 接收路径包边界未保留
    • [fix] yamux keepalive 替换为应用层 ping/pong, 修复高延迟环境假死
    • [fix] acceptStreamsForSession 中 yamux 错误导致 agent 被误杀
    • [fix] HTTP transport server→client 方向数据传递错误
    • [fix] redirect 路由未跟随 alias 目标
    • [fix] bridge close 时的 atomic 访问和 data race
    • [fix] agent Handler 返回后未 close, 导致断线恢复失效
    • [fix] DNS simplex 自定义 DNS 服务器不生效
    • [fix] pack() buffer 泄漏

    破坏性变更

    变更 旧用法 新用法
    Serve 参数 -m proxy / -m reverse -l (本端) / -r (对端)
    消息协议 protobuf 手写 wire protocol (不兼容旧版本)
    依赖 protobuf, go-flags, yaml 标准库 flag, 零额外依赖
    yamux hashicorp/yamux (间接) x/yamux (内置, API 微调)

    Full Changelog: https://github.com/chainreactors/rem-community/commits/v0.3.0

    Open source →
    Release notes

    v0.3.0 Makeover Latest

    Latest

    Compare

    Choose a tag to compare

    Open source →
  3. v0.2.4 27 May 2025
    Release notes

    Changelog

    • [fix] bind 默认不生效的bug
    • [fix] 尝试解决 GLIBC not found的问题
    • [fix] retry not work #3
    • [fix] proxy mod log error
    • [fix] golang 1.17 兼容性
    • [fix] -x/-f proxyclient失效的bug
    • [fix] icmp 失效的问题 #2
    • [improve] 优化多个log信息
    • [improve] 初始化时记录更多信息, 优化name生成, 以备后用
    • [improve] http tunnel 性能. 大概3-5倍的提升
    • [improve] export 中统一错误代码
    • [improve] 优化内存分配
    • [improve] 优化kcp的simplexCPU性能

    Full Changelog: v0.2.3...v0.2.4

    Open source →
    Release notes

    v0.2.4

    Compare

    Choose a tag to compare

    Open source →
  4. v0.2.3 28 Apr 2025
    Release notes

    Changelog

    • [fix] 部分场景下使用因为stdin 导致的卡死, 如webshell、C2反射加载等
    • [fix] 重连机制失效,导致网络波动会直接退出程序
    • [fix] -m proxy模式下,日志打印与预期不符, thanks #1
    • [improve] 删除x/proxyclient, 统一使用 github.com/chainreactors/proxyclient
    • [improve] 大量日志输出优化, 现在能获取到更多且更简洁的信息

    Full Changelog: v0.2.2...v0.2.3

    Open source →
    Release notes

    v0.2.3

    Compare

    Choose a tag to compare

    Open source →
  5. v0.2.2 12 Apr 2025
    Release notes

    rem作为内部工具已经进行了较为长时间的更新与维护, 所以版本号直接从v0.2.2 开始。

    rem-community 在功能上与rem完全一致, 只有一些关于OPSEC的特性rem会更加先进一些。

    rem介绍请见: https://chainreactors.github.io/wiki/blog/2025/04/13/rem-introduce/

    quickstart: https://chainreactors.github.io/wiki/rem/usage/

    Open source →
    Release notes

    v0.2.2

    Compare

    Choose a tag to compare

    Open source →
  6. v0.0.0-20260406124327-2e3ef2f7c36f 06 Apr 2026 pre-release

    Nothing published for this version

  7. v0.0.0-20260406123937-86a788aefb4a 06 Apr 2026 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive