GoForum › 🌐 V2EX

[分享] 拋棄 SCP:我用單一 Binary (APE) 透過 WebRTC 將遠端 Nginx Log 串流到本地 GoAccess (零依賴)

bear330 · 2026-01-17 11:18 · 0 次点赞 · 0 条回复

大家好,之前有在版上介绍过我自己写的 CLI 传档工具 ffl 上一篇传送门。

这阵子在维运时遇到一个痛点:「想分析 Production 容器里的 Nginx Log ,但不想在 Server 上装 GoAccess ,也不想把几百 MB 的 Log 载回来占空间。」

通常大家会用 scp 下载,或者搞复杂的 SSH Tunnel 。但我个人还是感觉有点麻烦,尤其是档案在 Container 内 或属于 Root 权限 时,SFTP/SCP 很难直接一把抓出来。

于是就有了这个玩法的 Demo 。👇

📺 实际效果 (Log 串流分析)

Demo (影片示范的是将远端 160MB 的 Log 直接串流到本地 GoAccess 进行即时分析)

🛠️ 这个方案解决了什么?

  1. Server 端零洁癖 (Zero Dependencies) 因为是用 APE 封装,不用装 Python 、不用装 Node ,甚至不用管 OS 版本( Alpine/Debian/CentOS/x86/ARM 通吃)。直接 curl 下来就能跑,跑完就删,不弄脏环境。

  2. 即时且节省空间 资料不落地。流程变成:Remote Stream -> Local Pipe ,流量走完就结束了,不会占用本地硬碟。当然你想存下来也可以,连结丢进浏览器下载走的是 WebRTC P2P ,速度也是非常快。

  3. 穿透内网 如果你的 Server 在层层 NAT 后面,或者你只是想把 Log 分享给没有 SSH 权限的同事看,这个连结丢给他,浏览器打开也能收(会走 P2P 传输)。

💻 怎么做到的?

1. 远端 (Producer): 把 Log 吐出来,Pipe 给 ffl:

# 下载 (APE 格式,单一 binary)
curl -fL [https://fastfilelink.com/ffl.com]( https://fastfilelink.com/ffl.com) -o ffl.com && chmod +x ffl.com

# 把档案变连结 (资料夹也可)
./ffl.com /var/log/nginx/access.log

2. 本地 (Consumer): 拿到连结后,用 curl 接住并喂给 GoAccess:

curl -sN [LINK] | goaccess - --log-format=COMBINED

🔗 专案地址

如果你也是 CLI / APE 爱好者,欢迎来 GitHub 看看,也欢迎 Star 或 PR ! 👉 https://github.com/nuwainfo/ffl

目前正在尝试更多 stdin 的玩法(例如 mysqldump 异地备份),有什么脑洞大开的用法也欢迎交流!

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: bear330
发布: 2026-01-17
点赞: 0
回复: 0