服务器安装哪吒面板详细教程

avatar
作者
猴君
阅读量:0

本文长期更新地址: 服务器安装哪吒面板详细教程-星零岁的博客icon-default.png?t=N7T8https://blog.0xwl.com/13568.html

注:本文中部分内容源自网络,第四步中部分来自本人曾经文章:云服务器安装配置宝塔面板并安装基础运行环境教程-星零岁的博客
今天来讲一下怎么在服务器搭建哪吒面板以实现监控小鸡。
搭建完成后效果:星零岁的辣鸡探针 

什么是哪吒面板?

是开源、轻量、易用的服务器监控与运维工具

Github: naiba/nezha: :trollface: Self-hosted, lightweight server and website monitoring and O&M tool (github.com)
使用文档:https://nezha.wiki/index.html

一、获取Github 认证授权
进入New OAuth Application (github.com)进行创建授权。 哪吒面板域名加上 https:// 开头,回调地址再加上 /oauth2/callback 结尾。

screenshot-1723267813495

接着按照图片的指示去创建Client secrets,然后保存Client ID和Client secrets。

screenshot-1723267971105

剩下的不用改,拉到页面最下面点击“Update application”。

screenshot-1723268113070

二、准备服务器
这里推荐雨云服务器,雨云优惠注册地址:点此注册有5折等优惠
这里我是推荐购买国外服务器搭建哪吒面板。

screenshot-1723269324456

购买完成后,通过网页vnc或者ssh连接上你的服务器。

三、安装哪吒面板
ssh连接到服务器后执行
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
两种方式都可以,我这里以Docker安装为例

screenshot-1723269662986

然后选择“1.安装面板端”

screenshot-1723269723249

然后按照图片填写你刚刚的信息

screenshot-1723269940012

四、进行反向代理
先安装宝塔面板。

连接好ssh后,在里面输入以下内容并回车:
url=https://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_lts.sh $url;fi;bash install_lts.sh ed8484bec
之后会出现一个这样的画面,输入“y”即可。

screenshot-1722153086242

然后,你可以去刷会B站,或者看看本人其他文章,等待安装完成。安装完成后,会输出形如下图的东西。

screenshot-1722153297948

把“外网访问地址:”后面的东西复制下来,粘贴到浏览器中。出现如下页面。

screenshot-1722153490015

按照上图复制ssh输出信息并粘贴,点击确认即可。
然后按照下图同意协议

screenshot-1722153630479

之后会弹出要登陆宝塔账号,没有的注册一个并登陆即可。

之后,去安装以下Nginx,版本选最新即可

然后点击进入站点设置选项,选择“反向代理” – “新建反向代理”。

screenshot-1723271520158

自定义一个代理名称,在下方“目标 URL”中填入 http://127.0.0.1 然后点击“保存”。

打开刚刚新建的反向代理右边的“配置文件”,将配置文件替换为以下内容:

#PROXY-START/ location / {     proxy_pass http://127.0.0.1:8008;     proxy_set_header Host $http_host;     proxy_set_header      Upgrade $http_upgrade; } location ~ ^/(ws|terminal/.+)$  {     proxy_pass http://127.0.0.1:8008;     proxy_http_version 1.1;     proxy_set_header Upgrade $http_upgrade;     proxy_set_header Connection "Upgrade";     proxy_set_header Host $http_host; } #PROXY-END/ 

点击“保存”。然后你就能访问面板了。

五、添加被控服务器
进入哪吒面板,登录后进入后台,点击“新增服务器”

screenshot-1723270374666

自行填写后,点击“新增”

screenshot-1723270565903

然后复制下来命令连接到要安装的服务器ssh,粘贴进去回车执行就安装完成了。

六、哪吒面板美化(可选)
在哪吒面板所在服务器,连接ssh后输入

wget -O nezha.sh https://raw.githubusercontent.com/lvgj-stack/nezha/master/script/install.sh && chmod +x ./nezha.sh && sudo ./nezha.sh
选择14.
然后进入哪吒面板点击设置

screenshot-1723270870689

