Hellojxl - nezha
type: channel
link: https://hellojxl.com/index.php/tag/nezha/
items: acme.sh80端口http2无法签发证书
items: Alpine中安装哪吒探针代理端
items: 迁移哪吒探针

acme.sh80端口http2无法签发证书
type: item
date: 2022-07-26T15:52:00+00:00
description: 起因一直都在用acme.sh脚本进行证书签发，直到最近在给探针的域名进行签发的时候，不知为何总是一直load最后失败，加debug也看不出问题来，初步感觉可能是反代的问题就没管，最近进行了一次探针面板迁移，配置完之后发现所在服务器的其它域名也会一直load，签发不成功，甚是脑袋疼。解决直接说解决方案：尝试更换CA机构，最开始acme.sh默认的是Letsencrypt，后来改为了ZeroSSL，起初也没感觉有什么不同，这次始终不行，于是干脆就先切换了一下签发机构，切换完了立马就提示错误，具体错误想不起来了，大致就是因为在80端口开启了http2，签发机构认为不安全不进行签发。大致想了一下，因为之前嫌改端口麻烦，就把探针面板的监听端口通过80反代了，由于哪吒探针需要启用http2，所以就直接走的80端口，但是不知为何其它域名也受这个影响。知道原因就好解决了，先去掉http2再进行签发就可以了，顺便把端口又改为443再启用http2。总结目前看来还是Letsencrypt更好一点，起码出现问题时会先提示，不会想ZeroSSL傻傻的跑完了然后提示超时。所以等下一次签发不成功并且没有提示的时候可以试试切换为Letsencrypt。

Alpine中安装哪吒探针代理端
type: item
date: 2022-06-24T23:30:00+00:00
description: 很久之前买的sentris家的小鸡最近突然离线了，之前图省事装的是debian8，可能是因为性能太差或内存太小吧，经常会挂掉。想想这性能啥也干不了还是换成alpine吧，然后就打算只挂个探针，可是哪吒官方的安装脚本里面暂时还没有alpine，只能自己捣鼓了。安装虽然官方没有提供一键安装脚本，但毕竟是golang开发的，直接下载二进制就可以了。启动废话不多说，直接nohup启动就得了，nohup /home/nezha-agent -s 服务器地址:端口 -p 密钥 0 --report-delay 3 --skip-conn --skip-procs -- disable-command-execute &开机启动网上查alpine的开机启动目录在/etc/local.d下，可以在这个目录touch一个启动文件，然后把上面的脚本拷贝到文件里面，比如我们就叫做nezha.start,然后赋予执行权限，然后再加到开机启动里面就可以了，具体操作步骤如下：#创建启动文件 touch nezha.start #获取shell路径 echo $0 #编辑开机文件内容 #!/bin/ash nohup /home/nezha-agent -s 服务器ip:端口 -p 密钥 0 --report-delay 3 --skip-conn --skip-procs -- disable-command-execute & #增加执行权限 chmod +x nezha.start #增加开机启动 rc-update add local #查看一下服务状态 rc-status #如果local的服务是停止的启动起来 service local start结束好了，到这里基本上就完成了。😎😎😎补充：最近发现探针经常挂掉，但是进入服务器发现好像系统也没重启，怀疑是代理自己停掉了，虽然可以开机启动，但是因为没有进程守护所以还是需要经常手动启动，后来又研究了一下alpine系统自带的OpenRC init系统，研究并部署了一下，最近一直正常，分享一下过程：首先在/etc/init.d/目录下创建一个文件，比如nezha-agent，增加启动权限：chmod +x nezha-agent，然后输入#!/sbin/openrc-run name="nezha agent" command="/home/nezha-agent" command_background=true command_args="-s 服务器ip:端口 -p 密钥 0 --report-delay 3 --skip-conn --skip-procs -- disable-command-execute" pidfile="/run/${RC_SVCNAME}.pid" depend() { need net use dns logger netmount }后面就可以通过rc-service nezha-agent start进行启动了，如果要开机启动那么就rc-update add nezha-agent就可以了。

迁移哪吒探针
type: item
date: 2022-05-10T00:46:00+00:00
description: 最近virmach支持迁移到其它地区的Ryzen服务器，正好之前买的ip被墙了，由于当时在忙工作，没注意，过了几天才发现是被墙的，也懒得找客服，心想就等着解封吧，结果等了将近半年依然没有解封，看来是永封了，正好现在支持迁移就立马迁移到西雅图了。由于迁移的比较仓促，只备份了哪吒探针的服务端，没有备份相关的nginx配置，所以之后又重新部署了一遍。下面就梳理一下迁移流程：备份服务端下的/opt/nezha文件夹。在新服务器上新安装哪吒服务面板，安装完成之后将之前备份的覆盖到本地的/opt/nezha文件夹下，启动就可以了。配置nginx转发，由于客户端连接的域名通过nginx转发之后无法进行域名证书续签，所以只好走80端口了。具体的nginx配置如下：（1）服务器端转发配置: location / { proxy_pass http://127.0.0.1:8008; proxy_set_header Host $host; } location /ws { 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 $host; } location /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 $host; }（2）客户端转发配置: #开启http2 listen 80 http2; #可以把access日志关了，不然太多 access_log off; #重要，不开启是不行的 underscores_in_headers on; location / { grpc_read_timeout 300s; grpc_send_timeout 300s; grpc_pass grpc://127.0.0.1:5555; }好了，基本上部署完毕后就可以看到所有的服务器都在线了。补充：最近登录的时候一直提示 server response missing access_token,网上查说是反代https的问题，可是我这里明明之前是可以的，查找半天无果，后来在github的secret界面发现密钥一直没有使用过，感觉不太对劲，于是重新添加了一个新的并替换了现有配置，重启之后发现问题解决，这才想起来之前迁移的时候可能是误删了新建的secret。具体替换方法是在修改/opt/nezha/dashboard/data下的config.yaml文件。