个人blog
前言上个月看到OP的独服在搞活动,就入手了一个巴黎的5O作为网盘用,对于在用的移动网来说网速也够用,但是入手后感觉支出有点超预算了,就打算淘汰一下其它的VPS。抉择手里其实已经有好几个VPS作为扶墙用的了,本着同一个商家不持有太多VPS的原则,正好绿云的新加坡24刀到期了,基于本身是背刺款并且平时也不怎么看NF之类的,于是就申请了取消服务。取消之后就发现周边亚太的就缺新加坡的,心里又有点痒痒,想找一台便宜的吃灰机来挂探针,偶然发现gullo.me家有卖新加坡的,看到很便宜就入手了一台12刀的512,在开通的期间看到测试ip就ping了一下,好家伙,疯狂丢包。虽然说要挂探针,但是起码也能用一下吧,当时还有点心存侥幸。晚上就收到邮件提示已经开通了,当时看到IP就有点傻了,一个IP段的,在电脑上试了一下果然效果一样,着实有点后悔。结束后面有经过套CF等操作,依然不是很理想,然后越看越闹心,刚刚选择直接取消服务并且是立马结束,处理完心里就稍微舒坦点了,经过此事,提醒自己入手前一定要做好调查,不能图便宜(其实也不便宜),同时也提醒自己如果觉得一件事让自己不舒服,那就赶紧处理掉,虽然需要付出一点代
起因一直都在用acme.sh脚本进行证书签发,直到最近在给探针的域名进行签发的时候,不知为何总是一直load最后失败,加debug也看不出问题来,初步感觉可能是反代的问题就没管,最近进行了一次探针面板迁移,配置完之后发现所在服务器的其它域名也会一直load,签发不成功,甚是脑袋疼。解决直接说解决方案:尝试更换CA机构,最开始acme.sh默认的是Letsencrypt,后来改为了ZeroSSL,起初也没感觉有什么不同,这次始终不行,于是干脆就先切换了一下签发机构,切换完了立马就提示错误,具体错误想不起来了,大致就是因为在80端口开启了http2,签发机构认为不安全不进行签发。大致想了一下,因为之前嫌改端口麻烦,就把探针面板的监听端口通过80反代了,由于哪吒探针需要启用http2,所以就直接走的80端口,但是不知为何其它域名也受这个影响。知道原因就好解决了,先去掉http2再进行签发就可以了,顺便把端口又改为443再启用http2。总结目前看来还是Letsencrypt更好一点,起码出现问题时会先提示,不会想ZeroSSL傻傻的跑完了然后提示超时。所以等下一次签发不成功并且没有提示的时候
前言最近低价VPS提供商Virmach开始了机房迁移,本人的一台VPS本来已经迁移过了,结果今天发现探针离线了,进后台发现被锁定了,看论坛里讨论应该是在迁移过程中了,不明白为什么已经主动迁移过了又给迁移了一遍,本来也没有啥重要东西再加上在忙工作,暂时没处理。ip不通等到晚上了看到ip已经变了并且已经在线了,但是ping却怎么也ping不通,之前自己手动迁移的时候碰到过,当时是通过重装系统解决的,再加上上一次洛杉矶也是维护后不通,可以通过点重置网络就解决,于是就打算重置网络,然后重置网络后依然不通。通过论坛上的解决方案是需要手动配置一下网关,因此通过VNC进入系统后发现网关已经设置了,但是却ping不通网关。解决本打算不行提交工单的,但是virmach的工单回复速度那不是一般的慢,重装系统又需要重新部署一遍探针,就在走投无路的时候,对比了一下其它两台VPS,发现control面板中的IPv4 Address地址竟然是0,虽然有ip地址,这肯定是哪里配置错了,无意之中点了一下更换ip那个按钮,发现里面竟然有一项Ryzen Fix IP的选项,虽然只有一次,但是还是尝试了一下,更换完ip之后
很久之前买的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/
最近php爆出两个漏洞,分别为:CVE-2022-31625和CVE-2022-31626,涉及MySQL和postgresql,由于本站数据库采用的是postgresql,所以修补了一下。默认的php版本直接用的apt安装的,直接更新的话是无效的,因此找了半天,找到了deb.sury.org维护源。对于Debian 11(bullseye) 更新很简单:echo "deb https://packages.sury.org/php/ bullseye main" >> /etc/apt/sources.list.d/php.list然后接着apt update更新一下包然后再apt upgrade进行升级就可以了。
最近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
最近把公司内网的禅道迁移到外网,由于不想装apache,所以没有采用一键安装的方式,采用了nginx+fastcgi的方式安装,数据还原完成后不知道为何找不到备注了,并且访问地址必须为:地址+zendaopms/www才行,看上去非常别扭,网上查大部分都是通过nginx反向代理apache的地址,或者是直接根目录访问,因为后面还有别的业务要用,所以想配置成/zentao这种访问方式,查了半天,最终在官方的问答里找到了配置方式,nginx采用如下配置:location ~ ^/zentao/.+\.php$ { root /opt/zentao/www; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; if ( $fastcgi_script_name ~ ^/zentao/(.*\.php) ) { set $cginame $1; } fastcgi_param SCRIPT_FILENAME $document_root/$cginame;
起因周五的时候,同事在解决由于导入视图没有权限的问题时,不知道动了哪个地方,造成root权限在本机上无法登录,明明密码是正常的,但是依旧被denied,同时提示的是root@%没有权限,众所周知这是为了配置了远程访问,但是无奈任何账号都登录不进去,只好先用无密码进行登录了。无密码登录通过网上查找,找到两种方法:通过在[mysqld]下添加skip-grant-tables配置,并重启服务即可,试了一下好像不起作用,暂时没有这种方法。先停止原有的MySQL服务,通过sudo mysqld_safe --skip-grant-tables &命令进行启动,但是会提示访问不到var/run/mysqld权限而失败,可以通过手动创建该目录,然后chown mysql:mysql /var/run/mysqld对该目录进行权限设置,再次启动后应该就成功了。重设root权限初步怀疑可能没有没有授权,保险起见,重新设置一下密码,流程跟忘记密码类似,具体操作如下:use mysql; update user set authentication_string=password('YOURSUPERSE
由于阿里云即将到期了,打算迁移到腾讯轻量云,通过代理200多一点到手,还可以升级一下配置,迁移的过程中顺便记录一下Postgresql的安装过程,以便当前博客的开发用。安装官方给的教程已经很详细了,这里不再过多介绍。Red Hat系参考这里Debian系参考这里Windows参考这里其它的也都可以在官网找到,主要记录一下安装后的一系列操作。进行数据库初始化#初始化db /usr/pgsql-12/bin/postgresql-12-setup initdb 创建数据库及用户#切换到postgres用户 su postgres #执行psql连接postgresql psql #创建testDb数据库 create database testDb; #创建用户名为:test,密码为:test123的用户, CREATE USER test WITH PASSWORD 'test123'; #赋予testDb数据库的所有权限给test用户 GRANT ALL PRIVILEGES ON DATABASE testDb TO test; 开放远程访问查找配置文件所在位置#用上面的方式
最近一直在用Certbot进行Let's Encrypt的证书管理,这里大概记录一下常用的吧。签发证书直接通过Auth插件安装完certbot之后直接可以通过以下代码就可以了,目前只使用过一次,虽然方便但是貌似后面续期的时候不太好用certbot --nginx 通过webroot目前大部分通过这种方式进行,可能自己用的不太深入吧,说一下nginx的相关配置吧,需要先添加以下配置,注意一下自己的主目录location ~ /.well-known/acme-challenge/ { allow all; root /usr/share/nginx/html; default_type "text/plain"; } location = /.well-known/acme-challenge/ { return 404; } 然后执行以下代码获取证书certbot certonly --webroot -w /usr/share/ngin
hellojxl