Changelog
roadmap¶
stage 0¶
- 正向端口转发, 将端口从本机转发到远程
- 反向端口转发, 将端口从远程转发到本机
- 正向代理, 搭建socks5/http代理
- 反向代理, 通过服务器, 将流量代理至客户端. (rem中实际上并不一定有服务端与客户端之分, rem中可以将流量代理至任意节点)
- 代理, 通过其他服务提供的代理协议, 例如socks5/http代理, 转发rem协议本身的流量
- 转发, 通过其他服务提供的代理协议, 将出方向的流量转发到指定目标
- 级联, 能通过rem自身的协议, 形成多级的节点的连接关系
- 多级端口转发, 将端口从本机通过rem转发到任意rem网络中的节点
- 多级代理转发, 将流量通过rem转发到任意rem网络中的节点
- RPORTFWD_LOCAL, (多级端口转发的特例), 将本机的的端口通过rem转发至
- PORTFWD_LOCAL, (多级端口转发的特例), 将rem节点的端口转发至本机
特性:
- 传输层, 支持TCP, UDP, ICMP, WIREGUARD等各种场景传输层协议
- 加密层, TLS/MTLS或者任意自定义的加密协议
- 混淆层, 模拟特定协议
- 连接复用
stage 1¶
- 调整主体文件结构
- 调整函数,文件,变量命名
- 重构代理逻辑
- 代码解耦
- 重构monitor与流量控制
- 重新设计cli ui
- 支持rportfwd
- 重新设计msg
- 重新设计wrapper
- 支持neoregeorg, 将半双工信道升级为全双工
- 支持云函数, cdn等
- 支持配置任意数量的多级透明socks5/socks4a/socks4/http/https代理
- 支持tls协议 (working)
- 支持级联 (working)
- 支持端口复用(搁置)
- 支持端口敲门(搁置)
- RPORTFWD_LOCAL与PORTFWD_LOCAL
- 重构proxyclient
- 支持clash订阅
- 支持shadow-tls
- 支持对外暴露多种类型的协议
- socks5
- http/https
- trojan
- v2ray
高级功能
- Proxy as a service, 提供一套流量协议标准以及多语言跨平台sdk, 无性能损耗的转发流量 (working)
- 心跳代理, 使用非长连接的方式建立代理, 实现更复杂的流量与统计学特征混淆
- P2P式的多级代理, 类似STUN协议
- 重载任意C2的listener, 最终目的将listener从C2中解耦出来
- 实现编译期, 自定义templates. 实现随机流量特征与最小文件体积
- 通过ebpf与raw packet实现更高级的信道建立与隐蔽
log¶
v0.3.0¶
重大变更(Breaking Changes)
- [breaking] CLI 参数重构:
-c改为 client 专用,新增-s作为 server 参数 - [breaking]
-m/--mode废弃(设为 legacy flag,被忽略);使用-b/--bind替代 bind 模式 - [breaking]
inbound侧由-l/-r位置自动推断,无需-m reverse/proxy
新增功能
- [feat] Relay 模式:
-s和-c同时使用时,启动透明 TCP 中继,加密端到端(已实测) - [feat] Extra Serves:支持多个
-l/-r参数,自动 fork 多服务(已实测) - [feat] ConnHub 多通道:支持多个
-cURL,定向通道(up/down)分离(已实测,[connhub] attached channel full tcp-1) - [feat] 负载均衡:
--lb random/fallback/round-robin,也可通过 URL query?lb=设置(已实测参数接受) - [feat] FetchProxy MITM:
--fetchproxy-mitm/ca/key,服务端 HTTPS CONNECT 解密(Pro 功能,代码实现确认) - [feat] 重试指数退避:新增
--retry-max-interval,支持?retry-max-interval=URL query(已实测参数接受) - [feat]
--list命令:列出所有已注册的传输层、服务和 wrapper(已实测) - [feat]
-q/--quiet短参数支持(已实测,静默无输出) - [feat] Relay link 自动生成(含
via参数,已实测)
改进
- [improve] 连接失败默认无限重试(
retry=0),原默认为10次 - [improve] 自动探测外网 IP(
-i可省略) - [improve] 多 console URL 支持(
-c可重复) - [improve] 版本信息(
--version)由 ldflags 注入
重要说明
-l port://:X= client 监听 X(本地端口转发),等价于 SSH-L-r port://:X= server 监听 X(远程端口转发),等价于 SSH-R- 旧版本文档中两者描述有误,已修正
v0.2.2¶
- [feat] 新增clash config的自动网段配置
- [feat] 新增cobaltstrike external c2 demo
- [feat] 新增流量全局压缩,
-c tcp:///?compress=true - [feat] 新增tlsintls ,
-c tcp:///?tlsintls=true - [feat] 新增build.sh的-t,-a,-o参数
v0.2.1¶
- [feat] support cmdline from stdin
- [feat] add rem lib release, dll/so/a
- [fix] unaligned int panic
- [fix] buffer close panic
- [fix] socks5 parse ipv6 error
v0.2.0¶
- [feat] add cmd/export as FFI ABI
- [feat] add build.sh
- [feat] add as package api
- [fix] xor/aes wrapper bug
- [fix] cio Read not full
- [improve] refactor metrics and log
- [improve] add connect mod, just connect ,no serving.
v0.1.1¶
- [feature] inbound: 支持 tcp+socks5 协议或memory+socks5, 允许inbound协议在不同的传输层上搭建
- [feature] proxyclient: 实现内存代理功能
- [feature] proxyclient:实现 rem proxyclient
- [feature] tunnel: 实现内存通道
- [feature] kcp: 实现 KCP ICMP 传输
- [feature] kcp: 实现 HTTP/ICMP KCP 传输
- [feature] kcp: 实现 HTTP 通道
- [feature] kcp: 解耦 simplex 和 HTTP 传输
- [feature] cmd: 添加 no-sub 标志以禁用订阅功能
- [refactor] kcp: 重构 KCP 替换 kicmp 和 KCP-GO
- [refactor] tunnel: 重构tunnel,拆分为 dialer 和 listener
- [refactor] tunnel: 重构agent ID 和bridge ID 生成
- [enhance] proxyclient: ssh代理连接复用
- [enhance] tunnel: 提升缓冲区性能
- [fix] 大量bug修复
v0.1.0¶
彻底重构
- 正向端口转发, 将端口从本机转发到远程
- 反向端口转发, 将端口从远程转发到本机
- 正向代理, 搭建socks5/http代理
- 反向代理, 通过服务器, 将流量代理至客户端. (rem中实际上并不一定有服务端与客户端之分, rem中可以将流量代理至任意节点)
- 代理, 通过其他服务提供的代理协议, 例如socks5/http代理, 转发rem协议本身的流量
- 转发, 通过其他服务提供的代理协议, 将出方向的流量转发到指定目标
- 级联, 能通过rem自身的协议, 形成多级的节点的连接关系
- 多级端口转发, 将端口从本机通过rem转发到任意rem网络中的节点
- 多级代理转发, 将流量通过rem转发到任意rem网络中的节点
- RPORTFWD_LOCAL, (多级端口转发的特例), 将本机的的端口通过rem转发至
- PORTFWD_LOCAL, (多级端口转发的特例), 将rem节点的端口转发至本机
特性:
- 传输层, 支持TCP, UDP, ICMP, WIREGUARD等各种场景传输层协议
- 加密层, TLS/MTLS或者任意自定义的加密协议
- 混淆层, 模拟特定协议
- 连接复用