68 lines
54 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Nezha server over Argo tunnel | Nezha Monitoring</title>
<meta name="description" content="Nezha Monitoring is a lightweight O&M tool">
<link rel="preload stylesheet" href="/assets/style.ac216bba.css" as="style">
<script type="module" src="/assets/app.52883806.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.1625126e.js">
<link rel="modulepreload" href="/assets/chunks/theme.776be62d.js">
<link rel="modulepreload" href="/assets/en_US_case_case5.md.0c6c8b99.lean.js">
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b8b11faa></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b8b11faa> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7683ced7><div class="container" data-v-7683ced7><div class="title" data-v-7683ced7><div class="VPNavBarTitle has-sidebar" data-v-7683ced7 data-v-4d981103><a class="title" href="/en_US/" data-v-4d981103><!--[--><!--]--><!----><!--[-->Nezha Monitoring<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7683ced7><div class="curtain" data-v-7683ced7></div><div class="content-body" data-v-7683ced7><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:&#39;Meta&#39;;" data-v-7683ced7><!--[--><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7683ced7 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en_US/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->User Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/en_US/case/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Community Projects<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en_US/developer/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Development Manual<!--]--><!----></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-7683ced7 data-v-74abcbb9 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-764effdf><span class="text" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="option-icon" data-v-764effdf><path d="M0 0h24v24H0z" fill="none"></path><path d=" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z " class="css-c4d79v"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><div class="items" data-v-74abcbb9><p class="title" data-v-74abcbb9>English</p><!--[--><div class="VPMenuLink" data-v-74abcbb9 data-v-2f2cfafc><a class="VPLink link" href="/case/case5.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->简体中文<!--]--><!----></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-7683ced7 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-82b282f1 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-82b282f1><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-82b282f1><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7683ced7 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink" href="https://github.com/nezhahq/nezhahq.github.io" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-36371990><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7683ced7 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><div class="group translations" data-v-40855f84><p class="trans-title" data-v-40855f84>English</p><!--[--><div class="VPMenuLink" data-v-40855f84 data-v-2f2cfafc><a class="VPLink link" href="/case/case5.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->简体中文<!--]--><!----></a></div><!--]--></div><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-82b282f1 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-82b282f1><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-82b282f1><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-7bc22406><!--[--><a class="VPSocialLink" href="https://github.com/nezhahq/nezhahq.github.io" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-36371990><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7683ced7 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-9074c407><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-9074c407><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-9074c407><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-9074c407>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-9074c407 data-v-687955bc><button data-v-687955bc>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Community Projects</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/en_US/case/case1.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>1. Build your own Telegram bot to query server information</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/en_US/case/case2.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>2. Use Siri to run shortcut to check server status</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/en_US/case/case3.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>3. Self-hosted, multi-user, multi-lingual server status query Telegram bot</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/en_US/case/case4.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>4. Fake-agent, monitoring data cheater</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/en_US/case/case5.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>5. Nezha server over Argo tunnel</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _en_US_case_case5" data-v-c4b0d3cf><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-label="Permalink to &quot;Nezha server over Argo tunnel&quot;"></a></h1><p>Contributors:</p><ul><li><a href="https://github.com/fscarmen2" target="_blank" rel="noreferrer">fscarmen</a></li></ul><p>GitHub project: <a href="https://github.com/fscarmen2/Argo-Nezha-Service-Container" target="_blank" rel="noreferrer">Argo-Nezha-Service-Container</a></p><p>Mirror backup (not live update): <a href="https://github.com/nezhahq/Argo-Nezha-Service-Container" target="_blank" rel="noreferrer">Argo-Nezha-Service-Container</a></p><hr><h1 id="catalog" tabindex="-1">Catalog <a class="header-anchor" href="#catalog" aria-label="Permalink to &quot;Catalog&quot;"></a></h1><ul><li><a href="./case5.html#project-features">Project Features</a></li><li><a href="./case5.html#prepare-variables-to-be-used">Variables to be used</a></li><li><a href="./case5.html#paas-deployment-example">PaaS Deployment Example</a></li><li><a href="./case5.html#vps-deployment-example">VPS Deployment Example</a></li><li><a href="./case5.html#client-access">Client Access</a></li><li><a href="./case5.html#ssh-access">SSH Access</a></li><li><a href="./case5.html#automatically-restore-backups">Auto Restore Backup</a></li><li><a href="./case5.html#manually-restore-the-backup">Manual Restore Backup</a></li><li><a href="./case5.html#migrating-data">Migrating data</a></li><li><a href="./case5.html#main-catalog-files-and-descriptions">Main Directory Files and Descriptions</a></li><li><a href="./case5.html#acknowledgements-for-articles-and-projects-by">Acknowledgment of articles and projects by the following authors</a></li><li><a href="./case5.html#disclaimer">Disclaimer</a></li></ul><hr><h2 id="project-features" tabindex="-1">Project Features. <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features.&quot;"></a></h2><ul><li>Wider scope of application --- As long as there is a network connection, Nezha server can be installed, such as Nas Virtual Machine, Container PaaS, etc.</li><li>Argo tunnel breaks through the restriction of requiring a public network portal --- The traditional Nezha requires two public network ports, one for panel visiting and the other for client reporting, this project uses Cloudflare Argo tunnels and uses intranet tunneling.</li><li>IPv4 / v6 with higher flexibility --- The traditional Nezha needs to deal with IPv4/v6 compatibility between server and client, and also needs to resolve mismatches through tools such as warp. However, this project does not need to consider these issues at all, and can be docked arbitrarily, which is much more convenient and easy!</li><li>One Argo tunnel for multiple domains and protocols --- Create an intranet-penetrating Argo tunnel for three domains (hostname) and protocols, which can be used for panel access (http), client reporting (tcp) and ssh (optional).</li><li>Nginx reverse proxy gRPC data port --- with a certificate for tls termination, then Argo&#39;s tunnel configuration with https service pointing to this reverse proxy, enable http2 back to the source, grpc(nezha)-&gt;h2(nginx)-&gt;argo-&gt;cf cdn edge-&gt;agent</li><li>Daily automatic backup --- every day at 04:00 BST, the entire Nezha panel folder is automatically backed up to a designated private github repository, including panel themes, panel settings, probe data and tunnel information, the backup retains nearly 5 days of data; the content is so important that it must be placed in the private repository.</li><li>Manual/automatic restore backup --- check the content of online restore file once a minute, and restore immediately when there is any update.</li><li>Default built-in local probes --- can easily monitor their own server information</li><li>More secure data --- Argo Tunnel uses TLS encrypted communication to securely transmit application traffic to the Cloudflare network, improving application security and reliability. In addition, Argo Tunnel protects against network threats such as IP leaks and DDoS attacks.</li></ul><img width="1298" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/6535a060-2138-4c72-9ffa-1175dc6f5c25.png"><h2 id="prepare-variables-to-be-used" tabindex="-1">Prepare variables to be used <a class="header-anchor" href="#prepare-variables-to-be-used" aria-label="Permalink to &quot;Prepare variables to be used&quot;"></a></h2><ul><li>Easily get Argo tunnel information through Cloudflare Json generation network: <a href="https://fscarmen.cloudflare.now.cc" target="_blank" rel="noreferrer">https://fscarmen.cloudflare.now.cc</a></li></ul><img width="772" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/98f2c80c-8d45-4c70-b46e-70f552e0b572"><ul><li>Visit Cloudflare website, add the domain name of the client reporting data (tcp) and ssh (optional) in the <code>DNS</code> record of the corresponding domain, and turn on Orange Cloud to enable CDN.</li></ul><img width="1629" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/39ecc388-e66b-44a2-a339-c80e9d7ed8e2"><img width="1632" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/1ad2042e-46e6-41c3-9c16-14dc8699ee72"><ul><li>Visit the Cloudflare website, select the domain name you want to use, and turn on the <code>network</code> option to turn the <code>gRPC</code> switch on.</li></ul><img width="1605" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/533133dc-ab46-43ff-8eec-0b57d776e4a9"><ul><li>Get github authentication license: <a href="https://github.com/settings/applications/new" target="_blank" rel="noreferrer">https://github.com/settings/applications/new</a></li></ul><p>Add <code>https://</code> to the beginning of the panel&#39;s domain name and <code>/oauth2/callback</code> to the end of the callback address.</p><img width="1031" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/b3218cca-171d-4869-8ff9-7a569d01234a"><img width="1023" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/c8e6370d-4307-4b88-b490-ce960b694541"><ul><li>Get a PAT (Personal Access Token) for github: <a href="https://github.com/settings/tokens/new" target="_blank" rel="noreferrer">https://github.com/settings/tokens/new</a></li></ul><img width="1368" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/96b09a43-910c-41c8-b407-1090d81ce728"><img width="1542" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/b2bf7d3e-2370-4e12-b01d-7cfb9f2d3115"><ul><li>Create a private github repository for backups: <a href="https://github.com/new" target="_blank" rel="noreferrer">https://github.com/new</a></li></ul><img width="716" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/499fb58d-9dc7-4b3f-84d7-d709d679ec80"><h2 id="paas-deployment-example" tabindex="-1">PaaS Deployment Example <a class="header-anchor" href="#paas-deployment-example" aria-label="Permalink to &quot;PaaS Deployment Example&quot;"></a></h2><p>Image <code>fscarmen/argo-nezha:latest</code>, supports amd64 and arm64 architectures.</p><p>Variables used</p><table><thead><tr><th>Variable Name</th><th>Required</th><th>Remarks</th></tr></thead><tbody><tr><td>GH_USER</td><td>Yes</td><td>github username for panel admin authorization</td></tr><tr><td>GH_CLIENTID</td><td>yes</td><td>apply on github</td></tr><tr><td>GH_CLIENTSECRET</td><td>yes</td><td>apply on github</td></tr><tr><td>GH_BACKUP_USER</td><td>No</td><td>The github username for backing up Nezha&#39;s server-side database on github, if not filled in, it is the same as the account GH_USER for panel management authorization</td></tr><tr><td>GH_REPO</td><td>No</td><td>The github repository for backing up Nezha&#39;s server-side database files on github</td></tr><tr><td>GH_EMAIL</td><td>No</td><td>github&#39;s mailbox for git push backups to remote repositories</td></tr><tr><td>GH_PAT</td><td>No</td><td>github&#39;s PAT</td></tr><tr><td>ARGO_JSON</td><td>Yes</td><td>Argo Json from <a href="https://fscarmen.cloudflare.now.cc" target="_blank" rel="noreferrer">https://fscarmen.cloudflare.now.cc</a></td></tr><tr><td>DATA_DOMAIN</td><td>Yes</td><td>Client-server communication argo domain name</td></tr><tr><td>WEB_DOMAIN</td><td>Yes</td><td>Panel argo domain</td></tr><tr><td>SSH_DOMAIN</td><td>No</td><td>ssh for argo domain</td></tr><tr><td>SSH_PASSWORD</td><td>no</td><td>password for ssh, only works after setting SSH_JSON, default password</td></tr></tbody></table><p>Koyeb</p><p><a href="https://app.koyeb.com/deploy?type=docker&amp;name=nezha&amp;ports=80;http;/&amp;env%5BGH_USER%5D=&amp;env%5BGH_CLIENTID%5D=&amp;env%5BGH_CLIENTSECRET%5D=&amp;env%5BGH_REPO%5D=&amp;env%5BGH_EMAIL%5D=&amp;env%5BGH_PAT%5D=&amp;env%5BARGO_JSON%5D=&amp;env%5BDATA_DOMAIN%5D=&amp;env%5BWEB_DOMAIN%5D=&amp;env%5BSSH_DOMAIN%5D=&amp;env%5BSSH_PASSWORD%5D=&amp;image=docker.io/fscarmen/argo-nezha" target="_blank" rel="noreferrer"><img src="https://www.koyeb.com/static/images/deploy/button.svg" alt="Deploy to Koyeb"></a></p><img width="927" alt="image" src="https://user-images.githubusercontent.com/92626977/231088411-fbac3e6e-a8a6-4661-bcf8-7c777aa8ffeb.png"><img width="1011" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/61fad972-1be9-4e8d-829a-8faea0c8ed64"><img width="763" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/ca294962-f10e-4f4c-b69c-9e95d3d25cac"><img width="1214" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/ddabdf3a-ca63-4523-b839-62c4d4c0caf2"><img width="881" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/e623f92d-878f-4eb8-9dfe-55b59770ba2f"><h2 id="vps-deployment-example" tabindex="-1">VPS Deployment Example <a class="header-anchor" href="#vps-deployment-example" aria-label="Permalink to &quot;VPS Deployment Example&quot;"></a></h2><ul><li>Note: ARGO_JSON= must be followed by single quotes, which cannot be removed.</li><li>If the VPS is IPv6 only, please install WARP IPv4 or dual-stack first: <a href="https://github.com/fscarmen/warp" target="_blank" rel="noreferrer">https://github.com/fscarmen/warp</a></li><li>The backup directory is the dashboard folder in the current path.</li></ul><h3 id="docker-deployment" tabindex="-1">docker deployment <a class="header-anchor" href="#docker-deployment" aria-label="Permalink to &quot;docker deployment&quot;"></a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker run -dit \</span></span>
<span class="line"><span style="color:#A6ACCD;"> --name nezha_dashboard \</span></span>
<span class="line"><span style="color:#A6ACCD;"> --restart always \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_USER=&lt;fill in github username&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_EMAIL=&lt;fill in github email&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_PAT=&lt;fill in the obtained&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_REPO=&lt;fill in customized&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_CLIENTID=&lt;fill in acquired&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_CLIENTSECRET=&lt;fill in acquired&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e ARGO_JSON=&#39;&lt;fill in acquired&gt;&#39; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e WEB_DOMAIN=&lt;fill in customized&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e DATA_DOMAIN=&lt;fill in customized&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e SSH_DOMAIN=&lt;fill in customized&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e SSH_PASSWORD=&lt;insert customized&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> fscarmen/argo-nezha</span></span></code></pre></div><h3 id="docker-compose-deployment" tabindex="-1">docker-compose deployment <a class="header-anchor" href="#docker-compose-deployment" aria-label="Permalink to &quot;docker-compose deployment&quot;"></a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">version: &#39;3.8&#39;</span></span>
<span class="line"><span style="color:#A6ACCD;">services.</span></span>
<span class="line"><span style="color:#A6ACCD;"> argo-nezha.</span></span>
<span class="line"><span style="color:#A6ACCD;"> image: fscarmen/argo-nezha</span></span>
<span class="line"><span style="color:#A6ACCD;"> container_name: nezha_dashboard</span></span>
<span class="line"><span style="color:#A6ACCD;"> restart: always</span></span>
<span class="line"><span style="color:#A6ACCD;"> environment:</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_USER=&lt;fill in github username&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_EMAIL=&lt;fill in your github email&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_PAT=&lt;&lt;fill in obtained&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_REPO=&lt;fill in customized&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_CLIENTID=&lt;fill in obtained&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_CLIENTSECRET=&lt;fill in fetched&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - ARGO_JSON=&#39;&lt;fill in acquired&gt;&#39;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - WEB_DOMAIN=&lt;fill customized&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - DATA_DOMAIN=&lt;fill in customized&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - SSH_DOMAIN=&lt;insert customized&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - SSH_PASSWORD=&lt;fill customized&gt;</span></span></code></pre></div><h2 id="client-access" tabindex="-1">Client Access <a class="header-anchor" href="#client-access" aria-label="Permalink to &quot;Client Access&quot;"></a></h2><p>Transfer via gRPC, no additional configuration required. Use the installation method given in the panel, for example</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">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</span></span></code></pre></div><h2 id="ssh-access" tabindex="-1">SSH access <a class="header-anchor" href="#ssh-access" aria-label="Permalink to &quot;SSH access&quot;"></a></h2><ul><li>Take macOS + WindTerm as an example, and other SSH tools depending on the one used, combined with the official documentation: <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh" target="_blank" rel="noreferrer">https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh</a> /#2-connect-as-a-user</li><li>Official cloudflared download: <a href="https://github.com/cloudflare/cloudflared/releases" target="_blank" rel="noreferrer">https://github.com/cloudflare/cloudflared/releases</a></li><li>The following are examples of input commands</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">&lt;filepath&gt;/cloudflared access ssh --hostname ssh.seals.nom.za</span></span></code></pre></div><img width="828" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/25c7bd31-21b5-4684-b1cf-d6d6e0e85058"><img width="830" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/20a8661c-90b8-4b77-a046-0a2e42d7fee5"><img width="1201" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/3146b2e2-f988-487f-ab63-00218eb4d570"><h2 id="automatically-restore-backups" tabindex="-1">Automatically restore backups <a class="header-anchor" href="#automatically-restore-backups" aria-label="Permalink to &quot;Automatically restore backups&quot;"></a></h2><ul><li>Change the name of the file to be restored to <code>README.md</code> in the github backup repository, the timer service will check for updates every minute and record the last synchronized filename in the local <code>/dbfile</code> to compare with the online file content.</li></ul><p>The following is an example of restoring a file with the name <code>dashboard-2023-04-23-13:08:37.tar.gz</code>.</p><p>! <a href="https://user-images.githubusercontent.com/92626977/233822466-c24e94f6-ba8a-47c9-b77d-aa62a56cc929.png" target="_blank" rel="noreferrer">image</a></p><h2 id="manually-restore-the-backup" tabindex="-1">Manually restore the backup <a class="header-anchor" href="#manually-restore-the-backup" aria-label="Permalink to &quot;Manually restore the backup&quot;"></a></h2><ul><li>ssh into the container and run, tar.gz filename from the github backup repository, format: dashboard-2023-04-22-21:42:10.tar.gz</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash /dashboard/restore.sh &lt;filename&gt;</span></span></code></pre></div><img width="1209" alt="image" src="https://user-images.githubusercontent.com/92626977/233792709-fb37b79c-c755-4db1-96ec-1039309ff932.png"><h2 id="migrating-data" tabindex="-1">Migrating data <a class="header-anchor" href="#migrating-data" aria-label="Permalink to &quot;Migrating data&quot;"></a></h2><ul><li>Backup the <code>/dashboard</code> folder of the original Nezha and zip it up to <code>dashboard.tar.gz</code> file.</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tar czvf dashboard.tar.gz /dashboard</span></span></code></pre></div><ul><li>Download the file and put it into a private repository, the name of the repository should be exactly the same as &lt;GH_REPO&gt;, and edit the contents of README.md of the repository to <code>dashboard.tar.gz</code>.</li><li>Deploy the new Nezha in this project, and fill in the variables completely. After the deployment is done, the auto-restore script will check every minute, and will restore automatically if it finds any new content, the whole process will take about 3 minutes.</li></ul><h2 id="main-catalog-files-and-descriptions" tabindex="-1">Main catalog files and descriptions <a class="header-anchor" href="#main-catalog-files-and-descriptions" aria-label="Permalink to &quot;Main catalog files and descriptions&quot;"></a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight has-diff"><code><span class="line"><span style="color:#A6ACCD;">.</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- dashboard</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- app # Nezha panel main program</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- argo.json # Argo tunnel json file, which records information about using the tunnel.</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- argo.yml # Argo tunnel yml file, used for streaming web, gRPC and ssh protocols under a single tunnel with different domains.</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- backup.sh # Backup data scripts</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- data</span></span>
<span class="line"><span style="color:#A6ACCD;">| | |-- config.yaml # Configuration for the Nezha panel, e.g. Github OAuth2 / gRPC domain / port / TLS enabled or not.</span></span>
<span class="line"><span style="color:#A6ACCD;">| | `-- sqlite.db # SQLite database file that records all severs and cron settings for the panel.</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- entrypoint.sh # The main script, which is executed after the container is run.</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha-agent # Nezha client, used to monitor the localhost.</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha.csr # SSL/TLS certificate signing request</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha.key # Private key information for SSL/TLS certificate.</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha.pem # SSL/TLS Privacy Enhancement Email</span></span>
<span class="line"><span style="color:#A6ACCD;">| `-- restore.sh # Restore backup scripts</span></span>
<span class="line"><span style="color:#A6ACCD;">`-- dbfile # Record the name of the latest restore or backup file</span></span></code></pre></div><h2 id="acknowledgements-for-articles-and-projects-by" tabindex="-1">Acknowledgements for articles and projects by <a class="header-anchor" href="#acknowledgements-for-articles-and-projects-by" aria-label="Permalink to &quot;Acknowledgements for articles and projects by&quot;"></a></h2><ul><li>Robin, an enthusiastic sunrise crowd, for discussing the relationship between Nezha&#39;s server and client, which led to the birth of this project.</li><li>Nezha website: <a href="https://nezha.wiki/" target="_blank" rel="noreferrer">https://nezha.wiki/</a> , TG Group: <a href="https://t.me/nezhamonitoring" target="_blank" rel="noreferrer">https://t.me/nezhamonitoring</a></li><li>Common Poverty International Old Chinese Medicine: <a href="http://solitud.es/" target="_blank" rel="noreferrer">http://solitud.es/</a></li><li>Akkia&#39;s Blog: <a href="https://blog.akkia.moe/" target="_blank" rel="noreferrer">https://blog.akkia.moe/</a></li><li>HiFeng&#39;s Blog: <a href="https://www.hicairo.com/" target="_blank" rel="noreferrer">https://www.hicairo.com/</a></li><li>Intranet Penetration with Cloudflare Tunnel: <a href="https://blog.outv.im/2021/cloudflared-tunnel/" target="_blank" rel="noreferrer">https://blog.outv.im/2021/cloudflared-tunnel/</a></li></ul><h2 id="disclaimer" tabindex="-1">Disclaimer <a class="header-anchor" href="#disclaimer" aria-label="Permalink to &quot;Disclaimer&quot;"></a></h2><ul><li>This program is only for learning and understanding, non-profit purposes, please delete within 24 hours after downloading, not for any commercial purposes, text, data and images are copyrighted, if reproduced must indicate the source.</li><li>Use of this program is subject to the deployment disclaimer. Use of this program must follow the deployment of the server location, the country and the user&#39;s country laws and regulations, the author of the program is not responsible for any misconduct of the user.</li></ul></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/en_US/case/case5.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><div class="last-updated" data-v-face870a><p class="VPLastUpdated" data-v-face870a data-v-7b3ebfe1>Last Updated: <time datetime="2023-08-08T00:58:25.000Z" data-v-7b3ebfe1></time></p></div></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/en_US/case/case4.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>4. Fake-agent, monitoring data cheater</span></a></div><div class="has-prev pager" data-v-face870a><!----></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-f7fc41f4><div class="container" data-v-f7fc41f4><p class="message" data-v-f7fc41f4>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License</p><p class="copyright" data-v-f7fc41f4>Copyright © 2022-present NezhaHQ</p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case4.md\":\"463df0ea\",\"case_case1.md\":\"718fbd8f\",\"case_case2.md\":\"c7539f3c\",\"developer_theme.md\":\"95894f6f\",\"en_us_case_case1.md\":\"198f06c3\",\"en_us_case_case2.md\":\"9aceafc7\",\"en_us_case_case3.md\":\"2defad7d\",\"en_us_case_case4.md\":\"dbdb8a83\",\"en_us_case_case5.md\":\"0c6c8b99\",\"developer_index.md\":\"99b3045d\",\"en_us_case_index.md\":\"4df1a374\",\"en_us_developer_l10n.md\":\"2d0edfd8\",\"en_us_developer_index.md\":\"287d43f4\",\"en_us_developer_theme.md\":\"8e648f67\",\"case_case3.md\":\"4cb3893e\",\"developer_l10n.md\":\"1b3f58fa\",\"case_index.md\":\"99941f04\",\"en_us_guide_api.md\":\"69139bf5\",\"en_us_guide_dashboard.md\":\"1ea9da83\",\"en_us_guide_agentq.md\":\"b8b4a9a6\",\"en_us_guide_agent.md\":\"06fbd76f\",\"en_us_guide_dashboardq.md\":\"2fae8ecb\",\"en_us_guide_loginq.md\":\"42fc218a\",\"case_case5.md\":\"061c8957\",\"en_us_guide_notifications.md\":\"5dd88dc0\",\"en_us_guide_q5.md\":\"c7d4f6e8\",\"en_us_guide_services.md\":\"0cab4d47\",\"en_us_guide_q7.md\":\"4bcfe48f\",\"en_us_guide_q3.md\":\"eb992bff\",\"en_us_guide_settings.md\":\"818357d3\",\"en_us_guide_q6.md\":\"7cc4d967\",\"en_us_guide_q4.md\":\"ca28940a\",\"en_us_guide_tasks.md\":\"39e53a65\",\"en_us_guide_servers.md\":\"f3893d77\",\"en_us_guide_q2.md\":\"1f9c0d46\",\"guide_q2.md\":\"3208accd\",\"guide_q6.md\":\"0c0dcdf7\",\"guide_tasks.md\":\"e1eb204e\",\"guide_services.md\":\"1170bbfb\",\"index.md\":\"fa9ac796\",\"guide_agentq.md\":\"7cdc042b\",\"guide_api.md\":\"f2dc49b6\",\"guide_dashboardq.md\":\"acb8e234\",\"guide_notifications.md\":\"1249c7d1\",\"guide_q1.md\":\"da0755e4\",\"guide_loginq.md\":\"2847aa34\",\"guide_q7.md\":\"e6aaecd7\",\"guide_q5.md\":\"7bdf937b\",\"guide_agent.md\":\"414f6f78\",\"en_us_index.md\":\"8699236d\",\"guide_dashboard.md\":\"4624f7ab\",\"guide_q3.md\":\"ed8d20e6\",\"guide_servers.md\":\"26005104\",\"guide_q4.md\":\"d8a16288\",\"guide_settings.md\":\"a642872d\"}")
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/nezhahq/nezhahq.github.io\"}],\"algolia\":{\"appId\":\"HP6QF6KMZD\",\"apiKey\":\"fb8bae9ed373d1057e0c07fcf32b3f1a\",\"indexName\":\"nezhahq\"},\"footer\":{\"message\":\"This work is licensed under a <a rel=\\\"license\\\" href=\\\"http://creativecommons.org/licenses/by-nc-sa/4.0/\\\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License\",\"copyright\":\"Copyright © 2022-present NezhaHQ\"}},\"locales\":{\"root\":{\"lang\":\"zh-CN\",\"label\":\"简体中文\",\"title\":\"哪吒监控\",\"description\":\"哪吒监控是一个轻量化的运维工具\",\"link\":\"/\",\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"editLink\":{\"pattern\":\"https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/:path\",\"text\":\"在GitHub中编辑\"},\"nav\":[{\"text\":\"使用指南\",\"link\":\"/\",\"activeMatch\":\"^/$|^/guide/\"},{\"text\":\"社区项目\",\"link\":\"/case/index.html\",\"activeMatch\":\"^/case/\"},{\"text\":\"开发手册\",\"link\":\"/developer/index.html\",\"activeMatch\":\"^/developer/\"}],\"sidebar\":{\"/\":[{\"text\":\"安装手册\",\"items\":[{\"text\":\"安装 Dashboard\",\"link\":\"/guide/dashboard.html\"},{\"text\":\"安装 Agent\",\"link\":\"/guide/agent.html\"}]},{\"text\":\"管理面板配置\",\"items\":[{\"text\":\"主机\",\"link\":\"/guide/servers.html\"},{\"text\":\"服务\",\"link\":\"/guide/services.html\"},{\"text\":\"定时任务\",\"link\":\"/guide/tasks.html\"},{\"text\":\"报警通知\",\"link\":\"/guide/notifications.html\"},{\"text\":\"设置\",\"link\":\"/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/guide/api.html\"}]},{\"text\":\"常见问题\",\"items\":[{\"text\":\"TG api 被墙\",\"link\":\"/guide/q1.html\"},{\"text\":\"Agent 无法启动/上线 查看日志并进行排错的步骤\",\"link\":\"/guide/q2.html\"},{\"text\":\"反向代理 gRPC 端口的步骤\",\"link\":\"/guide/q3.html\"},{\"text\":\"实时通道断开/在线终端连接失败\",\"link\":\"/guide/q4.html\"},{\"text\":\"进行数据迁移、备份和恢复的步骤\",\"link\":\"/guide/q5.html\"},{\"text\":\"设置每月重置流量统计的步骤\",\"link\":\"/guide/q6.html\"},{\"text\":\"自定义 Agent 监控项目的步骤\",\"link\":\"/guide/q7.html\"}]},{\"text\":\"排障指南\",\"items\":[{\"text\":\"Dashboard 相关\",\"link\":\"/guide/dashboardq.html\"},{\"text\":\"Agent 相关\",\"link\":\"/guide/agentq.html\"},{\"text\":\"登录相关\",\"link\":\"/guide/loginq.html\"}]}],\"/guide/\":[{\"text\":\"安装手册\",\"items\":[{\"text\":\"安装 Dashboard\",\"link\":\"/guide/dashboard.html\"},{\"text\":\"安装 Agent\",\"link\":\"/guide/agent.html\"}]},{\"text\":\"管理面板配置\",\"items\":[{\"text\":\"主机\",\"link\":\"/guide/servers.html\"},{\"text\":\"服务\",\"link\":\"/guide/services.html\"},{\"text\":\"定时任务\",\"link\":\"/guide/tasks.html\"},{\"text\":\"报警通知\",\"link\":\"/guide/notifications.html\"},{\"text\":\"设置\",\"link\":\"/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/guide/api.html\"}]},{\"text\":\"常见问题\",\"items\":[{\"text\":\"TG api 被墙\",\"link\":\"/guide/q1.html\"},{\"text\":\"Agent 无法启动/上线 查看日志并进行排错的步骤\",\"link\":\"/guide/q2.html\"},{\"text\":\"反向代理 gRPC 端口的步骤\",\"link\":\"/guide/q3.html\"},{\"text\":\"实时通道断开/在线终端连接失败\",\"link\":\"/guide/q4.html\"},{\"text\":\"进行数据迁移、备份和恢复的步骤\",\"link\":\"/guide/q5.html\"},{\"text\":\"设置每月重置流量统计的步骤\",\"link\":\"/guide/q6.html\"},{\"text\":\"自定义 Agent 监控项目的步骤\",\"link\":\"/guide/q7.html\"}]},{\"text\":\"排障指南\",\"items\":[{\"text\":\"Dashboard 相关\",\"link\":\"/guide/dashboardq.html\"},{\"text\":\"Agent 相关\",\"link\":\"/guide/agentq.html\"},{\"text\":\"登录相关\",\"link\":\"/guide/loginq.html\"}]}],\"/case/\":[{\"text\":\"社区项目\",\"items\":[{\"text\":\"1. 搭建哪吒 Telegram 机器人\",\"link\":\"/case/case1.html\"},{\"text\":\"2. 使用Siri语音运行快捷指令查询服务器状态\",\"link\":\"/case/case2.html\"},{\"text\":\"3. 自建多用户多语言 Telegram 服务器状态查询机器人\",\"link\":\"/case/case3.html\"},{\"text\":\"4. Fake-agent监控数据作弊器\",\"link\":\"/case/case4.html\"},{\"text\":\"5. 使用 Argo 隧道的哪吒服务端\",\"link\":\"/case/case5.html\"}]}],\"/developer/\":[{\"text\":\"开发手册\",\"items\":[{\"text\":\"创建新主题\",\"link\":\"/developer/theme.html\"},{\"text\":\"l10n\",\"link\":\"/developer/l10n.html\"}]}]}}},\"en_US\":{\"lang\":\"en-US\",\"label\":\"English\",\"title\":\"Nezha Monitoring\",\"description\":\"Nezha Monitoring is a lightweight O&M tool\",\"link\":\"/en_US/\",\"themeConfig\":{\"lastUpdatedText\":\"Last Updated\",\"editLink\":{\"text\":\"Edit this page on GitHub\",\"pattern\":\"https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/:path\"},\"nav\":[{\"text\":\"User Guide\",\"link\":\"/en_US/\",\"activeMatch\":\"^/en_US/guide/\"},{\"text\":\"Community Projects\",\"link\":\"/en_US/case/index.html\",\"activeMatch\":\"^/en_US/case/\"},{\"text\":\"Development Manual\",\"link\":\"/en_US/developer/index.html\",\"activeMatch\":\"^/en_US/developer/\"}],\"sidebar\":{\"/en_US/\":[{\"text\":\"Installation Manual\",\"items\":[{\"text\":\"Install Dashboard\",\"link\":\"/en_US/guide/dashboard.html\"},{\"text\":\"Install Agent\",\"link\":\"/en_US/guide/agent.html\"}]},{\"text\":\"Admin Panel\",\"items\":[{\"text\":\"Servers\",\"link\":\"/en_US/guide/servers.html\"},{\"text\":\"Services\",\"link\":\"/en_US/guide/services.html\"},{\"text\":\"Tasks\",\"link\":\"/en_US/guide/tasks.html\"},{\"text\":\"Notifications\",\"link\":\"/en_US/guide/notifications.html\"},{\"text\":\"Settings\",\"link\":\"/en_US/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/en_US/guide/api.html\"}]},{\"text\":\"FAQ\",\"items\":[{\"text\":\"Agent cannot start/on-line. Steps to review logs and troubleshoot\",\"link\":\"/en_US/guide/q2.html\"},{\"text\":\"Steps for Reverse Proxy gRPC Ports (support Cloudflare CDN)\",\"link\":\"/en_US/guide/q3.html\"},{\"text\":\"Real-time channel disconnection/online terminal connection failure\",\"link\":\"/en_US/guide/q4.html\"},{\"text\":\"Steps to perform data migration, backup and recovery\",\"link\":\"/en_US/guide/q5.html\"},{\"text\":\"Steps to set up monthly reset data statistics\",\"link\":\"/en_US/guide/q6.html\"},{\"text\":\"Steps to customize Agent monitoring items\",\"link\":\"/en_US/guide/q7.html\"}]},{\"text\":\"Troubleshooting Guide\",\"items\":[{\"text\":\"Dashboard\",\"link\":\"/en_US/guide/dashboardq.html\"},{\"text\":\"Agent\",\"link\":\"/en_US/guide/agentq.html\"},{\"text\":\"Login\",\"link\":\"/en_US/guide/loginq.html\"}]}],\"/en_US/guide/\":[{\"text\":\"Installation Manual\",\"items\":[{\"text\":\"Install Dashboard\",\"link\":\"/en_US/guide/dashboard.html\"},{\"text\":\"Install Agent\",\"link\":\"/en_US/guide/agent.html\"}]},{\"text\":\"Admin Panel\",\"items\":[{\"text\":\"Servers\",\"link\":\"/en_US/guide/servers.html\"},{\"text\":\"Services\",\"link\":\"/en_US/guide/services.html\"},{\"text\":\"Tasks\",\"link\":\"/en_US/guide/tasks.html\"},{\"text\":\"Notifications\",\"link\":\"/en_US/guide/notifications.html\"},{\"text\":\"Settings\",\"link\":\"/en_US/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/en_US/guide/api.html\"}]},{\"text\":\"FAQ\",\"items\":[{\"text\":\"Agent cannot start/on-line. Steps to review logs and troubleshoot\",\"link\":\"/en_US/guide/q2.html\"},{\"text\":\"Steps for Reverse Proxy gRPC Ports (support Cloudflare CDN)\",\"link\":\"/en_US/guide/q3.html\"},{\"text\":\"Real-time channel disconnection/online terminal connection failure\",\"link\":\"/en_US/guide/q4.html\"},{\"text\":\"Steps to perform data migration, backup and recovery\",\"link\":\"/en_US/guide/q5.html\"},{\"text\":\"Steps to set up monthly reset data statistics\",\"link\":\"/en_US/guide/q6.html\"},{\"text\":\"Steps to customize Agent monitoring items\",\"link\":\"/en_US/guide/q7.html\"}]},{\"text\":\"Troubleshooting Guide\",\"items\":[{\"text\":\"Dashboard\",\"link\":\"/en_US/guide/dashboardq.html\"},{\"text\":\"Agent\",\"link\":\"/en_US/guide/agentq.html\"},{\"text\":\"Login\",\"link\":\"/en_US/guide/loginq.html\"}]}],\"/en_US/case/\":[{\"text\":\"Community Projects\",\"items\":[{\"text\":\"1. Build your own Telegram bot to query server information\",\"link\":\"/en_US/case/case1.html\"},{\"text\":\"2. Use Siri to run shortcut to check server status\",\"link\":\"/en_US/case/case2.html\"},{\"text\":\"3. Self-hosted, multi-user, multi-lingual server status query Telegram bot\",\"link\":\"/en_US/case/case3.html\"},{\"text\":\"4. Fake-agent, monitoring data cheater\",\"link\":\"/en_US/case/case4.html\"},{\"text\":\"5. Nezha server over Argo tunnel\",\"link\":\"/en_US/case/case5.html\"}]}],\"/en_US/developer/\":[{\"text\":\"Development Manual\",\"items\":[{\"text\":\"Create a new theme\",\"link\":\"/en_US/developer/theme.html\"},{\"text\":\"l10n\",\"link\":\"/en_US/developer/l10n.html\"}]}]}}}},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
</body>
</html>