logo NodeSeekbeta

通过Cloudflare gRPC隐藏哪吒探针通信IP

目录

  1. 前言
  2. 准备
  3. nginx配置
  4. cloudfalre配置
  5. 客户端配置
  6. nat怎么办

前言

昨天看到一个帖子: (求助)关于莱云1元机连接境外探针 是关于因ip被墙客户端无法与哪吒服务端通信的问题。

本贴就来使用cloudflare前几个月支持的gRPC功能实现套cdn与哪吒客户端通信。

同时也能把服务端ip隐藏在cloudflare后。

参考文章:通过CF Tunnel在Cloudflare边缘提供gRPC服务

利用CF Argo Tunnel,在PaaS容器云平台部署哪吒探针

本教程默认以默认通信端口5555进行演示,域名为 demo.com,请自行替换。

准备

首先搭建好哪吒探针,可参考 哪吒监控 | 使用文档

调整配置文件

nano /opt/nezha/dashboard/data/config.yaml

修改这几项

GRPCHost: demo.com
ProxyGRPCPort: 443
TLS: true

之后启动哪吒脚本nezha.sh,选择5,重启哪吒服务。

这一步是将哪吒GRPCPort的代理端口改为443(并非直接将GRPCPort修改为443,之前ip:5555仍能继续使用,同时启用TLS。这样做是以便以后再面板后台复制客户端一键脚本直接替换为通信域名:443。

nginx配置

安装nginx

apt install nginx -y

自签名证书(请自行替换域名)

openssl genrsa -out /opt/nezha/nezha.key 2048
openssl req -new -subj "/CN=demo.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

修改nginx配置(请自行替换域名)

sudo nano /etc/nginx/nginx.conf

改为

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
  upstream grpcservers {
    server localhost:5555;
    keepalive 1024;
  }

  server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name demo.com;

    ssl_certificate          /opt/nezha/nezha.pem;
    ssl_certificate_key      /opt/nezha/nezha.key;

    underscores_in_headers on;

    location / {
      grpc_read_timeout 300s;
      grpc_send_timeout 300s;
      grpc_socket_keepalive on;
      grpc_pass grpc://grpcservers;
    }
  }
}

重启nginx服务

sudo service nginx restart

cloudfalre配置

  1. 解析 demo.com 至你的服务器

  2. 左侧边栏-网络-开启gRPC

注意SSL/TLS加密模式需要为 完全 因为是自签名证书

客户端配置

一般直接在哪吒后台添加,复制意见脚本即可

如果为手动安装

./nezha-agent -s demo.com:443 -p 哪吒后台客户端密钥 --tls

nat怎么办

效果

  • 录制_2023_07_22_13_36_44_48.gif

注意

  1. Cloudflare SSL/TLS加密模式需要为 完全
  2. 一定要在Cloudflare域名管理页左侧边栏-网络-开启gRPC
123
123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有15797位seeker

🎉欢迎新用户🎉