nezha探针搭建教程

搭建前准备

  1. 需要一台连接公网的服务器,需要放行80,443,8008,5555端口(8008和5555后面可以修改别的端口)
  2. 服务器厂商推荐雨云 点链接购买即可获得首月5折优惠券(第一月大概是16左右,便宜,点我链接还会有优惠)
  3. 一个托管在CF的域名,做好A记录(演示域名为server.example.com)
  4. 一个托管在CF的域名,做好A记录(演示域名为agent.example.com)这个不要开启CDN
  5. 需要有一个GitHub或者是Gitlab账号

开始搭建

1.获取Github的Client ID

image-20240721112445444

点击New OAuth App

image-20240721112735341

Application name - 随意填写。
Homepage URL - 填写面板的访问域名,如:”https://server.example.com"(你的域名)。
Authorization callback URL - 填写回调地址,如:”https://server.example.com/oauth2/callback"(不要忘记`/oauth2/callback`)。

点击 “Register application”。

保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret,新建的密钥仅会显示一次,请妥善保存

服务器端操作

国外服务器

1
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

国内服务器

1
curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh

image-20240721113139699

image-20240721113245341

选哪个都可以,我这里选择1

然后选择安装面板端

image-20240721113523578

刚才选择的时在GitHub做的OAuth2,所以可以直接回车

Client ID 和 Client Secter`这两个就填上面自己申请的

登录名就是Github的自己的名字

站点标题可以输入自己喜欢的如“xxxx的小屋监控”

站点访问端口可以自己选择

RPC端口可以自己选择但是一定要和之后Agent端的端口设置相同

然后http://IP:端口访问看看能不能访问成功,如果可以的话进行下一步

image-20240721114618385

Nginx反代 + SSL
申请SSL(也可以在雨云申请)

安装acme.sh

1
curl https://get.acme.sh | sh

此次是在cf做dns验证所以去cf申请API

用户 API 令牌 | Cloudflare

image-20240721115835396

查看API即可

设置变量

1
2
export CF_Key="你的api"
export CF_Email="你的cf邮箱"

进入目录

1
cd .acme.sh

申请泛域名证书(example.com替换成自己的域名)

1
acme.sh --issue -d example.com -d *.example.com --dns dns_cf --server letsencrypt
安装Nginx

我这里提供两种安装方式(选一种即可)

apt或者yum安装

yum

1
2
sudo yum install epel-release
sudo yum install nginx -y

apt

1
2
3
4
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl gnupg2 ca-certificates lsb-release
sudo apt-get install -y nginx

Docker安装(上面先安装的nezha面板选择的时Docker安装所以自己不用安装Docker)

创建映射文件夹

1
2
3
mkdir -p /home/nginx/
mkdir -p /home/nginx/certs
mkdir -p /home/nginx/html

移动ssl证书(example.com换为自己的目录)

1
2
cp .acme.sh/example.com_ecc/fullchain.cer /home/nginx/certs/
cp .acme.sh/example.com_ecc/moshang.asia.key /home/nginx/certs/

编辑nginx.conf

vi /home/nginx/nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
events {
worker_connections 1024;
}
http {
client_max_body_size 1000m;
error_log /var/log/nginx/error.log error;
server_tokens off;
server {
listen 80;
listen 443 ssl;
server_name server.example.com;

ssl_certificate /etc/nginx/certs/fullchain.cer;
ssl_certificate_key /etc/nginx/certs/example.com.key;

location / {
proxy_pass http://172.16.35.154:8008; #172.16.35.154为服务器的本机内网地址
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
}
location ~ ^/(ws|terminal/.+)$ {
proxy_pass http://172.16.35.154:8008; #172.16.35.154为服务器的本机内网地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
}
}
}

拉取Nginx镜像

1
docker run -d --name nginx -p 80:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/certs:/etc/nginx/certs -v /home/nginx/html:/usr/share/nginx/html nginx:latest

然后访问

https://server.example.com

和楼上图一样及成功

测试登录

访问 https://server.example.com/login

image-20240721121546139

使用创建OAuth2的账号进行登录,成功即可下一步

进入设置

image-20240721123244988

填入域名

agent.example.com(上面图片写错了)

然后回到服务器重启面板

1
./nezha.sh

然后重新访问,登陆后台添加服务器

image-20240721123705083

image-20240721123740774

image-20240721123803138

然后复制命令

客户端操作

国外服务器

1
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

国内服务器

1
curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh

image-20240721113139699

image-20240721113245341

然后退出脚本

将复制的命令粘贴在客户端即可

回到网页查看

image-20240721141404775

到此教程就结束了