把以下内容粘贴进“自定义代码”

 <style>     /* 自定义字体 */     @font-face {         font-family: 'Harmony Hans';         src: url(https://cdn.amzayo.top/static/fonts/HarmonyOSHans-Medium.woff2) format('woff2');     }      * {         font-family: 'Harmony Hans';     }      *:not(.content) {         transition: all .2s;     }      /* 背景图片 */     body::before {         content: "";         position: fixed;         top: 0;         left: 0;         width: 100%;         height: 100%;         z-index: -1;         background: url(https://cdn.amzayo.top/static/public/luban/Luban_time_tour_poster.webp) center/cover no-repeat;     }          :root {         --popup-filter: blur(2px);         --lc-color-light: rgba(235, 235, 235, 0.8);         --bc-color-light: rgba(235, 235, 235, 0.4);         --the-color-light: rgba(235, 235, 235, 0.6);         --he-color-light: rgba(235, 235, 235, 0.8);         --message-color-light: rgb(22, 22, 22, 1);         --popup-color-light:rgba(235, 235, 235, 0.6);          --bc-color-dark: rgba(0, 0, 0, 0.4);         --lc-color-dark: rgba(55, 55, 55, 0.8);         --the-color-dark: rgba(35, 35, 35, 0.3);         --he-color-dark: rgba(35, 35, 35, 0.8);         --message-color-dark: rgb(235, 235, 235, 0.8);         --popup-color-dark:rgba(78, 78, 78, 0.6);           /* 注释上面一段颜色代码并取消下面注释的代码开启毛玻璃效果(图形性能开销巨大,可能导致掉帧) */          /* --popup-filter: blur(10px);         --bb: blur(15px) brightness(110%);         --lc-color-light: rgba(255, 255, 255, 0.7);         --bc-color-light: rgba(255, 255, 255, 0.1);         --the-color-light: rgba(255, 255, 255, 0.4);         --he-color-light: rgba(255, 255, 255, 0.5);         --message-color-light: rgb(22, 22, 22, 1);          --popup-color-light:rgba(235, 235, 235, 0.6);          --bc-color-dark: rgba(0, 0, 0, 0.3);         --lc-color-dark: rgba(55, 55, 55, 0.8);         --the-color-dark: rgba(70, 70, 70, 0.1);         --he-color-dark: rgba(35, 35, 35, 0.7);         --message-color-dark: rgb(235, 235, 235, 0.8);         --popup-color-dark:rgba(78, 78, 78, 0.6); */                       }      /* 暗色模式适配 */     @media (prefers-color-scheme: dark) {         *:not(.icon, i) {             color: rgba(220, 220, 220, 0.95) !important;         }          .ui.menu .ui.dropdown .menu>.item {             color: rgba(220, 220, 220, 0.95) !important;         }           .ui .cards>.card {             background-color: var(--lc-color-dark) !important;             border-color: var(--lc-color-dark) !important;         }          .ui .cards>.card i:not(.flag) {             filter: saturate(60%) !important;         }           .ui.table thead th,         .ui.table thead {             background-color: var(--the-color-dark) !important;         }          .ui.table {             background-color: none !important;         }          .ui.large.menu,         .right.menu .menu,         .service-status h2,         .footer,         .floating.message.warning,         .floating.message.success {             background-color: var(--he-color-dark) !important;         }          .floating.message.warning,         .floating.message.success {             color: var(--message-color-dark) !important;         }          #app .ui.fluid.accordion,         .table {             background-color: var(--bc-color-dark) !important;         }          .ui.content.popup {             background-color: var(--popup-color-dark) !important;         }         .ui.content.popup:before{             background-color: var(--popup-color-dark) !important;         }          .ui.progress small,         td:not(.button):not(.bar):not(:has(.button, .bar)):not(:has(> small)) {             filter: brightness(115%);         }          .ui.progress .bar,         .nb-container .ui.icon.button,         .service-status .delay-today>i {             filter: brightness(85%);         }          .ui.button:hover {             filter: brightness(100%) !important;         }          .ui.popup:before {             background-color: var(--popup-color-dark) !important;             box-shadow: 0px 0px 0 0 #ffffff !important;         }          .amzayo-custom-button {             background-color: #4d4d4d8f !important;             color: rgba(178, 178, 178, 0.95) !important;             border: 2px solid #292929ae !important;         }          .amzayo-custom-button:hover {             background-color: #ff8457 !important;             color: #ffffffbd !important;             font-weight: bolder !important;         }          i.amzayo-secondary-font {             color: #727272ae !important;         }          .ui.popup {             background-color: rgba(78, 78, 78, 1) !important;         }          .ui.menu .item:before {             background: rgba(125, 125, 125, 0.15);         }          .ui.menu .active.item {             background: rgba(10, 10, 10, 0.2);         }          .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.item:not(.right):not(.borderless):first-child {             border-left: 1px solid rgba(125, 125, 125, 0.15);         }     }      /* 屏幕适配 */      @media (min-width: 320px) {         .ui-alerts.top-center {             margin-left: 0px !important;             left: 50%;             transform: translate(-50%, -0%);         }     }      @media (min-width: 766px) {         .ui.container {             width: 80%;         }          /* 表格样式 */         .ui.table thead th {             backdrop-filter:var(--bb);             background-color: var(--the-color-light);         }          thead tr :first-child {             border-radius: 1rem 0 0 1rem !important;         }          thead tr :last-child {             border-radius: 0 1rem 1rem 0 !important;         }          /* 小卡片 */         .ui .cards>.card {             border-radius: 1rem;             border: none !important;             background-color: var(--lc-color-light);             padding: .25rem .25rem !important;             margin: .5rem .3rem !important;         }          /* 小卡片头部调整 */         .ui.card>.content>.header,         .ui.cards>.card>.content>.header {             padding-top: 0;             display: flex;             color: rgba(0, 0, 0, .85);             align-items: center;             padding-bottom: .2em;             border-bottom: 1px solid rgba(0, 0, 0, .2);         }          .header_info {             font-size: 1rem !important;             line-height: 1rem !important;             margin-top: .3rem !important;             padding-right: .38rem !important;         }     }      @media (max-width: 766px) {          /* 表格样式 */         .ui.table thead {             backdrop-filter:var(--bb);             background-color: var(--the-color-light);         }          thead {             border-radius: 1rem !important;         }          thead tr {             padding: 0 !important;         }          /* 小卡片 */         .ui .cards>.card {             border-radius: 1rem;             background-color: var(--lc-color-light);             outline: none !important;         }          /* 小卡片头部调整 */         .ui.card>.content>.header,         .ui.cards>.card>.content>.header {             padding-top: 0.5rem;             display: flex;             color: rgba(0, 0, 0, .85);             align-items: center;             padding-bottom: .2em;             border-bottom: 1px solid rgba(0, 0, 0, .2);         }          .header_info {             font-size: 1rem !important;             line-height: 1rem !important;             padding-top: -.1rem !important;             padding-right: .38rem !important;         }     }       /* 菜单颜色 */     .ui.large.menu {         backdrop-filter:var(--bb);         background-color: var(--he-color-light);         border-radius: 0 0 1rem 1rem !important;     }      .ui.menu .item:last-child {         padding: 0 1.142em !important;     }      /* 登录按钮区域 */     .ui.simple.dropdown {         height: 100%;         display: flex;         flex-direction: row;         justify-content: center;         align-items: center;     }      /* 登录之后的下拉菜单 */     .right.menu .menu {         border-radius: 0 0 1rem 1rem !important;         position: absolute;         top: 0 !important;         background-color: var(--he-color-light);         padding: 0 0.3em !important;     }      /* 登录按钮颜色(需要使用配套自定义主题) */     .amzayo-custom-button {         backdrop-filter:var(--bb);         background-color: #ffffff8f;         color: #000000cf;         border: 2px solid #ebe1d9;         border-radius: 1rem;         padding: 10px 20px;         font-size: 16px;     }      .amzayo-custom-button:hover {         background-color: #ff8457;         color: #ffffffbd;         font-weight: bolder;     }      /* 大卡片 */     #app .ui.fluid.accordion {         backdrop-filter:var(--bb);         background-color: var(--bc-color-light);         border-radius: 1rem;     }      #app :last-child.accordion {         margin-bottom: 0 !important;     }      /* 小卡片靠哪个方向对齐 */     .cards {         justify-content: center;     }      .ui.card,     .ui.cards>.card {         box-shadow: none !important;     }      /* 取消下方注释调整下面的数字以调整卡片宽度(非移动端页面,移动端页面让它自适应吧) */     /* .ui.card,     .ui.cards>.card {         width: 300px !important;     } */      /* 小卡片右上角的图标 */      i.amzayo-secondary-font {         margin-left: auto;         color: rgba(255, 153, 1, 0.65);     }      /* 头部配置信息样式 */     .header_info i {         margin-top: .25rem;         margin-right: .3rem;         margin-left: .3rem;     }      /* 更多信息卡片 */     .ui.content.popup {         backdrop-filter:var(--popup-filter);         border: none !important;         border-radius: 1rem;         margin: 0;         padding: 1em !important;         background-color: var(--popup-color-light);         width: max-content;         height: max-content;     }      .ui.popup {         border: none !important;     }      /* 小三角 */     .ui.content.popup:before {         background-color: var(--popup-color-light);         z-index: 9999 !important;         border: none !important;         box-shadow: 0px 0px 0 0 #ffffff !important;     }      .ui.bottom.popup:before {         clip-path: polygon(0 0, 100% 0, 50% 50%, 0 100%);     }      .ui.top.popup:before {         clip-path: polygon(100% 100%, 0% 100%, 100% 0);     }      /* 进度条圆角和颜色 */     .ui.progress {         border-radius: 50rem;         height: 1.5rem;     }      /* 卡片内间距,如需调整小卡片高度,可以修改下面的2rem的数字 */     .status.cards .wide.column {         padding-top: 0 !important;         padding-bottom: 0 !important;         height: 2rem !important;     }      .bi::before,     [class^="bi-"]::before,     [class*=" bi-"]::before {         vertical-align: middle;         margin-bottom: .2rem;     }      /* 状态进度条 */     .card .bar {         height: 1.5rem;     }      .card .bar small {         vertical-align: super;         line-height: 1.5rem;     }      .card .ui.progress .bar {         min-width: 1.8em !important;         border-radius: 13px;         line-height: 1.65em;         height: 1.5rem;     }      table .ui.progress .bar {         border-radius: 13px;     }      /* 正常状态进度条颜色 */     .nb-container .ui.progress.fine .bar {         background-image: linear-gradient(to right, rgba(125, 252, 0, 0.6), rgba(50, 205, 50, 0.6));     }      /*有点累状态进度条颜色 */     .nb-container .ui.progress.warning .bar {         background-image: linear-gradient(to right, rgba(255, 215, 0, 0.6), rgba(255, 125, 80, 0.6));     }      /*高负载状态进度条颜色 */     .nb-container .ui.progress.error .bar {         background-image: linear-gradient(to right, rgba(255, 160, 120, 0.6), rgba(255, 70, 0, 0.6));     }      /* 离线状态进度条颜色 */     .ui.progress.offline .bar {         background-color: #000;     }      /* 上传下载图标颜色 */     i.arrow.alternate.circle.down.outline.icon {         color: rgb(0, 157, 255);     }      i.arrow.alternate.circle.up.outline.icon {         color: #ff0000;     }      /*服务状态*/     .nb-container .service-status .good {         background: rgba(50, 205, 50, 0.75);     }      .nb-container .service-status .warning {         background: rgba(250, 155, 40, 0.75);     }      .nb-container .service-status .danger {         background: rgba(255, 35, 0, 0.75);     }      /* 服务页面大表格背景 */     .table {         backdrop-filter:var(--bb);         background-color: var(--bc-color-light);         border-radius: 1rem !important;     }      .ui.table {         background-color: var(--bc-color-light);     }      .ui.button:not(.good):not(.warning):not(.danger):hover {         background: #e0e1e2 none;     }      .ui.button:hover {         filter: brightness(0.9);     }      .service-status .delay-today {         vertical-align: sub;     }      /* 循环流量统计标题 */     .service-status h2 {         backdrop-filter:var(--bb);         background-color: var(--he-color-light);         border-radius: 1rem !important;         margin: 0 !important;     }      /*底部*/     .footer {         backdrop-filter:var(--bb);         background-color: var(--he-color-light);         position: fixed !important;         bottom: 0 !important;         left: 0 !important;         right: 0 !important;         border-radius: 1rem 1rem 0 0 !important;     }      .ui.inverted.segment,     .ui.primary.inverted.segment {         background-color: var(--he-color-light);     }      .footer .container,     .footer .container a {         color: var(--message-color-light);     }      .footer .container a:hover {         color: #ff8457 !important;     }      /* 提示消息 */     .floating.message.success {         backdrop-filter: blur(15px) brightness(110%);         background-color: var(--he-color-light);         border: 3px solid rgba(255.255.255.0.5);         border-radius: 1rem !important;         color: var(--message-color-light);         box-shadow: 0 0 15px rgba(1, 132, 255, 0.65);     }      .floating.message.success .header {         color: var(--message-color-light);     }      .floating.message.warning {         backdrop-filter: blur(15px) brightness(110%);         background-color: var(--he-color-light);         border: 1px solid rgba(255.255.255.0.5);         border-radius: 1rem !important;         color: var(--message-color-light);         box-shadow: 0 0 15px rgba(255, 153, 1, 0.65);     }      .floating.message.warning .header {         color: var(--message-color-light);     }      .cpucontent {         display: inline-block;     }      .rollanimation {         animation: scroll 10s cubic-bezier(.2, 0, .8, 1) infinite;     }      @keyframes scroll {          0% {             transform: translateX(0%);         }          30% {             transform: translateX(0%);         }          100% {             transform: translateX(-100%);         }      }       /*          以下样式为部分原版主题样式,由于原版主题样式有些强制性,不方便二次修改,故拿出来          */      .ui.mini.message {         width: 17rem;     }      .ui-alerts {         padding: 23px 0 !important;     }      td {         word-wrap: break-word;         word-break: break-all;     }      .nb-container {         padding-top: 75px;         min-height: 100vh;         padding-bottom: 65px;         margin-bottom: -47px;     }      #app .ui.fluid.accordion {         margin-bottom: 1rem;     }      .login.nb-container {         display: flex;         align-items: center;         padding-top: unset;     }      .login.nb-container>.grid {         width: 100%;         margin: 0 auto;     }      .login.nb-container>.grid .column {         max-width: 450px;     }      .status.cards .flag {         margin-right: 0 !important;     }      .status.cards .header>.info.icon {         float: right;         margin-right: 0;     }      .status.cards .wide.column {         padding-top: 0 !important;         padding-bottom: 0 !important;         height: 2rem !important;     }      .status.cards .three.wide.column {         padding-right: 0 !important;     }      .status.cards .wide.column:nth-child(1) {         margin-top: 1rem !important;     }      .status.cards .wide.column:nth-child(2) {         margin-top: 1rem !important;     }      .status.cards .description {         padding-bottom: 1rem !important;     }      .status.cards .ui.content.popup {         min-width: 250px;     }      .status.cards .outline.icon {         margin-right: 0 !important;     }      .ui.progress .bar {         min-width: 1.26em !important;         text-align: right;         padding-right: 0.4em;         line-height: 1.75em;         color: rgba(255, 255, 255, 0.7);         font-weight: 700;         max-width: 100% !important;     }      .service-status .delay-today {         display: flex;         align-items: center;     }      .service-status .delay-today>i {         display: inline-block;         width: 1.2em;         height: 1.2em;         border-radius: 0.6em;         background-color: grey;         margin-right: 0.3em;     } </style> 

然后拉到最下方点击保存即可。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!