claw.cloud家在2025年优惠一年的vps快到期了,刚好racknerd黑五抢到一台年付10几刀的美国服务器,所以这两天就着手迁移数据了。

首先截图留个纪念,开机353天的cc机子:

开机353天的vps服务器

开始的思路是:
两台服务器都安装了1panel,应该可以使用快照功能.
当我备份完快照上传到新服务器的时候却发现识别不了,
才发现旧服务器使用的1panel版本是v1.10.34-lts,
而新服务器使用的版本是v2.0.16,跨越了一个大版本,所以直接恢复快照是行不通的.


于是询问AI这种情况该怎么解决.
得到如下方法:

备份

网站备份

* 打包原始的网站数据,即/opt/1panel/apps/openresty/openresty/www/sites/你的域名/index的数据,全部域名网站都需打包

  • 反代的网站不需要打包,在新服务器上直接新建反代就行

typecho博客的备份

typecho我也是在1panel到应用商店里面安装的,1panel的v1和v2版本都有

  • 打包网站数据
    备份typecho博客数据
  • typecho用到postgresql,所以需要打包数据库
  • 我使用的是1panel面板应用商店里面安装的postgresql,进入这里点击备份即可:安装数据库时的用户密码可以不记下来,但是你服务需要用到的哪个数据库名称、用户名,密码,必须记好.
    备份数据库
    数据库名称用户密码

bitwarden的备份

  • 安装方式:应用商店
  • bitwarden应用内置有备份导出功能
    备份bitwarden

恢复

网站的恢复

  • 在新服务器上的1panel面板设置好acme帐户和dns账号后,先申请证书,创建和旧服务器相同的网站,开启https,选择证书.最后去你的域名管理,设置dns跳转,将旧的服务器ip地址更改为新服务器ip地址.

博客的恢复

  • 我使用的是typecho博客,恢复的时候记得也要恢复主题,不然也会报错.

博客的恢复

biwarden的恢复

  • 应用商店安装后,关闭旧服务器上面的反代,在新服务器上重新创建反代,在cloudflare上的dns指向新的服务器ip地址
  • 访问网站,新建一个帐号,导入备份的数据即可.

哪吒面板的恢复

这个就比较复杂,也是最折腾的

  • 我因为有一个服务-哪吒探针监控在旧服务器上是用docker部署,在新服务器上是用面板的应用商店安装的,所以数据的转移就复杂了一点,遇到了几个坑.

首先是访问不了,后来能访问了,但是agent全掉线了,到现在有的上线,有的不上线,测试过只能能客户端重启才能再次上线.

我用AI总结了难点和坑,如下:

  1. 现象描述
    哪吒监控面板从服务器 A 迁移至服务器 B(1Panel 环境,Nezha v1),迁移后出现:
    网页管理后台正常,但 Agent 大面积离线。
    管理后台能看到 Agent 实时 IP,但前台显示“离线”。
    Nginx/OpenResty 报错:104: Connection reset by peer 或 upstream prematurely closed connection。
  2. 核心疑难点分析
    A. gRPC 协议与端口多路复用 (Multiplexing)
    疑点:哪吒 v1 默认支持单端口多路复用(Web 和 gRPC 共用 8008 端口)。若按 v0 习惯强行转发 5555 端口,常因容器内未开启监听导致 Connection reset。
    结论:在 Nginx 反代环境下,建议直接将 gRPC 流量转发至面板 Web 端口(8008)。
    B. Nginx 缓冲区拦截 (Buffering)
    疑点:Nginx 默认开启 proxy_buffering,这会缓存请求。gRPC 属于长连接流通信,数据包若被 Nginx 缓存,Dashboard 将因收不到实时心跳而判定 Agent 离线。
    结论:必须在 Nginx 配置中显式关闭 proxy_buffering。
    C. TLS 终止冲突
    疑点:当 Agent 走 443 端口(TLS)连接 Nginx,而 Nginx 解密后以明文转给后端时,若 Dashboard config.yaml 仍开启 tls: true,会造成协议识别逻辑混乱。
    结论:面板配置 tls: false(让 Nginx 负责加解密),Agent 配置 tls: true。
    D. gRPC 对系统时间的极高敏感性
    疑点:gRPC 通信要求服务端与客户端的时间差在 60 秒以内。迁移后若新服务器时区或时间未校准,长连接将直接被 Dashboard 拒绝。

遇到agent不上线的话,可以试试在/opt/nezha/dashboard/data/config.yaml里面的tls = true更改成tls = false,然后在面板的设置里的Agent 使用 TLS 连接的勾去掉,然后试试.还不行的话两边都改成true再试试,总有成功的时候.

至此,我的

  1. 三个网站,一个博客,两个反代
  2. bitwarden
  3. 哪吒探针

就成功转移到新服务器啦!

经过一天的测试 迁移后的探针需要上线才能识别,所以迁移后agent可能不会立刻上线,重启agent即可

标签: typecho, 服务器, vps, 哪吒面板, 反代

添加新评论