1 方案特色
项目地址:https://github.com/fscarmen2/Argo-Nezha-Service-Container
适用范围更广 --- 只要能连通网络,就能安装哪吒服务端,如 Nas 虚拟机 , Container PaaS 等
Argo 隧道突破需要公网入口的限制 --- 传统的哪吒需要有两个公网端口,一个用于面板的访问,另一个用于客户端上报数据,本项目借用 Cloudflare Argo 隧道,使用内网穿透的办法
IPv4 / v6 具备更高的灵活性 --- 传统哪吒需要处理服务端和客户端的 IPv4/v6 兼容性问题,还需要通过 warp 等工具来解决不对应的情况。然而,本项目可以完全不需要考虑这些问题,可以任意对接,更加方便和简便
一条 Argo 隧道分流多个域名和协议 --- 建立一条内网穿透的 Argo 隧道,即可分流三个域名(hostname)和协议(protocal),分别用于面板的访问(http),客户端上报数据(tcp)和 ssh(可选)
GrpcWebProxy 反向代理的 gRPC 数据端口 --- 配上证书做 tls 终结,然后 Argo 的隧道配置用 https 服务指向这个反向代理,启用 http2 回源,grpc(nezha)->GrpcWebProxy->h2(argo)->cf cdn edge->agent
每天自动备份 --- 北京时间每天 4 时 0 分自动备份整个哪吒面板文件夹到指定的 github 私库,包括面板主题,面板设置,探针数据和隧道信息,备份保留近 5 天数据;鉴于内容十分重要,必须要放在私库
每天自动更新面板 -- 北京时间每天 4 时 0 分自动检测最新的官方面板版本,有升级时自动更新
手/自一体还原备份 --- 每分钟检测一次在线还原文件的内容,遇到有更新立刻还原
默认内置本机探针 --- 能很方便的监控自身服务器信息
数据更安全 --- Argo 隧道使用 TLS 加密通信,可以将应用程序流量安全地传输到 Cloudflare 网络,提高了应用程序的安全性和可靠性。此外,Argo Tunnel 也可以防止 IP 泄露和 DDoS 攻击等网络威胁
2 环境准备
💡 前提条件:域名需托管于 CloudFlare DNS 解析服务
2.1 打开 CloudFlare gRPC 转发
2.2 获取 GitHub 应用认证授权
访问:https://github.com/settings/applications/new
2.3 获取 GitHub 仓库访问授权
访问获取 github 的 PAT (Personal Access Token): https://github.com/settings/tokens/new
2.4 创建 GitHub 探针面板备份仓库
访问创建用于备份的私有仓库: https://github.com/new
2.5 获取 Argo 认证 Json
访问 Cloudflare Json 生成网获取 Argo 隧道 json 信息: https://fscarmen.cloudflare.now.cc
3 环境部署
访问 Koyeb ,开始部署应用。
3.1 环境变量
3.2 部署应用
稍等一会即可部署成功:
4 访问应用
4.1 前台访问
使用探针面板域名可直接访问到面板:https://probe.astralor.com/
4.2 后台访问
点击右上角登陆,使用 GitHub 账号登陆后台:
5 常见问题
5.1 运行中出现 Deployment failed
如果运行过程中,突然某天收到邮件提示部署失败,则大概率是项目:fscarmen2/Argo-Nezha-Service-Container 出现了不可兼容的更新,如:环境变量名称改变。
需要再次访问项目地址:fscarmen2/Argo-Nezha-Service-Container
查看环境变量说明是否出现了不一致,并调整 koyeb 部署。
问题原因:该项目会每天自动更新面板,北京时间每天 4 时 0 分自动检测最新的官方面板版本,有升级时自动更新,如果环境变量出现改变,则面板将部署失败。