GitHub - Everless321/Iris
通过在 GitHub 上创建帐户来为 Everless321/Iris 开发做出贡献。
手里有30多台vps 里面混合很多家宽和落地机,之前一直都用nftables控制端口转发,但是配置麻烦,而且流量监控起来也比较麻烦,同时我也需要一些探针的需求,但是哪吒和korami等探针对我来说有点多余,于是搓了Iris-Rust编写的多级转发控制平台。
技术栈:
- master:axum(HTTP API + SLA + Prometheus)+ tonic(gRPC mTLS 控制面)+ SQLite
- 节点:raw_tunnel(TCP)+ quic_tunnel(UDP datagram)
- 前端:React + AntD
- 单 binary,无外部依赖
核心特色
1. 任意 N 跳级联
path = [入口组, 中转组, 出口组],每跳一个节点组,组内多节点做负载均衡和 failover。
中国优化线路当入口、香港国际优化线路当中转、家宽落地当出口,或者中国优化直连家宽落地——两跳。
2. 每跳 4 种负载均衡可选
- 加权轮询
- 会话保持(Rendezvous 一致性哈希,节点上下线只影响该节点的会话)
- 最小连接
- 延迟最优(基于 5s 一次的健康探测)
每一条都可单独配置
3. 全链路 mTLS + 自动续签
master 启动自动生成根 CA,节点 enroll 时签发 365 天 cert,剩 30 天自动调 RenewCert申请新证书。
4. 极致速度优化 采用GCP 美 日 新加坡 三区域10G口机器测试
- 采用splice(2)内核态转发,非加密场景传输速率几乎持平nftables和realm
5. TCP + UDP 双协议,UDP 不走 TCP 隧道
Iris 的 UDP 走独立的 QUIC datagram 通道,纯用 QUIC 的多路复用和 mTLS。跨 区域(测试选择gcp的日美亚)实测丢包稳定 <2%。
6. 实时流量统计
这块直接回应"探针需求":
- 每条 forward 的
bytes_in/bytes_out每 5 秒上报一次 /metrics端点原生导出,可以直接丢给Grafana。- 节点延迟矩阵 + SLA 看板(每个节点相邻的 RTT 全量探测)
7. 一键节点安装 / 升级 / 卸载
装节点:
curl -fsSL https://raw.githubusercontent.com/Everless321/Iris/main/install.sh \
| sudo bash -s -- --master https://<MASTER>:7080 --token <TOKEN>
升级 master 自己:
curl -fsSL https://raw.githubusercontent.com/Everless321/Iris/main/install.sh \
| sudo bash -s -- --upgrade-master
卸载(自动备份证书和配置到 /tmp):
curl -fsSL https://raw.githubusercontent.com/Everless321/Iris/main/install.sh \
| sudo bash -s -- --uninstall
脚本自动检测架构、下载 binary、enroll 兑换 mTLS 证书、写 systemd unit、起服务。** 30 秒一台。**
8. L4 透传
TCP / UDP 纯透传,上层跑 SS / Trojan / VLESS / Hysteria / WireGuard 对 Iris 完全透明。你换协议不用动 Iris,Iris 升级不用动你的协议层。


3 个帖子 - 2 位参与者