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

解密:修订间差异

来自iSrv 百科
Bill​(留言 | 贡献)
创建页面,内容为“== 解密 == * 解密 1Panel 自动备份设置 加密 的文件 <code> # 解密openssl加密的WP程序包(需要加密时的密码) openssl enc -d -aes-256-cbc -in app_wordpress_202606180356314h4ho.tar.gz -out wp_app.tar.gz tar -zxvf wp_app.tar.gz </code>”
 
Bill​(留言 | 贡献)
无编辑摘要
第3行: 第3行:
* 解密 [[1Panel]] 自动备份设置 [[加密]] 的文件
* 解密 [[1Panel]] 自动备份设置 [[加密]] 的文件


<code>
== 解密 ==
# 解密openssl加密的WP程序包(需要加密时的密码)
 
openssl enc -d -aes-256-cbc -in app_wordpress_202606180356314h4ho.tar.gz -out wp_app.tar.gz
<syntaxhighlight lang="bash">[ding@ArchLinux tmp]$ ls
tar -zxvf wp_app.tar.gz
app_frps_20260316123457wesyz.tar.gz
</code>
[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的定时任务,备份应用,设置有密码,现在怎么使用密码解压备份文件?</syntaxhighlight>
你这个情况说明:<br />
<code>app_frps_20260316123457wesyz.tar.gz</code> '''其实不是 gzip 压缩包''',只是文件名带了 <code>.tar.gz</code>。<br />
因为你在 '''1Panel''' 的定时任务里设置了 '''备份密码''',所以这个文件实际上是 '''加密压缩包'''。
 
因此直接用 <code>tar</code> 解压会出现:
 
<syntaxhighlight lang="bash">gzip: stdin: not in gzip format</syntaxhighlight>
 
-----
 
<span id="一正确解压方法"></span>
= 一、正确解压方法 =
 
先用 '''OpenSSL''' 解密,再解压。
 
<span id="解密-1"></span>
=== 1 解密 ===
 
<syntaxhighlight lang="bash">openssl enc -d -aes-256-cbc -in app_frps_20260316123457wesyz.tar.gz -out backup.tar.gz</syntaxhighlight>
系统会提示输入密码:
 
<syntaxhighlight lang="bash">enter aes-256-cbc decryption password:</syntaxhighlight>
输入你在 '''1Panel 备份任务设置的密码'''。
 
 
-----
 
<span id="解压"></span>
=== 2 解压 ===
 
然后:
 
<syntaxhighlight lang="bash">tar -zxvf backup.tar.gz</syntaxhighlight>
 
-----
 
<span id="二一条命令直接解压"></span>
= 二、一条命令直接解压 =
 
也可以直接:
 
<syntaxhighlight lang="bash">openssl enc -d -aes-256-cbc -in app_frps_20260316123457wesyz.tar.gz | tar -zxvf -</syntaxhighlight>
同样输入密码即可。
 
 
-----
 
<span id="三确认是否为-1panel-加密文件"></span>
= 三、确认是否为 1Panel 加密文件 =
 
可以用:
 
<syntaxhighlight lang="bash">file app_frps_20260316123457wesyz.tar.gz</syntaxhighlight>
通常会看到类似:
 
<syntaxhighlight lang="bash">openssl enc'd data with salted password</syntaxhighlight>
说明确实是 OpenSSL 加密。
 
 
-----
 
<span id="四1panel-加密备份结构"></span>
= 四、1Panel 加密备份结构 =
 
解压后一般结构类似:
 
<pre>app_frps/
├── docker-compose.yml
├── data/
└── config/</pre>
 
-----
 
<span id="五恢复到-1panel"></span>
= 五、恢复到 1Panel =
 
恢复步骤通常是:
 
# 解密
# 解压
# 复制回应用目录
 
例如:
 
<pre>/opt/1panel/apps/frps/</pre>
 
-----
 
<span id="六一个实用技巧"></span>
= 六、一个实用技巧 =
 
如果你经常恢复 1Panel 备份,可以写个脚本:
 
<pre>restore_1panel_backup.sh</pre>
自动:
 
<pre>输入密码 → 解密 → 解压</pre>
 
-----
 
如果你愿意,我可以再告诉你一个 '''很多人不知道的 1Panel 备份坑''':
 
<blockquote>'''带密码的备份有时无法跨服务器直接恢复'''
</blockquote>
我可以教你一个 '''100%可靠的备份方式'''(比 1Panel 自带备份更安全)。
 
<syntaxhighlight lang="bash">[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]$
 
原来如此,这样操作能解压了,文件也无损,现在知道了解压命令,那相应的打包并加密命令是?</syntaxhighlight>
<span id="解密-2"></span>
= 解密 =
 
你刚才的过程其实已经把 '''1Panel''' 的备份格式完整拆开了,它的结构其实是:
 
<pre>openssl AES256 加密
└── tar.gz
    └── app_xxx/
        ├── app.json
        └── app.tar.gz
            └── 实际应用数据</pre>
所以你要 '''自己生成同样格式的加密备份''',步骤就是:
 
<pre>tar → gzip → openssl 加密</pre>
我给你完整的标准流程。
 
 
-----
 
<span id="一打包应用目录"></span>
= 一、打包应用目录 =
 
假设你的应用目录是:
 
<pre>frps/</pre>
先打包:
 
<syntaxhighlight lang="bash">tar -czf app.tar.gz frps</syntaxhighlight>
得到:
 
<pre>app.tar.gz</pre>
 
-----
 
<span id="二构造-1panel-的结构"></span>
= 二、构造 1Panel 的结构 =
 
创建目录:
 
<syntaxhighlight lang="bash">mkdir app_frps_test</syntaxhighlight>
移动进去:
 
<syntaxhighlight lang="bash">mv app.tar.gz app_frps_test/</syntaxhighlight>
然后创建一个 <code>app.json</code>(简单示例):
 
<syntaxhighlight lang="json">{
  "name": "frps",
  "type": "app"
}</syntaxhighlight>
结构变成:
 
<pre>app_frps_test/
├── app.json
└── app.tar.gz</pre>
 
-----
 
<span id="三再打包一层"></span>
= 三、再打包一层 =
 
<syntaxhighlight lang="bash">tar -czf app_frps_test.tar.gz app_frps_test</syntaxhighlight>
得到:
 
<pre>app_frps_test.tar.gz</pre>
 
-----
 
<span id="四使用-openssl-加密"></span>
= 四、使用 OpenSSL 加密 =
 
使用 '''OpenSSL'''
 
<syntaxhighlight lang="bash">openssl enc -aes-256-cbc -salt \
-in app_frps_test.tar.gz \
-out app_frps_test_enc.tar.gz</syntaxhighlight>
输入密码即可。
 
得到最终文件:
 
<pre>app_frps_test_enc.tar.gz</pre>
这个文件就和 '''1Panel 的备份格式一样'''。
 
 
-----
 
<span id="五解密流程对应"></span>
= 五、解密流程(对应) =
 
恢复流程:
 
<span id="解密-3"></span>
=== 1 解密 ===
 
<syntaxhighlight lang="bash">openssl enc -d -aes-256-cbc \
-in app_frps_test_enc.tar.gz \
-out backup.tar.gz</syntaxhighlight>
 
-----
 
<span id="解压-1"></span>
=== 2 解压 ===
 
<syntaxhighlight lang="bash">tar -zxvf backup.tar.gz</syntaxhighlight>
 
-----
 
<span id="再解压应用"></span>
=== 3 再解压应用 ===
 
<syntaxhighlight lang="bash">tar -zxvf app.tar.gz</syntaxhighlight>
 
-----
 
<span id="六一条命令直接打包加密"></span>
= 六、一条命令直接打包+加密 =
 
实际使用时可以直接:
 
<syntaxhighlight lang="bash">tar -czf - frps | openssl enc -aes-256-cbc -salt -out frps_backup.tar.gz</syntaxhighlight>
恢复:
 
<syntaxhighlight lang="bash">openssl enc -d -aes-256-cbc -in frps_backup.tar.gz | tar -xzvf -</syntaxhighlight>
 
-----
 
<span id="七你刚才看到的警告"></span>
= 七、你刚才看到的警告 =
 
<pre>deprecated key derivation used
Using -iter or -pbkdf2 would be better</pre>
这是因为旧方式不安全。
 
更安全写法:
 
<syntaxhighlight lang="bash">openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000</syntaxhighlight>
例如:
 
<syntaxhighlight lang="bash">tar -czf - frps | openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 -out frps_backup.tar.gz</syntaxhighlight>
安全性会高很多。
 
 
-----
 
<span id="八给你一个实用结论"></span>
= 八、给你一个实用结论 =
 
如果你以后自己做备份,'''比 1Panel 更好的方式其实是''':
 
<pre>tar + gpg + rclone</pre>
用 '''GnuPG''' 替代 openssl。
 
优点:
 
* 更安全
* 支持签名
* 支持密钥恢复
* 不容易被暴力破解
 
 
-----
 
如果你愿意,我可以再给你一套 '''真正运维常用的备份方式''':
 
'''一条命令生成:'''
 
<pre>压缩 + AES256加密 + SHA256校验</pre>
很多生产服务器都是这么做的,比 1Panel 的备份 '''安全一个等级'''。

2026年6月25日 (四) 16:16的版本

解密

解密

[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 的备份 安全一个等级。