nezhahq.github.io/case/case5.html

60 lines
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Nezha server over Argo tunnel | 哪吒监控</title>
<meta name="description" content="哪吒监控是一个轻量化的运维工具">
<link rel="stylesheet" href="/assets/style.0b9f658b.css">
<link rel="modulepreload" href="/assets/chunks/AlgoliaSearchBox.98396bc7.js">
<link rel="modulepreload" href="/assets/app.3817bf4e.js">
<link rel="modulepreload" href="/assets/case_case5.md.ed51855f.lean.js">
<meta name="twitter:title" content="Nezha server over Argo tunnel | 哪吒监控">
<meta property="og:title" content="Nezha server over Argo tunnel | 哪吒监控">
</head>
<body>
<div id="app"><!--[--><div class="theme"><header class="nav-bar" data-v-675d8756><div class="sidebar-button" data-v-675d8756><svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class></path></svg></div><a class="nav-bar-title" href="/" aria-label="哪吒监控, back to home" data-v-675d8756 data-v-cc01ef16><!----> 哪吒监控</a><div class="flex-grow" data-v-675d8756></div><div class="nav" data-v-675d8756><nav class="nav-links" data-v-675d8756 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/case/case5.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/case/case5.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav></div><!--[--><!--[--><div class="algolia-search-box" id="docsearch"></div><!--]--><!--]--></header><aside class="sidebar" data-v-83e92a68><nav class="nav-links nav" data-v-83e92a68 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/case/case5.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/case/case5.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav><!--[--><!--]--><ul class="sidebar-links" data-v-83e92a68><!--[--><li class="sidebar-link"><p class="sidebar-link-item">社区项目</p><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="/case/case1">1. 搭建哪吒 Telegram 机器人</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/case/case2">2. 使用Siri语音运行快捷指令查询服务器状态</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/case/case3">3. 自建多用户多语言 Telegram 服务器状态查询机器人</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/case/case4">4. Fake-agent监控数据作弊器</a><!----></li></ul></li><!--]--></ul><!--[--><!--]--></aside><div class="sidebar-mask"></div><main class="page" data-v-7eddb2c4><div class="container" data-v-7eddb2c4><!--[--><!--]--><div style="position:relative;" class="content" data-v-7eddb2c4><div><h1 id="nezha-server-over-argo-tunnel" tabindex="-1">Nezha server over Argo tunnel <a class="header-anchor" href="#nezha-server-over-argo-tunnel" aria-hidden="true">#</a></h1><p>使用 Argo 隧道的哪吒服务端 贡献者:</p><ul><li><a href="https://github.com/fscarmen2" target="_blank" rel="noopener noreferrer">fscarmen</a></li></ul><p>项目地址:<a href="https://github.com/fscarmen2/Argo-Nezha-Service-Container" target="_blank" rel="noopener noreferrer">Argo-Nezha-Service-Container</a></p><hr><h1 id="目录" tabindex="-1">目录 <a class="header-anchor" href="#目录" aria-hidden="true">#</a></h1><ul><li><a href="./case5.html#项目特点">项目特点</a></li><li><a href="./case5.html#准备需要用的变量">准备需要用的变量</a></li><li><a href="./case5.html#PaaS-部署实例">PaaS 部署实例</a></li><li><a href="./case5.html#VPS-部署实例">VPS 部署实例</a></li><li><a href="./case5.html#客户端接入">客户端接入</a></li><li><a href="./case5.html#ssh-接入">SSH 接入</a></li><li><a href="./case5.html#鸣谢下列作者的文章和项目">鸣谢下列作者的文章和项目</a></li><li><a href="./case5.html#免责声明">免责声明</a></li></ul><hr><h2 id="项目特点" tabindex="-1">项目特点: <a class="header-anchor" href="#项目特点" aria-hidden="true">#</a></h2><ul><li>适用范围更广 --- 只要能连通网络,就能安装哪吒服务端,如 Nas 虚拟机 , Container PaaS 等</li><li>Argo 隧道突破需要公网入口的限制 --- 传统的哪吒需要有两个,一个用于面板的访问,另一个用于客户端上报数据,本项目借用 Cloudflare Argo 隧道,使用内网穿透的办法</li><li>IPv4 / v6 具备更高的灵活性 --- 传统哪吒需要处理服务端和客户端的 IPv4/v6 兼容性问题,还需要通过 warp 等工具来解决不对应的情况。然而,本项目可以完全不需要考虑这些问题,可以任意对接,更加方便和简便</li><li>一条 Argo 隧道分流多个域名和协议 --- 建立一条内网穿透的 Argo 隧道,即可分流三个域名(hostname)和协议(protocal),分别用于面板的访问(http),客户端上报数据(tcp)和 ssh可选</li><li>Nginx 反向代理的 gRPC 数据端口 --- 配上证书做 tls 终结,然后 Argo 的隧道配置用 https 服务指向这个反向代理启用http2回源grpc(nezha)-&gt;h2(nginx)-&gt;argo-&gt;cf cdn edge-&gt;agent</li><li>每天自动备份 --- 每天 0 时 0 分自动备份整个哪吒面板文件夹到指定的 github 私库,包括面板主题,面板设置,探针数据和隧道信息,备份保留近 30 天数据;鉴于内容十分重要,必须要放在私库</li><li>数据更安全 --- Argo 隧道使用TLS加密通信可以将应用程序流量安全地传输到 Cloudflare 网络提高了应用程序的安全性和可靠性。此外Argo Tunnel也可以防止IP泄露和DDoS攻击等网络威胁</li></ul><img width="1298" alt="image" src="https://user-images.githubusercontent.com/92626977/233363248-e2caa687-b513-448c-a92f-c870db0e4236.png"><h2 id="准备需要用的变量" tabindex="-1">准备需要用的变量 <a class="header-anchor" href="#准备需要用的变量" aria-hidden="true">#</a></h2><ul><li>通过 Cloudflare Json 生成网轻松获取 Argo 隧道信息: <a href="https://fscarmen.cloudflare.now.cc" target="_blank" rel="noopener noreferrer">https://fscarmen.cloudflare.now.cc</a></li></ul><img width="1040" alt="image" src="https://user-images.githubusercontent.com/92626977/231084930-02e3c2de-c52b-420d-b39c-9f135d040b3b.png"><ul><li>到 Cloudflare 官方,在相应的域名 <code>DNS</code> 记录里加上客户端上报数据(tcp)和 ssh可选的域名打开橙色云启用 CDN</li></ul><img width="1666" alt="image" src="https://user-images.githubusercontent.com/92626977/231087110-85ddab87-076b-45c9-97d1-c8b051dcb5b0.png"><img width="1627" alt="image" src="https://user-images.githubusercontent.com/92626977/231087714-e5a45eb9-bc47-4c38-8f5b-a4a9fb492d0d.png"><ul><li>到 Cloudflare 官方,选择使用的域名,打开 <code>网络</code> 选项将 <code>gRPC</code> 开关打开</li></ul><img width="1590" alt="image" src="https://user-images.githubusercontent.com/92626977/233138703-faab8596-a64a-40bb-afe6-52711489fbcf.png"><ul><li>获取 github 认证授权: <a href="https://github.com/settings/applications/new" target="_blank" rel="noopener noreferrer">https://github.com/settings/applications/new</a></li></ul><p>面板域名加上 <code>https://</code> 开头,回调地址再加上 <code>/oauth2/callback</code> 结尾</p><img width="916" alt="image" src="https://user-images.githubusercontent.com/92626977/231099071-b6676f2f-6c7b-4e2f-8411-c134143cab24.png"><img width="1122" alt="image" src="https://user-images.githubusercontent.com/92626977/231086319-1b625dc6-713b-4a62-80b1-cc5b2b7ef3ca.png"><ul><li>获取 github 的 PAT (Personal Access Token): <a href="https://github.com/settings/tokens/new" target="_blank" rel="noopener noreferrer">https://github.com/settings/tokens/new</a></li></ul><img width="1226" alt="image" src="https://user-images.githubusercontent.com/92626977/233346036-60819f98-c89a-4cef-b134-0d47c5cc333d.png"><img width="1148" alt="image" src="https://user-images.githubusercontent.com/92626977/233346508-273c422e-05c3-4c91-9fae-438202364787.png"><ul><li>创建 github 用于备份的私库: <a href="https://github.com/new" target="_blank" rel="noopener noreferrer">https://github.com/new</a></li></ul><img width="814" alt="image" src="https://user-images.githubusercontent.com/92626977/233345537-c5b9dc27-35c4-407b-8809-b0ef68d9ad55.png"><h2 id="paas-部署实例" tabindex="-1">PaaS 部署实例 <a class="header-anchor" href="#paas-部署实例" aria-hidden="true">#</a></h2><p>镜像 <code>fscarmen/argo-nezha:latest</code> 支持 amd64 和 arm64 架构</p><p>用到的变量</p><table><thead><tr><th>变量名</th><th>是否必须</th><th>备注</th></tr></thead><tbody><tr><td>GH_USER</td><td></td><td>github 的用户名,用于面板管理授权</td></tr><tr><td>GH_CLIENTID</td><td></td><td>在 github 上申请</td></tr><tr><td>GH_CLIENTSECRET</td><td></td><td>在 github 上申请</td></tr><tr><td>GH_REPO</td><td></td><td>在 github 上备份哪吒服务端数据库文件的库</td></tr><tr><td>GH_EMAIL</td><td></td><td>github 的邮箱,用于备份的 git 推送到远程库</td></tr><tr><td>GH_PAT</td><td></td><td>github 的 PAT</td></tr><tr><td>ARGO_JSON</td><td></td><td><a href="https://fscarmen.cloudflare.now.cc" target="_blank" rel="noopener noreferrer">https://fscarmen.cloudflare.now.cc</a> 获取的 Argo Json</td></tr><tr><td>DATA_DOMAIN</td><td></td><td>客户端与服务端的通信 argo 域名</td></tr><tr><td>WEB_DOMAIN</td><td></td><td>面板 argo 域名</td></tr><tr><td>SSH_DOMAIN</td><td></td><td>ssh 用的 argo 域名</td></tr><tr><td>SSH_PASSWORD</td><td></td><td>ssh 的密码,只有在设置 SSH_JSON 后才生效,默认值 password</td></tr></tbody></table><p>1.Koyeb</p><img width="927" alt="image" src="https://user-images.githubusercontent.com/92626977/231088411-fbac3e6e-a8a6-4661-bcf8-7c777aa8ffeb.png"><img width="750" alt="image" src="https://user-images.githubusercontent.com/92626977/231088973-7134aefd-4c80-4559-8e40-17c3be11d27d.png"><img width="754" alt="image" src="https://user-images.githubusercontent.com/92626977/233336491-6bb801af-257d-467d-aaf0-6dcb68a531ac.png"><img width="1187" alt="image" src="https://user-images.githubusercontent.com/92626977/231092893-c8f017a2-ee0e-4e28-bee3-7343158f0fa7.png"><img width="500" alt="image" src="https://user-images.githubusercontent.com/92626977/231094144-df6715bc-c611-47ce-a529-03c43f38102e.png"><h2 id="vps-部署实例" tabindex="-1">VPS 部署实例 <a class="header-anchor" href="#vps-部署实例" aria-hidden="true">#</a></h2><ul><li>注意: ARGO_JSON= 后面需要有单引号,不能去掉</li><li>如果 VPS 是 IPv6 only 的,请先安装 WARP IPv4 或者双栈: <a href="https://github.com/fscarmen/warp" target="_blank" rel="noopener noreferrer">https://github.com/fscarmen/warp</a></li></ul><h3 id="docker-部署" tabindex="-1">docker 部署 <a class="header-anchor" href="#docker-部署" aria-hidden="true">#</a></h3><div class="language-"><pre><code>docker run -dit \
--name nezha_dashboard \
--restart always \
-v ./dashboard:/dashboard \
-e GH_USER=&lt;填 github 用户名&gt; \
-e GH_EMAIL=&lt;填 github 邮箱&gt; \
-e GH_PAT=&lt;填获取的&gt; \
-e GH_REPO=&lt;填自定义的&gt; \
-e GH_CLIENTID=&lt;填获取的&gt; \
-e GH_CLIENTSECRET=&lt;填获取的&gt; \
-e ARGO_JSON=&#39;&lt;填获取的&gt;&#39; \
-e WEB_DOMAIN=&lt;填自定义的&gt; \
-e DATA_DOMAIN=&lt;填自定义的&gt; \
-e SSH_DOMAIN=&lt;填自定义的&gt; \
-e SSH_PASSWORD=&lt;填自定义的&gt; \
fscarmen/argo-nezha
</code></pre></div><h3 id="docker-compose-部署" tabindex="-1">docker-compose 部署 <a class="header-anchor" href="#docker-compose-部署" aria-hidden="true">#</a></h3><div class="language-"><pre><code>version: &#39;3.8&#39;
services:
argo-nezha:
image: fscarmen/argo-nezha
container_name: nezha_dashboard
restart: always
volumes:
- ./dashboard:/dashboard
environment:
- GH_USER=&lt;填 github 用户名&gt;
- GH_EMAIL=&lt;&lt;填 github 邮箱&gt;
- GH_PAT=&lt;填获取的&gt;
- GH_REPO=&lt;填自定义的&gt;
- GH_CLIENTID=&lt;填获取的&gt;
- GH_CLIENTSECRET=&lt;填获取的&gt;
- ARGO_JSON=&#39;&lt;填获取的&gt;&#39;
- WEB_DOMAIN=&lt;填自定义的&gt;
- DATA_DOMAIN=&lt;填自定义的&gt;
- SSH_DOMAIN=&lt;填自定义的&gt;
- SSH_PASSWORD=&lt;填自定义的&gt;
</code></pre></div><h2 id="客户端接入" tabindex="-1">客户端接入 <a class="header-anchor" href="#客户端接入" aria-hidden="true">#</a></h2><p>通过gRPC传输无需额外配置。使用面板给到的安装方式举例</p><div class="language-"><pre><code>curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh &amp;&amp; chmod +x nezha.sh &amp;&amp; sudo ./nezha.sh install_agent data.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls
</code></pre></div><h2 id="ssh-接入" tabindex="-1">SSH 接入 <a class="header-anchor" href="#ssh-接入" aria-hidden="true">#</a></h2><ul><li>以 macOS + WindTerm 为例,其他根据使用的 SSH 工具,结合官方官方说明文档: <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user" target="_blank" rel="noopener noreferrer">https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user</a></li><li>官方 cloudflared 下载: <a href="https://github.com/cloudflare/cloudflared/releases" target="_blank" rel="noopener noreferrer">https://github.com/cloudflare/cloudflared/releases</a></li><li>以下输入命令举例</li></ul><div class="language-"><pre><code>&lt;file path&gt;/cloudflared access ssh --hostname ssh.seales.nom.za
</code></pre></div><img width="834" alt="image" src="https://user-images.githubusercontent.com/92626977/233349393-cec79e11-346e-4a57-8357-8d153d75ee40.png"><img width="830" alt="image" src="https://user-images.githubusercontent.com/92626977/233350601-73de67f9-19ca-451f-b395-8721abbb3342.png"><img width="955" alt="image" src="https://user-images.githubusercontent.com/92626977/233350802-754624e0-8456-4353-8577-1f5385fb8723.png"><h2 id="" tabindex="-1"><a class="header-anchor" href="#" aria-hidden="true">#</a></h2><h2 id="鸣谢下列作者的文章和项目" tabindex="-1">鸣谢下列作者的文章和项目: <a class="header-anchor" href="#鸣谢下列作者的文章和项目" aria-hidden="true">#</a></h2><ul><li>热心的朝阳群众 Robin讨论哪吒服务端与客户端的关系从而诞生了此项目</li><li>哪吒官网: <a href="https://nezha.wiki/" target="_blank" rel="noopener noreferrer">https://nezha.wiki/</a> , TG 群: <a href="https://t.me/nezhamonitoring" target="_blank" rel="noopener noreferrer">https://t.me/nezhamonitoring</a></li><li>共穷国际老中医: <a href="http://solitud.es/" target="_blank" rel="noopener noreferrer">http://solitud.es/</a></li><li>Akkia&#39;s Blog: <a href="https://blog.akkia.moe/" target="_blank" rel="noopener noreferrer">https://blog.akkia.moe/</a></li><li>用 Cloudflare Tunnel 进行内网穿透: <a href="https://blog.outv.im/2021/cloudflared-tunnel/" target="_blank" rel="noopener noreferrer">https://blog.outv.im/2021/cloudflared-tunnel/</a></li></ul><h2 id="免责声明" tabindex="-1">免责声明: <a class="header-anchor" href="#免责声明" aria-hidden="true">#</a></h2><ul><li>本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 文字、数据及图片均有所属版权, 如转载须注明来源。</li><li>使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。</li></ul></div></div><footer class="page-footer" data-v-7eddb2c4 data-v-07c132fc><div class="edit" data-v-07c132fc><div class="edit-link" data-v-07c132fc data-v-1ed99556><a class="link" href="https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/case/case5.md" target="_blank" rel="noopener noreferrer" data-v-1ed99556>在GitHub中编辑 <svg class="icon outbound icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-1ed99556><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div><div class="updated" data-v-07c132fc><p class="last-updated" data-v-07c132fc data-v-abce3432><span class="prefix" data-v-abce3432>上次更新:</span><span class="datetime" data-v-abce3432></span></p></div></footer><!----><!--[--><!--]--></div></main></div><!----><!--]--></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"ab041901\",\"case_case2.md\":\"aa65704d\",\"case_case3.md\":\"00ed2a5b\",\"case_case4.md\":\"7efb90b0\",\"case_case5.md\":\"ed51855f\",\"case_index.md\":\"0e468c21\",\"developer_index.md\":\"426207c3\",\"developer_l10n.md\":\"7a254502\",\"developer_theme.md\":\"7a2d8b90\",\"en_us_case_case1.md\":\"9dedef12\",\"en_us_case_case2.md\":\"b14e2e3b\",\"en_us_case_case3.md\":\"5d780c14\",\"en_us_case_case4.md\":\"85517e0c\",\"en_us_case_index.md\":\"6a8e5490\",\"en_us_developer_index.md\":\"9d8fad63\",\"en_us_developer_l10n.md\":\"6cb3d58b\",\"en_us_developer_theme.md\":\"33df1832\",\"en_us_guide_agent.md\":\"58fef874\",\"en_us_guide_agentq.md\":\"6fd0ad3a\",\"en_us_guide_api.md\":\"1a609500\",\"en_us_guide_dashboard.md\":\"e3929380\",\"en_us_guide_dashboardq.md\":\"69fe58cd\",\"en_us_guide_loginq.md\":\"cb7b70de\",\"en_us_guide_notifications.md\":\"b1cfb902\",\"en_us_guide_q2.md\":\"1fede52d\",\"en_us_guide_q3.md\":\"9c599d6b\",\"en_us_guide_q4.md\":\"74c83acc\",\"en_us_guide_q5.md\":\"023197e3\",\"en_us_guide_q6.md\":\"e76b06c2\",\"en_us_guide_q7.md\":\"fbaf7d36\",\"en_us_guide_servers.md\":\"907abee0\",\"en_us_guide_services.md\":\"9aead7e8\",\"en_us_guide_settings.md\":\"2c039877\",\"en_us_guide_tasks.md\":\"7db037a5\",\"en_us_index.md\":\"11305dae\",\"guide_agent.md\":\"59488614\",\"guide_agentq.md\":\"a75bbe9c\",\"guide_api.md\":\"13d6fa7e\",\"guide_dashboard.md\":\"81760078\",\"guide_dashboardq.md\":\"7139c1fb\",\"guide_loginq.md\":\"f3f9f895\",\"guide_notifications.md\":\"401936ef\",\"guide_q1.md\":\"cfb89f63\",\"guide_q2.md\":\"1e5d3a9b\",\"guide_q3.md\":\"2beb91cb\",\"guide_q4.md\":\"200041ae\",\"guide_q5.md\":\"4e736eea\",\"guide_q6.md\":\"b699a0ae\",\"guide_q7.md\":\"764a1f90\",\"guide_servers.md\":\"935137e3\",\"guide_services.md\":\"7b6688ec\",\"guide_settings.md\":\"9d745df6\",\"guide_tasks.md\":\"4870a789\",\"index.md\":\"12d2b26b\"}")</script>
<script type="module" async src="/assets/app.3817bf4e.js"></script>
</body>
</html>