打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

解密

来自iSrv 百科

解密

解密

[ding@ArchLinux tmp]$ ls
app_frps_20260316123457wesyz.tar.gz
[ding@ArchLinux tmp]$ tar -zxvf app_frps_20260316123457wesyz.tar.gz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
[ding@ArchLinux tmp]$ 
我在1panel的定时任务,备份应用,设置有密码,现在怎么使用密码解压备份文件?

你这个情况说明:
app_frps_20260316123457wesyz.tar.gz 其实不是 gzip 压缩包,只是文件名带了 .tar.gz。
因为你在 1Panel 的定时任务里设置了 备份密码,所以这个文件实际上是 加密压缩包。

因此直接用 tar 解压会出现:

gzip: stdin: not in gzip format

一、正确解压方法

先用 OpenSSL 解密,再解压。

1 解密

openssl enc -d -aes-256-cbc -in app_frps_20260316123457wesyz.tar.gz -out backup.tar.gz

系统会提示输入密码:

enter aes-256-cbc decryption password:

输入你在 1Panel 备份任务设置的密码。



2 解压

然后:

tar -zxvf backup.tar.gz

二、一条命令直接解压

也可以直接:

openssl enc -d -aes-256-cbc -in app_frps_20260316123457wesyz.tar.gz | tar -zxvf -

同样输入密码即可。



三、确认是否为 1Panel 加密文件

可以用:

file app_frps_20260316123457wesyz.tar.gz

通常会看到类似:

openssl enc'd data with salted password

说明确实是 OpenSSL 加密。



四、1Panel 加密备份结构

解压后一般结构类似:

app_frps/
├── docker-compose.yml
├── data/
└── config/

五、恢复到 1Panel

恢复步骤通常是:

  1. 解密
  2. 解压
  3. 复制回应用目录

例如:

/opt/1panel/apps/frps/

六、一个实用技巧

如果你经常恢复 1Panel 备份,可以写个脚本:

restore_1panel_backup.sh

自动:

输入密码 → 解密 → 解压

如果你愿意,我可以再告诉你一个 很多人不知道的 1Panel 备份坑:

带密码的备份有时无法跨服务器直接恢复

我可以教你一个 100%可靠的备份方式(比 1Panel 自带备份更安全)。

[ding@ArchLinux tmp]$ ls
app_frps_20260316123457wesyz.tar.gz
[ding@ArchLinux tmp]$ tar -zxvf app_frps_20260316123457wesyz.tar.gz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
[ding@ArchLinux tmp]$ ls
app_frps_20260316123457wesyz.tar.gz
[ding@ArchLinux tmp]$ file app_frps_20260316123457wesyz.tar.gz
app_frps_20260316123457wesyz.tar.gz: openssl enc'd data with salted password
[ding@ArchLinux tmp]$ openssl enc -d -aes-256-cbc -in app_frps_20260316123457wesyz.tar.gz -out backup.tar.gz
enter AES-256-CBC decryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
[ding@ArchLinux tmp]$ ls
app_frps_20260316123457wesyz.tar.gz  backup.tar.gz
[ding@ArchLinux tmp]$ ls -lh
总计 16K
-rw-r--r-- 1 ding ding 6.6K  3月16日 12:37 app_frps_20260316123457wesyz.tar.gz
-rw-r--r-- 1 ding ding 6.6K  3月16日 13:49 backup.tar.gz
[ding@ArchLinux tmp]$ tar -zxvf backup.tar.gz 
app_frps_20260316123457wesyz/
app_frps_20260316123457wesyz/app.tar.gz
app_frps_20260316123457wesyz/app.json
[ding@ArchLinux tmp]$ ls
app_frps_20260316123457wesyz  app_frps_20260316123457wesyz.tar.gz  backup.tar.gz
[ding@ArchLinux tmp]$ ls app_frps_20260316123457wesyz
app.json  app.tar.gz
[ding@ArchLinux tmp]$ cd app_frps_20260316123457wesyz
[ding@ArchLinux app_frps_20260316123457wesyz]$ ls
app.json  app.tar.gz
[ding@ArchLinux app_frps_20260316123457wesyz]$ tar -zxvf app.tar.gz 
frps/
frps/data/
frps/data/frps.toml
frps/data/ssl/
frps/data/frps_full.toml
frps/data.yml
frps/.env
frps/docker-compose.yml
frps/scripts/
frps/scripts/init.sh
[ding@ArchLinux app_frps_20260316123457wesyz]$ ls
app.json  app.tar.gz  frps
[ding@ArchLinux app_frps_20260316123457wesyz]$ cat frps/.env 
format=''
PANEL_APP_PORT_SERVICE=7000
USER_NAME='admin'
CONTAINER_NAME='frps'
CPUS=0
MEMORY_LIMIT=0
collation=''
AUTH_TOKEN='token1234'
PANEL_APP_PORT_HTTP=7500
PASSWORD='password'
[ding@ArchLinux app_frps_20260316123457wesyz]$ 

原来如此,这样操作能解压了,文件也无损,现在知道了解压命令,那相应的打包并加密命令是?

解密

你刚才的过程其实已经把 1Panel 的备份格式完整拆开了,它的结构其实是:

openssl AES256 加密
└── tar.gz
    └── app_xxx/
        ├── app.json
        └── app.tar.gz
            └── 实际应用数据

所以你要 自己生成同样格式的加密备份,步骤就是:

tar → gzip → openssl 加密

我给你完整的标准流程。



一、打包应用目录

假设你的应用目录是:

frps/

先打包:

tar -czf app.tar.gz frps

得到:

app.tar.gz

二、构造 1Panel 的结构

创建目录:

mkdir app_frps_test

移动进去:

mv app.tar.gz app_frps_test/

然后创建一个 app.json(简单示例):

{
  "name": "frps",
  "type": "app"
}

结构变成:

app_frps_test/
├── app.json
└── app.tar.gz

三、再打包一层

tar -czf app_frps_test.tar.gz app_frps_test

得到:

app_frps_test.tar.gz

四、使用 OpenSSL 加密

使用 OpenSSL

openssl enc -aes-256-cbc -salt \
-in app_frps_test.tar.gz \
-out app_frps_test_enc.tar.gz

输入密码即可。

得到最终文件:

app_frps_test_enc.tar.gz

这个文件就和 1Panel 的备份格式一样。



五、解密流程(对应)

恢复流程:

1 解密

openssl enc -d -aes-256-cbc \
-in app_frps_test_enc.tar.gz \
-out backup.tar.gz

2 解压

tar -zxvf backup.tar.gz

3 再解压应用

tar -zxvf app.tar.gz

六、一条命令直接打包+加密

实际使用时可以直接:

tar -czf - frps | openssl enc -aes-256-cbc -salt -out frps_backup.tar.gz

恢复:

openssl enc -d -aes-256-cbc -in frps_backup.tar.gz | tar -xzvf -

七、你刚才看到的警告

deprecated key derivation used
Using -iter or -pbkdf2 would be better

这是因为旧方式不安全。

更安全写法:

openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000

例如:

tar -czf - frps | openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 -out frps_backup.tar.gz

安全性会高很多。



八、给你一个实用结论

如果你以后自己做备份,比 1Panel 更好的方式其实是:

tar + gpg + rclone

用 GnuPG 替代 openssl。

优点:

  • 更安全
  • 支持签名
  • 支持密钥恢复
  • 不容易被暴力破解



如果你愿意,我可以再给你一套 真正运维常用的备份方式:

一条命令生成:

压缩 + AES256加密 + SHA256校验

很多生产服务器都是这么做的,比 1Panel 的备份 安全一个等级。