Zoraxy 评测:面向家庭实验室的 Go 语言反向代理,值得从 Nginx 切换吗?
通用 HTTP 反向代理和转发工具。现在用 Go 编写!
秒懂
- 它是什么?
- Zoraxy 是一个用 Go 编写的通用 HTTP 反向代理和转发工具,主打简单易用的界面和开箱即用的功能。本文基于其 README 和仓库信息,分析它的适用场景、工作机制、部署方式以及局限性。
- 适合谁用?
- Zoraxy 适合家庭实验室所有者、树莓派用户和刚开始搭建多服务架构的开发者,这些人希望用 Web 界面管理反向代理,而不想手写 Nginx 配置。它不适合需要精细控制每个上游连接参数、或者依赖成熟日志分析模块的生产环境,因为 README 明确提到日志模块正在寻找维护者。
- 能商用吗?
- 可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
- 还在维护吗?
- 在维护。仓库最近一次提交在 2 天前。
- 用什么语言写的?
- 主要是 HTML(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题,谁需要它
Zoraxy 面向的是家庭实验室所有者和独立开发者,这些人通常运行多个 Web 服务,比如 NAS、媒体服务器、智能家居控制台,但不想为每个服务单独配置端口或学习复杂的 Nginx 语法。它的核心定位是提供一个带 Web 界面的通用 HTTP 反向代理,让你通过点击鼠标完成域名转发、TLS 证书部署和访问控制。README 中明确提到它适合“新 owners to homelabs or makers starting growing their web services into multiple servers”,也就是说,它降低了从单机服务扩展到多机服务的门槛。如果你已经熟悉 Nginx 或 Apache,Zoraxy 可能显得多余,但如果你更想要一个像家用路由器一样的管理界面,它就值得一看。
工作机制:从配置到请求转发的路径
根据 README,Zoraxy 的核心是一个 Go 编写的反向代理,支持 HTTP/2、WebSocket 代理(自动识别,无需额外设置)和负载均衡。它的配置存储在本地文件夹(默认 ./conf)和数据库中(支持 leveldb 或 boltdb,可自动选择)。启动时通过命令行参数指定端口,例如 ./zoraxy -port=:8000,然后 Web 管理界面会接管配置流程。请求转发的基本流程是:客户端请求到达 Zoraxy 监听端口,代理根据虚拟目录或主机名规则匹配目标上游服务器,然后转发请求,同时可以附加自定义头、执行基本认证或应用黑名单。TLS 证书通过 ACME 协议自动申请和续期,支持 DNS Challenge,这意味着你可以为通配符域名或没有公网 IP 的服务器获取证书。整个机制的核心是配置的集中管理,而不是每个服务的独立配置。
部署与启动:从源码构建到 Docker
部署 Zoraxy 的方式有三种:直接下载预编译二进制、从源码构建、或者使用 Docker。源码构建需要 Go 1.23 或更高版本,命令序列是 git clone、cd src、go mod tidy、go build,然后运行 sudo ./zoraxy -port=:8000。Windows 用户可以直接双击 exe 文件,树莓派用户需要根据 CPU 架构选择 arm64 或 armv6 版本。Docker 部署的细节在仓库的 /docker 文件夹中,但 README 没有给出具体命令,因此你需要自行查看该目录。启动参数中有一个值得注意的 -db 选项,它可以选择 leveldb、boltdb 或 auto,在 RISCV 等不支持的平台上会回退到 fsdb。另一个关键参数是 -noauth,启用后可以关闭内置认证,但 README 警告这只能在受信任环境或已有上游认证代理时使用。对于 Web SSH 功能,它仅支持 Linux 系统,且默认禁止 loopback 连接,需要 -sshlb=true 才能连接 127.0.0.1。
功能清单里的亮点与陷阱
Zoraxy 的功能列表很长,从反向代理、重定向规则、TLS 自动续期,到流代理(TCP/UDP)、集成 uptime 监控、Web SSH 终端,甚至还有 CIDR 转换器、mDNS 扫描器、Wake-On-Lan 等实用工具。这些工具对家庭实验室用户来说确实方便,但你需要留意几个陷阱。首先,Web SSH 只支持 Linux,Windows 用户无法使用。其次,loopback 连接默认被禁用,这意味着你不能通过 Web SSH 连接到本机服务,除非显式开启 -sshlb。第三,ACME 集成目前正在寻找维护者,这意味着自动续期和 Zoraxy 的集成可能不够稳定,或者更新速度会变慢。最后,日志模块(包括分析和攻击防御)也在寻找维护者,这暗示日志功能可能不完整,对于需要审计日志的生产环境来说是个短板。
与 Nginx Proxy Manager 的对比:界面相似,但底层不同
Zoraxy 的直接竞争对手是 Nginx Proxy Manager(NPM),两者都提供 Web 界面来管理反向代理。但它们的底层实现完全不同:NPM 是 Nginx 的封装,生成 Nginx 配置文件,而 Zoraxy 是独立的 Go 程序,不依赖 Nginx。这意味着 Zoraxy 的配置存储在自己的数据库和 conf 文件夹中,而不是生成标准 Nginx 配置。如果你熟悉 Nginx 的配置文件,Zoraxy 的学习曲线反而更陡,因为你需要适应它的 Web 界面逻辑。不过,Zoraxy 提供了一个实验性的 nginx 配置转换器(在 https://zoraxy.aroz.org/nginx2zoraxy.html),可以直接将 Nginx 配置转换为 Zoraxy 格式,这降低了迁移成本。但要注意,这个转换器是实验性的,可能无法处理所有复杂的 Nginx 指令。
维护成本与许可限制
Zoraxy 使用 AGPL-3.0 许可证,这意味着如果你修改代码并部署为网络服务,你需要公开你的修改版本源代码。对于个人使用或家庭实验室,这通常不是问题,但如果你打算在商业环境中集成 Zoraxy,你需要仔细评估合规性。项目的维护活跃度从最近的 release 频率可见一斑,v3.3.4 在 2026 年 8 月发布,之前有 rc3 和 rc2,说明开发仍在进行。但 README 也显示多个模块正在寻找维护者,包括 ACME 集成、Zoraxy Auth 和日志模块,这意味着这些部分可能贡献者不足,bug 修复速度可能较慢。升级方面,有一个 -cfgupgrade 参数,默认启用,可以在检测到破坏性变更时自动升级配置,这减少了升级时的麻烦,但也可能带来意外行为。
安全与边界:何时不该用 Zoraxy
Zoraxy 的安全模型依赖于内置的单管理员认证,或者通过 -noauth 模式交给上游代理处理。README 明确警告,noauth 模式只能在受信任环境或已有认证代理时使用。如果你没有上游认证,又关闭了内置认证,那么任何能访问管理端口的人都能修改你的代理规则。另外,黑名单/白名单功能支持按国家或 IP 过滤,但对于高安全需求的环境,这种粗粒度的控制可能不够。Zoraxy 的 Web SSH 功能默认阻止 loopback 连接,这是一个好的安全默认值,但如果你需要远程管理本机,你必须显式开启,这增加了暴露风险。最后,如果你的服务对延迟或吞吐量有严格要求,Zoraxy 作为一个通用工具可能不如 Nginx 或 HAProxy 那样可调优,但 README 没有提供性能数据,因此你需要在真实环境中验证。
编辑结论
Zoraxy 适合家庭实验室所有者、树莓派用户和刚开始搭建多服务架构的开发者,这些人希望用 Web 界面管理反向代理,而不想手写 Nginx 配置。它不适合需要精细控制每个上游连接参数、或者依赖成熟日志分析模块的生产环境,因为 README 明确提到日志模块正在寻找维护者。在采用前,先确认你的部署平台是否在官方二进制支持列表内(如 linux/amd64、arm64),并检查数据库后端是否支持你的 CPU 架构(如 RISCV 会回退到 fsdb)。另外,如果你需要 Web SSH,务必确认目标系统是 Linux,且注意 loopback 连接默认被禁用。最终判断:Zoraxy 是一个功能丰富但仍在快速迭代的工具,其价值在于集成度,而非性能或企业级特性。
社区笔记