代理客户端项目

服务端 + 客户端方案最好的开源方案是:v2ray 、 karing、clash

可以替代proxychains的几个软件:

项目 GitHub 仓库地址
cproxy https://github.com/NOBLES5E/cproxy
ProxyBridge https://github.com/InterceptSuite/ProxyBridge
redsocks https://github.com/darkk/redsocks
cgtproxy https://github.com/black-desk/cgtproxy
transocks https://github.com/cybozu-go/transocks

对比这几个工具,关键在于理解它们解决同一问题的不同思路。它们都可以将原本不支持代理的程序的流量转走,但各家的技术方案和目标场景差异很大。

项目 核心原理 技术栈 核心优势 核心局限 适用人群
cproxy Cgroup + TPROXY / NAT Rust 使用简单,功能强大,支持DNS代理,可代理已运行进程 需要熟悉透明代理后端 习惯命令行,需要强大功能的技术型用户
ProxyBridge 系统级流量拦截 ??? 跨平台,功能最接近Proxifier,提供图形界面,规则灵活 在Linux上可能是较新项目,生态有待观察 希望获得图形化体验,需要精细控制"哪些程序走代理"的用户
redsocks iptables + 守护进程 C 经典稳定,性能高效,系统级细粒度控制 配置复杂,DNS处理绕路,原生UDP支持弱 资深运维,喜欢手写iptables规则,追求极致控制和性能的用户
cgtproxy Cgroup + nftables Go 现代化(nftables),动态规则管理,与systemd集成良好 资料少,配置灵活但学习曲线陡峭 需要动态规则管理,熟悉现代Linux网络栈的开发者
transocks iptables + 守护进程 ??? 历史悠久,轻量级 长期未更新,功能老旧,仅支持SOCKS4,不支持UDP 适合学习研究,不推荐用于生产环境

原理速览

  • cproxy 与 cgtproxy:通过Linux内核的Cgroups来控制进程组,为不同进程组的流量打上标记,再用网络规则(如TPROXY)进行重定向。做到了既精细又动态。
  • ProxyBridge:在更靠近底层的网络接口层抓包,对应用程序本身完全透明。
  • redsocks 与 transocks:经典的"守护进程 + iptables"方案,由iptables将流量截获并转发给工具处理。

选择指南

  • 追求Proxifier体验,希望图形界面 -> ProxyBridge:它的定位非常明确,就是Proxifier的开源替代。它提供图形界面和命令行两种模式,规则灵活,支持按进程名、IP等精细分流,配置直观。虽然文档较少,但它是对新手最友好的一个。
  • 习惯命令行,需要稳定强大的代理能力 -> cproxy:它使用命令行的方式类似proxychains,非常直观。但它更强大,可以代理proxychains无能为力的静态编译程序(如Go应用)和已运行进程,更支持DNS转发并提供原生TPROXY支持,是深度用户的强大工具。
  • 系统规模较大,寻求动态规则管理 -> cgtproxy:如果你的环境需要动态地为大量新进程自动应用代理规则,cgtproxy的"规则管理器"思路很契合。它基于新时代的nftables,可为proxychains这类工具提供强大的规则支撑。但它学习曲线陡峭,更适合已熟悉nftables和Cgroup的高级用户。
  • 系统运维专家,深谙iptables之道 -> redsocks:它是一个非常成熟的底层组件,允许你用 iptables实现极端精细的控制。但你需要自己管理iptables规则,且它的UDP和DNS处理机制已有些老旧。

特别提醒:关于UDP支持 虽然许多工具声称"支持UDP",但实际情况各不相同。例如cproxy的支持依赖于你的后端代理,而ProxyBridgecgtproxy则明确表示支持。如果你的场景重度依赖UDP(如游戏、VoIP),务必进一步查看项目文档确认该功能对你的环境是否足够稳定。

结论

推荐首选ProxyBridge,它支持图形化和命令,跨平台;如果喜欢像proxychains一样使用体验推荐cproxy,一个rust写的命令行工具,使用方式类似proxychains。