目录
- 前言
- 准备
- nginx配置
- cloudfalre配置
- 客户端配置
- 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配置
-
解析 demo.com 至你的服务器
-
左侧边栏-网络-开启gRPC
注意SSL/TLS加密模式需要为 完全 因为是自签名证书
客户端配置
一般直接在哪吒后台添加,复制意见脚本即可
如果为手动安装
./nezha-agent -s demo.com:443 -p 哪吒后台客户端密钥 --tls
nat怎么办
效果
注意
- Cloudflare SSL/TLS加密模式需要为 完全
- 一定要在Cloudflare域名管理页左侧边栏-网络-开启gRPC
这个好东西
牛啊
好东西,找人代挂探针更安全了
我的就是这样整的,舒坦!
大体都差不多,官网上有详细教程!
绑定
mark
绑定
顶
没想到tunnel居然支持grpc了
好文,收藏了!