[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f20mu65h0jjd1w":3},{"code":4,"message":5,"data":6,"timestamp":45},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":41,"homepage":42,"updated_at":43,"history":44},"wangwanjie\u002Fgately",5,"Open-source, auditable network gateway for homelabs, NAS and servers: DDNS, STUN traversal, port forwarding with SNI routing, reverse proxy and web server, ACME certificates, WAF, Tailscale, frp, Cloudflare Tunnel, Docker and web terminal in one binary. Runs on Docker, fnOS, OpenWrt, Linux, macOS and Windows.","Go",374,35,40,9,[],"面向家庭、NAS 与小服务器的单文件网络网关，集 DDNS、NAT 穿透、SNI 端口转发、反向代理与 ACME 证书于一体。","如果你有 NAS 或家用服务器，想用域名加 HTTPS 暴露服务，又不想自己拼 haproxy、nginx、DDNS 脚本和证书续期任务，Gately 用一个二进制把这些事装在一起。它最适合已经在维护好几个网络小工具的人；但它也是个年轻项目，没有长期运行记录。\n\n## 解决什么问题\n\n以前：想让 `nas.example.com` 指向家里的服务，要先让动态 DNS 跟着路由器地址更新，再在 NAT 上打洞或开端口，然后找地方终止 TLS，还得记得续期泛域名证书。每一步往往是不同工具、不同配置格式，反向代理还要知道哪个域名对应哪个后端。现在：Gately 站在网络出口，发现公网地址，通过 ACME 申请证书，再按 SNI 把进来的 TLS 连接分给对应的内网目标，多个服务可以共用 443 端口。最终换来一个管理后台和一个配置目录，而不是一堆各自为政的组件。\n\n## 有什么不同\n\n真正区别开它的是端口转发模块里的 SNI 路由：按域名透传 TLS，可设默认目标，每条路由可单独启用 PROXY protocol。正因如此，一个入口端口能服务多个后端，而这通常正是 haproxy 加 nginx 这套组合干的活。README 的[性能表](https:\u002F\u002Fgithub.com\u002Fwangwanjie\u002Fgately\u002Fblob\u002Fmain\u002FREADME.md)在作者自己的机器上比较了两者（90 个 SNI 域名、PROXY protocol v2、ECDSA P-256、TLS 1.3），报告 Gately 吞吐更高、p99 更低，另外给出了 Gately 的 HTTP\u002F2 数据，而 nginx 那套没有测。这些数字是作者的基准测试，不是独立结论。\n\n功能多本身也是取舍。DDNS 各服务商、STUN 与 UPnP\u002FNAT-PMP 穿透、DNS-01 或 HTTP-01 申请证书、Tailscale、frp 客户端与服务端、WAF、网页终端，全在同一个进程里。集中起来减少了活动部件，但也意味着一个工具同时握着你的 DNS 密钥和证书私钥，任何一个模块出问题，都发生在网络边缘这个关键位置。项目主张以 Apache-2.0 开源和可编辑的出站地址列表来保证可审计；但审计本身仍是你需要投入的工作。\n\n## 谁值得试\n\n适合已经在同一台机器上跑几个服务、想按域名做 HTTPS 路由、又不想分别维护 haproxy 和 nginx 的自建用户。fnOS 这条路尤其省事：Gately 作为原生应用出现，fnOS 管理员可以直接用 fnOS 会话登录，不需要单独的 Gately 密码。OpenWrt 安装包也让装在路由器上变得可行。\n\n不适合需要经过多年打磨、部署广泛的成熟边缘代理的人，也不适合只想要 DDNS 这一个小功能的人。如果只有一个服务、IP 又固定，整套栈带来的复杂度省不了多少。同样，如果你不能接受由一个年轻项目掌管证书和 DNS 凭据，就别把它放在出口位置。\n\n## 使用条件与边界\n\nDocker 方式需要 host 网络、`NET_ADMIN` 和挂载 Docker socket，容器因此对宿主机有较大权限。二进制方式需要一个配置目录，管理后台的默认账号是 `admin`、密码是 `gately.cn`，必须改掉，设置里可开启两步验证。API token 只在创建时显示一次，可按模块授予权限，这点在写脚本调用管理 API 时很重要；账号、备份、恢复、重启等接口只接受登录会话。\n\n安装之后的日常维护比安装本身更要紧：证书续期、DNS 服务商凭据、以及通过 SSH 推送证书的目标都要一直可用；fnOS 的 `.fpk` 包需要在 App Center 里手动安装，不在官方商店。现有材料里没有独立的代码安全审查，也没有生产环境的长期使用记录。\n\n## HotRepo 点评\n\nHotRepo 从 2026-10-24 开始跟踪这个项目，当时它只有 9 天。2026-10-25 它出现在新项目榜（不是总榜）第 5 名，总星数 362。这只是单次带日期的快照，没有可比的每日榜单历史，因此无法判断热度能否持续。它的功能面够宽，若你正好想替换 haproxy 加 nginx，值得一看；但在把它放到网络出口之前，先针对自己的后端验证 SNI 路由和证书续期的实际表现。",{"slug":19,"name":20},"devops","运维与部署",[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"acme","cloudflare-tunnel","ddns","docker","fnos","frp","golang","homelab","nas","nat-traversal","openwrt","port-forwarding","reverse-proxy","self-hosted","sni-proxy","stun","tailscale","waf","web-terminal","Apache-2.0","https:\u002F\u002Fgately.cn","2026-10-25T03:10:31Z",[],1792915250]