解密
更多操作
解密
解密
[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
恢复步骤通常是:
- 解密
- 解压
- 复制回应用目录
例如:
/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 的备份 安全一个等级。