用开源项目轻松实现内网服务的在线用户统计

家里搭了个小博客,或者公司内部跑着一个管理系统,想看看每天有多少人访问,但又不想上商业统计工具?其实有不少开源在线用户统计项目,轻量、隐私友好,还能结合内网穿透用在外网访问场景里。

为什么需要在内网服务中加用户统计?

比如你在家里用树莓派搭了个备忘录系统,通过内网穿透让手机能随时访问。时间久了,你会好奇:到底有没有人在用?什么时候用得最多?这些数据对优化使用体验很有帮助。商业工具像 Google Analytics 虽然功能强,但用在内网项目上配置麻烦,还可能涉及隐私泄露。

推荐几个实用的开源统计工具

Fathom 是个不错的选择。它界面简洁,代码几行就能嵌入,所有数据存在自己服务器上。安装后,你只需要在页面底部加一段 JS 代码,就能看到实时访问情况。

<script src="https://your-fathom-instance.com/script.js" data-site="ABC123" defer></script>

另一个是 Plausible,和 Fathom 类似,但更强调极简和合规。它不采集 IP、不设 Cookie,符合 GDPR。适合那些对隐私特别在意的小团队或个人项目。

如果你喜欢全自托管、完全掌控数据流,可以试试 GoatCounter。它用 Go 写的,资源占用低,单文件部署就能跑起来。配合 Caddy 或 Nginx 做反向代理,再通过内网穿透暴露出去,外网也能看统计面板。

怎么和内网穿透配合用?

假设你用的是 frp 或 nps 做内网穿透,把本地 3000 端口的服务映射到公网。那你的 Fathom 或 GoatCounter 后端也可以跑在同一个内网机器上,比如监听 8080 端口,然后通过穿透工具单独暴露出去,或者和主服务走同一个域名的不同路径。

比如你在公网域名 stats.yourhome.io 上部署统计服务,前端页面加载时请求这个地址的 JS 脚本,数据就自然收集到了。整个过程不经过第三方,速度也快。

实际用起来,你会发现这些工具不仅能看“多少人来过”,还能知道他们从哪个设备进来、停留多久、点了哪些页面。有次我发现自己写的家庭记账页面,移动端访问占了八成,立马把按钮调大,体验一下就好了很多。

这些开源项目不像大平台那样花哨,但足够透明、够灵活。特别是当你已经用了内网穿透把服务搬上外网,顺手加上一个轻量统计,就像给小屋子装了个观察窗,谁来了、待了多久,一清二楚。