1. iptables
底层技术
- 工作层级: Linux内核netfilter框架
- 处理方式: 数据包在内核态直接处理,零拷贝
- 实现机制: 基于规则链和表的包过滤系统
- 数据流: 网卡 → 内核netfilter钩子 → 直接修改包头 → 转发
性能指标
- 延迟: ~0.05ms
- 吞吐: 接近线速(40Gbps+)
- CPU占用: 极低
- 内存占用: 几乎无额外开销
优劣势
✅ 优势: 最高性能,零额外延迟,硬件加速支持 ❌ 劣势: 只支持L3/L4转发,无协议转换,配置复杂
2. brook
底层技术
- 实现语言: Go语言
- 网络模型: goroutine per connection
- 加密: 自定义AES-256-CFB + 混淆
- 架构: C/S架构,支持多种代理模式
性能指标
- 延迟: ~0.3-0.8ms
- 吞吐: ~2-6 Gbps
- CPU占用: 中等
- 内存占用: ~20-100MB
优劣势
✅ 优势: 开发维护简单,跨平台,内置加密混淆 ❌ 劣势: GC延迟抖动,协议相对单一,性能中等
3. caddy
底层技术
- 实现语言: Go语言
- 定位: Web服务器 + 反向代理
- 特色: 自动HTTPS,插件化架构
- HTTP版本: 原生支持HTTP/1.1、HTTP/2、HTTP/3
性能指标
- 延迟: ~0.5-2ms (HTTP处理开销)
- 吞吐: ~1-4 Gbps
- CPU占用: 中高(HTTP解析开销)
- 内存占用: ~50-200MB
优劣势
✅ 优势: 自动TLS证书,配置简单,Web功能强大 ❌ 劣势: 主要面向HTTP,非HTTP代理功能有限
4. ehco
底层技术
- 实现语言: Go语言
- 专门用途: 网络中继和流量转发
- 特色: 支持WebSocket隧道,多种传输层
- 架构: 轻量级转发器
性能指标
- 延迟: ~0.2-0.6ms
- 吞吐: ~3-8 Gbps
- CPU占用: 低
- 内存占用: ~10-50MB
优劣势
✅ 优势: 轻量级,专注转发,支持WebSocket隧道 ❌ 劣势: 功能相对简单,生态不如主流工具
5. gost
底层技术
- 实现语言: Go语言
- 架构: 链式代理架构,多级转发
- 协议支持: HTTP/SOCKS/SS/V2Ray/Trojan等全协议
- 特色: 插件系统,配置文件支持
性能指标
- 延迟: ~0.5-1.2ms
- 吞吐: ~1-5 Gbps
- CPU占用: 中高
- 内存占用: ~30-150MB
优劣势
✅ 优势: 协议最全,链式转发,功能丰富,配置灵活 ❌ 劣势: 性能中等,资源占用较高,复杂性高
6. socat
底层技术
- 实现语言: C语言
- 架构: 单进程,epoll多路复用
- 定位: 通用数据中继工具
- 特色: 支持各种socket类型和协议
性能指标
- 延迟: ~0.1-0.3ms
- 吞吐: ~3-8 Gbps
- CPU占用: 低
- 内存占用: ~5-20MB
优劣势
✅ 优势: 轻量稳定,资源占用低,协议支持丰富 ❌ 劣势: 单线程瓶颈,功能相对基础,无高级代理功能
7. realm
底层技术
- 实现语言: Rust
- 异步框架: tokio异步运行时
- 内存管理: 零成本抽象,编译时内存安全
- 网络库: 高性能异步网络栈
性能指标
- 延迟: ~0.2-0.5ms
- 吞吐: ~8-15 Gbps
- CPU占用: 低
- 内存占用: ~10-50MB
优劣势
✅ 优势: 高性能,内存安全,资源占用低 ❌ 劣势: 功能简单,生态较新,开发难度高
8. v2ray
底层技术
- 实现语言: Go语言
- 架构: 模块化设计,路由分流
- 协议: VMess/VLESS/Shadowsocks等
- 特色: 强大的路由和分流功能
性能指标
- 延迟: ~0.8-2ms
- 吞吐: ~1-4 Gbps
- CPU占用: 中高(加密和路由开销)
- 内存占用: ~50-200MB
优劣势
✅ 优势: 功能强大,路由灵活,协议先进,抗封锁能力强 ❌ 劣势: 配置复杂,性能开销大,学习成本高
9. iperf3
底层技术
- 实现语言: C语言
- 用途: 网络性能测试工具
- 测试模式: TCP/UDP带宽测试
- 架构: 客户端-服务器模式
性能指标
- 延迟: 测试工具,不适用
- 吞吐: 能测试到线速
- 作用: 网络性能基准测试
优劣势
✅ 优势: 标准测试工具,结果准确,功能专业 ❌ 劣势: 仅用于测试,非生产转发工具
10. haproxy
底层技术
- 实现语言: C语言
- 架构: 事件驱动,单进程多线程
- 定位: 专业负载均衡器
- 特色: 高级负载均衡算法,健康检查
性能指标
- 延迟: ~0.1-0.5ms
- 吞吐: ~10-40 Gbps
- CPU占用: 低-中
- 内存占用: ~20-100MB
优劣势
✅ 优势: 专业LB功能,性能极高,稳定性好,企业级 ❌ 劣势: 主要面向HTTP/TCP LB,代理功能有限
11. wstunnel
底层技术
- 实现语言: Rust
- 特色: WebSocket隧道专用工具
- 用途: 通过WebSocket传输TCP/UDP流量
- 场景: 穿越防火墙和代理
性能指标
- 延迟: ~0.5-1.5ms (WebSocket开销)
- 吞吐: ~2-6 Gbps
- CPU占用: 中(WebSocket编解码)
- 内存占用: ~15-60MB
优劣势
✅ 优势: WebSocket伪装好,穿透能力强 ❌ 劣势: WebSocket开销,功能单一
12. shadowsocks
底层技术
- 实现语言: 多种(Python/C/Go/Rust)
- 加密: 多种对称加密算法
- 协议: SOCKS5代理 + 加密传输
- 特色: 简单高效的加密代理
性能指标(以ss-rust为例)
- 延迟: ~0.3-0.8ms
- 吞吐: ~3-10 Gbps
- CPU占用: 低-中
- 内存占用: ~10-50MB
优劣势
✅ 优势: 简单高效,加密强度好,多语言实现 ❌ 劣势: 功能单一,易被检测,协议相对简单
13. tinyPortMapper
底层技术
- 实现: 轻量级端口映射工具
- 用途: 简单的端口转发和映射
- 特色: 极简设计,资源占用最小
性能指标
- 延迟: ~0.1-0.4ms
- 吞吐: ~5-12 Gbps
- CPU占用: 极低
- 内存占用: ~2-10MB
优劣势
✅ 优势: 极简轻量,性能好,资源占用最小 ❌ 劣势: 功能极其有限,无高级特性
14. prometheus node exporter
底层技术
- 实现语言: Go语言
- 用途: 系统监控指标收集
- 架构: HTTP服务器,暴露metrics接口
- 作用: 监控系统性能指标
性能指标
- 延迟: 监控工具,不适用
- 资源占用: ~10-30MB
- 作用: 配合Prometheus做监控
优劣势
✅ 优势: 标准监控工具,指标全面 ❌ 劣势: 仅用于监控,非转发工具
综合性能排序
纯转发性能 (高到低)
- iptables: 接近线速
- haproxy: 10-40 Gbps
- realm: 8-15 Gbps
- tinyPortMapper: 5-12 Gbps
- socat: 3-8 Gbps
- ehco: 3-8 Gbps
- shadowsocks: 3-10 Gbps
- brook: 2-6 Gbps
- wstunnel: 2-6 Gbps
- gost: 1-5 Gbps
- v2ray: 1-4 Gbps
- caddy: 1-4 Gbps
功能丰富度 (高到低)
- gost: 全协议支持,链式转发,配置最灵活
- v2ray: 路由分流,多协议,功能强大
- caddy: Web服务器功能,自动HTTPS
- haproxy: 专业负载均衡,健康检查
- brook: 基础代理功能,简单易用
- shadowsocks: 加密代理,简单高效
- ehco: 转发专用,WebSocket支持
- wstunnel: WebSocket隧道专用
- socat: 通用数据中继
- realm: 基础转发
- tinyPortMapper: 极简端口映射
- iptables: 基础包转发
资源占用 (低到高)
- iptables: 几乎无开销
- tinyPortMapper: 2-10MB
- socat: 5-20MB
- realm: 10-50MB
- shadowsocks: 10-50MB
- ehco: 10-50MB
- wstunnel: 15-60MB
- brook: 20-100MB
- haproxy: 20-100MB
- gost: 30-150MB
- caddy: 50-200MB
- v2ray: 50-200MB
VPN业务选型建议
高性能场景
推荐组合: iptables + realm + 监控
- iptables做纯转发
- realm处理需要代理的流量
- prometheus监控性能
复杂代理场景
推荐: gost (继续使用)
- 协议支持最全面
- 链式转发无可替代
- 配置灵活,功能丰富
特定场景优化
- WebSocket隧道: wstunnel
- 负载均衡: haproxy
- Web代理: caddy
- 简单转发: socat/realm
- 监控: prometheus + node_exporter
不建议用于生产
- iperf3: 仅测试工具
- tinyPortMapper: 功能过于简单
- prometheus node exporter: 仅监控工具