自建内网穿透工作ZeroTier服务端。需要从原服务器迁移到新的主机上,进行以下操作。我使用ubuntu 24.
debian12测试同样可行,甚至旧服务器debian,新服务器是ubuntu24依旧可用。
新服务器安装好ZeroTier和ztncui,不会安装就去看下面的教程。
开始迁移
先将新旧服务器的ZeroTier和Ztncui服务暂停。
sudo systemctl stop ztncui
sudo systemctl stop zerotier-one备份数据
在旧服务器上备份以下两个服务的配置与数据目录。
cd /opt/key-networks/ztncui
sudo tar -czvf ztncui_etc.tar.gz etc
cd /var/lib/
sudo tar -czvf ZeroTier-one.tar.gz zerotier-one自己想办法将以上压缩的配置文件下载下来。
恢复数据
备份新服务器的配置文件,
将ztuncui——etc.tar.gz文件上传到/opt/key-networks/ztncui
将ZeroTier-one.tar.gz文件上传到/var/lib/
cd /opt/key-networks/ztncui
sudo mv etc etc.old
sudo tar -xvf ztncui_etc.tar.gz
cd /var/lib/
sudo sudo mv zerotier-one zerotier-one.old
sudo tar -xvf ZeroTier-one.tar.gz查看权限
查看恢复数据的文件及文件夹权限
ls -l /opt/key-networks/ztncui/etc用户和群组应该是:ztncui
-rw------- 1 ztncui ztncui 148 Jul 26 09:48 default.passw
-rw------- 1 ztncui ztncui 435 Jul 26 09:48 passwd
drwxr-xr-x 2 ztncui ztncui 4096 Jul 26 09:48 storage
drwxr-x--- 2 ztncui ztncui 4096 Jul 26 09:48 tlsd
ls -l /var/lib/zerotier-one用户和群组应该是:zerotier-one
-rw------- 1 zerotier-one zerotier-one 24 Jul 26 09:54 authtoken.secre
drwx------ 4 zerotier-one zerotier-one 4096 Jul 26 09:54 controller.d
-rw-r--r-- 1 zerotier-one zerotier-one 141 Jul 26 09:54 identity.public
-rw------- 1 zerotier-one zerotier-one 270 Jul 26 09:54 identity.secret
drwxr-xr-x 2 zerotier-one zerotier-one 4096 Jul 26 09:54 networks.d
drwxr-xr-x 2 zerotier-one zerotier-one 4096 Jul 27 12:22 peers.d
-rw-r--r-- 1 zerotier-one zerotier-one 570 Jul 26 09:54 planet
-rwxr-xr-x 1 zerotier-one zerotier-one 10892304 Jul 26 09:54 zerotier-cli
-rwxr-xr-x 1 zerotier-one zerotier-one 10892304 Jul 26 09:54 zerotier-idtool
-rwxr-xr-x 1 zerotier-one zerotier-one 10892304 Jul 26 09:54 zerotier-one
-rw-r--r-- 1 zerotier-one zerotier-one 4 Jul 26 09:58 zerotier-one.pid
-rw-r--r-- 1 zerotier-one zerotier-one 4 Jul 26 09:58 zerotier-one.port
-rw-r--r-- 1 zerotier-one zerotier-one 276 Jul 26 09:54 zerotier-one.te
如果权限不对应的话执行以下代码
sudo chown -R ztncui:ztncui /opt/key-networks/ztncui/etc
sudo chown -R zerotier-one:zerotier-one /var/lib/zerotier-one设置配置文件及密钥
After ztncui upgrade, migration, or system kernel upgrade (effective after reboot), you need to generate a new secret for the controller and set correct access privileges.
运行以下命令,设置配置文件
sudo sh -c "echo ZT_TOKEN=$(sudo cat /var/lib/zerotier-one/authtoken.secret) > /opt/key-networks/ztncui/.env"
sudo sh -c "echo HTTPS_PORT=3443 >> /opt/key-networks/ztncui/.env"
sudo sh -c "echo NODE_ENV=production >> /opt/key-networks/ztncui/.env"
sudo chmod 400 /opt/key-networks/ztncui/.env
sudo chown ztncui:ztncui /opt/key-networks/ztncui/.env配置ztncui
sudo nano /opt/key-networks/ztncui/.env
设置IP地址: HTTPS_HOST= 注:我写入IP造成ztncui无法启动,可以不要这一行
Ctrl+X
Y
保存退出
重启zerotier和Ztncui
sudo systemctl start ztncui
sudo systemctl start zerotier-one检查运行状态
查看运行状态
sudo systemctl status ztncui sudo systemctl status zerotier-one查看运行日志
sudo journalctl -u ztncui -u zerotier-one -f注意web端运行在3443,调整防火墙
旧服务器清理
最直接先关机保留两天,运行正常了直接重装系统!
避免两台服务器同时运行,旧服务器上停用服务
sudo systemctl stop ztncui
sudo systemctl stop zerotier-one
sudo systemctl disable ztncui
sudo systemctl disable zerotier-one
sudo rm -rf /var/lib/zerotier-one感谢Sonic's blog,本文中的内容均来自与Sonic's blog这位博主!