首页 > 其他分享 >没有公网 IP 如何部署哪吒探针(适用于家里云 Nas、Nat VPS、IPv6 Only VPS)

没有公网 IP 如何部署哪吒探针(适用于家里云 Nas、Nat VPS、IPv6 Only VPS)

时间:2024-04-06 16:59:15浏览次数:29  
标签:opt nezha key VPS 证书 IP proxy conf IPv6

本文首发于只抄博客,欢迎点击原文链接了解更多内容。

前言

哪吒探针可以帮助我们监控多台服务器的实时状态,通常情况下,安装面板的机器需要拥有公网 IP,才能接受 Agent 的数据,但我们可以通过 Cloudflare Tunnels 来实现无公网 IP 部署哪吒探针

本文假设你已经按照官方文档安装好哪吒探针,并且面板端口为 8008,Agent 通信端口为 5555

哪吒面板端

  1. 编辑面板配置文件
vim /opt/nezha/dashboard/data/config.yaml
  1. GRPCHost ProxuGRPCPort TLS 这三项做如下修改
GRPCHost: data.example.com
ProxyGRPCPort: 443
TLS: true
  1. 重启面板

哪吒 Agent

  • 通信域名: data.example.com
  • 面板通信端口: 443 (套 Cloudflare CDN 必须为443)
  • Agent 密钥: 管理面板中添加服务器时生成的密钥
  • gRPC 端口的 SSL/TLS 加密: y

Nginx 设置

申请 SSL 证书

证书可以选择自签名证书或者 Cloudflare 的 15 年证书

自签名证书

openssl genrsa -out /opt/nezha/nezha.key 2048
openssl req -new -subj "/CN=data.example.com" -key /opt/nezha/nezha.key -out /opt/nezha/nezha.csr
openssl x509 -req -days 36500 -in /opt/nezha/nezha.csr -signkey /opt/nezha/nezha.key -out /opt/nezha/nezha.pem

Cloudflare 证书

按照下图创建证书,将私钥和证书命名为 nezha.keynezha.pem,上传到 /opt/nezha 目录

Cloudflare证书

安装 Nginx

apt-get install nginx -y

编辑 nezha.conf

确保 /etc/nginx/nginx.conf 中包含 include /etc/nginx/conf.d/*.conf (默认包含),否则下面的配置文件不会生效

  1. 创建 nezha.conf 文件
vim /etc/nginx/conf.d/nezha.conf
  1. 填入以下内容,其中将 server_name 修改为你的域名
server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name data.example.com;

  ssl_certificate /opt/nezha/nezha.pem;
  ssl_certificate_key /opt/nezha/nezha.key;
  ssl_stapling on;
  ssl_session_timeout 1d;
  ssl_protocols TLSv1.2 TLSv1.3;
  
  underscores_in_headers on;

  keepalive_time 24h;
  keepalive_requests 100000;
  keepalive_timeout 120s;
  
  location / {
    proxy_pass http://localhost:8008;
    proxy_set_header Host $http_host;
    proxy_set_header Upgrade $http_upgrade;
  }

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

  location ^~ /proto.NezhaService/ {
    grpc_read_timeout 300s;
    grpc_send_timeout 300s;
    grpc_socket_keepalive on;
    grpc_pass grpc://grpcservers;
  }
}

upstream grpcservers {
    server localhost:5555;
    keepalive 512;
}
  1. 重启 Nginx
systemctl restart nginx

Cloudflare 设置

SSL

SSL 设置需要设置为 Full / Full (strict)。如果用的自签名证书选择 Full;用的是 Cloudflare 的 15 年证书选择 Full (strict)

SSL设置为Full

gRPC

Network 设置中需要把 gRPC 打开

gRPC

http2

  1. 启动 cloudflared 时需要添加 --protocol http2 参数
  2. 编辑 cloudflared.service 文件
vim /etc/systemd/system/cloudflared.service
  1. 找到 ExecStart 项,添加 --protocol http2
ExecStart=/usr/bin/cloudflared --no-autoupdate tunnel run --protocol http2 --token <token>
  1. 重启 cloudflared
systemctl daemon-reload
systemctl restart cloudflared

Tunnels

  • Path 为空
  • Service: HTTPS://localhost:443
  • No TLS Verify: Enabled
  • HTTP2 connection: Enabled

Tunnels

标签:opt,nezha,key,VPS,证书,IP,proxy,conf,IPv6
From: https://blog.csdn.net/zc_mk/article/details/137243665

相关文章

  • Camera KMD ISP学习笔记(7)-CRM pipeline delay和V4L2 Event
    学习资料来源:https://deepinout.com/camx-kmd/camera-kmd-isp-subsystem-intro.html仅用于个人学习,侵联删 Realtimepipeline或实时Pipeline,在这个Pipeilne上的硬件设备有一些特点:实时,实时是指streamon后一直在出图,如下图的蓝色线(flash和actuator不会出图,但也是挂载到Realt......
  • 在Linux中,什么是网络接口配置?如何配置IP地址?
    在Linux系统中,网络接口配置是指设置和调整系统网络接口的参数,以便系统能够正确地连接到网络并进行通信。网络接口可以是物理的,如以太网端口,也可以是虚拟的,如虚拟机的虚拟网络接口或VPN连接。1.网络接口配置的作用网络连接:配置网络接口使得Linux系统能够连接到局域网(LAN)或广域......
  • BetterZip v5.3.4 注册码密钥下载
    BetterZip是一款功能强大的压缩软件,不必解压就能快速地检查压缩文档。它能执行文件之间的合并并提供密码。使用它,用户可以更快捷的向压缩文件中添加和删除文件。它支持包括zip、gz、bz、bz2、tar、tgz、tbz、rar、7-zip、cpio、arj、lha、lhz、cab、iso、chm、rpm、deb、nsis......
  • 在 JavaScript 中,exec() 和 match() 区别
    在JavaScript中,exec() 和 match() 都是与正则表达式相关的常用方法,但它们的使用方式和返回的结果有所不同。exec() 方法exec() 是 RegExp 对象的一个方法,用于在字符串中执行一次正则表达式匹配。它的语法是:regexp.exec(string)其中 regexp 是一个正则表达式对象,s......
  • H3C 配置IPv6 DHCP服务器
    H3C交换机配置DHCPv6服务器官方文档:https://www.h3c.com/cn/d_202303/1810058_30005_0.htmIPv6地址计算器:https://www.838dz.com/calculator/5233.html配置调试场景将Router模拟为运营商链路将Switch模拟为DHCPv6服务器实现PC可以从Switch上获取ipv6地址实现上网拓扑......
  • zynq Lwip学习笔记-ip4_input函数
    这里写目录标题前言一、概述二、函数体三、调用关系前言最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwipechoserver例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的......
  • zynq Lwip学习笔记-low_level_init函数
    这里写目录标题前言一、概述二、函数体三、调用关系前言最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwipechoserver例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的......
  • zynq Lwip学习笔记-setup_isr 函数
    这里写目录标题前言一、概述二、函数体三、调用关系前言最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwipechoserver例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的......
  • 初识JavaScript
    目录前言:1.认识JavaScript:1.1网页的动态效果:1.2 前后端交互--数据提交(弹窗/输入/事件监听):1.3进阶--前端高级框架: 1.3.1Vue.js:1.3.2React.js:1.3.3Node.js:1.3.4Three.js:2.JavaScript的基本输入输出: 2.1注释:2.1.1单行注释:2.1.1多行注释:2.2输出语句:2......
  • P1002 [NOIP2002 普及组] 过河卒
    题目链接:从起点走到终点,最后一步一定是向右或向下走过来的,因此就可以列出状态转移方程。值得注意的是,对于横着和竖着的两条边界不可直接想当然地认为路径数一定等于\(1\),因为在中途可能会有控制点的存在,因此还是要老老实实地列出状态转移方程。由于边界时只会从一个方向递推过来......