阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Oracle的Security External Password Store功能实现无密码登录数据库

387次阅读
没有评论

共计 8789 个字符,预计需要花费 22 分钟才能阅读完成。

在今年国内很多用户的 Oracle 数据库突然遭到比特币勒索,从这一方面来说,数据库的安全,大家没有引起足够的重视。其实不难发现,我们在生产环境中使用的 Oracle 数据库确实存在着很多安全隐患和安全风险。Oracle 在数据库安全方面的解决方案也有很多,比如 Oracle 审计与数据库防火墙 (AVDF) 产品、Oracle 的透明数据加密功能 (KDE) 和 Oralce Wallet(也称 Oracle 钱夹)加密用户的密码等等。

如果需要从 SHELL 脚本来连接到 Oracle 数据库,那么这些脚本包含数据库连接详细信息,这可能是一个主要的安全问题。一个解决方案是使用操作系统身份验证,但 Oracle 10g 第 2 版提供了使用安全外部密码存储的功能。其中 Oracle 登录证书存储在客户端 Oracle 电子钱包中,这样的话,在 SHELL 脚本里就可以使用“/ @ db_alias”这样的语法来连接。这对于用脚本登录数据库进行操作来说是非常有用的,尤其对于企业安全要求很高,不希望用户名和密码明文存在配置文件中,而且对于密码的维护是极为方便的,比如把 wallet 放在指定路径下,当修改密码时,只需统一覆盖 wallet 即可。

今天我和大家分享一下,如何使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库,以此不将明文密码暴露在生产环境当中。

那么,Oracle 是如何通过安全外部密码存储 (Secure External Password Store) 来达到无密码登录数据库呢? 我们来说,连接到数据库的密码证书是存储在 Oracle wallet 里,这个 wallet(钱夹)是一个用来保存认证和签名证书的一种安全软件容器。这种钱包使用可以简化依靠密码凭据连接到数据库的大规模部署。配置此功能时,应用程序代码,批处理作业和脚本不再需要嵌入的用户名和密码。风险降低,因为这样的密码不再以明确的方式暴露,并且当用户名或密码改变时,密码管理策略更容易实施,而不改变应用程序代码。

因为用“安全外部密码存储”这种方式所存储的密码密文信息是存储在 Oracle wallet 里的,那么我们先介绍一下,什么是 Oracle wallet 以及它里面可以存储一些什么信息?请看下面的一段英文描述,wKioL1icdimAJizaAABw-YOoEGs541.png-wh_50

中文翻译如下,

  • Oracle 钱夹是一个用于存储不同类型认证和加密密钥的 PKCS#12 容器。因此,这种钱夹可以用于存储以下信息的一个或多个:
  • Oracle 数据库的 PKI 身份验证凭据
  • 网络加密证书(SSL/TLS)
  • Oracle 高级安全透明数据加密(TDE)的主加密密钥
  • Oracle 数据库安全外部密码存储的密码

说的直白一点,Oracle wallet 可以形象的比喻成我们日常生活中的钱包一样,在钱包里,我们可以放银行卡、身份证、信用卡、公司的员工卡、就餐卡等等。

看了上面的一段英文描述和中文翻译,想必大家对 Oracle wallet 也有所了解。那么到底什么是 Oracle 的 Secure External Password Store(安全外部密码存储)呢?我们再看下面的一段英文描述,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

中文翻译如下,

使用安全外部密码存储,Oracle 将数据库凭据(即用户名和密码)安全地存储在 Oracle 电子钱包中。在启动数据库连接时,Oracle 访问钱包并根据连接字符串读取凭据。由于配置了自动登录,因此无需密码即可打开钱包并读取凭据。只有在电子钱包中添加,更改或删除凭据时才需要密码。

连接字符串在电子钱包中是唯一的。每个连接字符串只能存储一个凭证。同一数据库的不同凭据必须由不同的连接字符串区分。

从上面的中文解读,我们可以得知,安全外部密码存储就是 Oracle 把用户名和密码存放在 Oracle wallet 的一种安全加密形式。

下面我们根据 Oracle 10gR2 官方文档中的 Secure External Password Store 功能来演示和操作,最终实现无密码登录数据库。

虽然说,使用 wallet 的图形界面 (在 command line interface 下 输入 owm 命令可以打开) 可以极大的简化管理密码证书,至于为什么不能用 owm(oracle wallet manager)来创建和管理 wallet 的外部密码存储,而是使用 mkstore 命令? 以下是摘自 Oracle 官方文档的一段描述:

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

一般来说,用户 (包括应用程序、批处理任务和脚本) 都是通过一个标准的数据库连接字符串 (database_connect_string) 的连接语句 (connect statement) 来连接到 Oracle 数据库的。这些字符串里包括用户名、密码和网络服务名,或者是在 tnsnames.ora 文件当中列出的 TNS 别名,还有另一种连接字符串的形式是主机名: 端口号:sid(这种形式在应用程序连接到 Oracle 数据库当中随处可见)。

比如,下面这样的连接形式:

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中 ORASALES 为 TNS 别名,ourhost37:1527:DB17 为主机名: 端口号:sid。

然而,如果客户端配置了安全外部密码存储的话,就可以使用下面的连接语法来连接到数据库,而不需要指定用户名和密码。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

在这种情况下,数据库证书、用户名和密码是安全地存储在创建的 Oracle 钱夹里,由于 wallet 的自动登录特性 (auto login) 是打开的,也就是说,一旦创建了 wallet 以后是自动打开的,所以不需要密码去打开 wallet。在这个 wallet 里有证书,而用来连接数据库的用户名和密码的信息就保存在这个证书里。

接下来,我们就开始使用外部密码存储来配置 Oracle 的客户端。

1、先查看一下 Oracle 软件默认的 wallet 目录所在的位置和状态

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

从上图可以看出,wallet 的类型是以文件形式存在,而且默认的 wallet 就是位于 $ORACLE_BASE/admin/$ORACLE_SID/wallet 目录,状态为关闭。那么,我们再去相应的位置查看一下 wallet 目录是否存在,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

从上图可以得知,wallet 目录不存在,因为我们从来没有创建过 wallet,它的状态应该就是 closed,所以我们在用 mkstore 命令 (前面在说不能用 owm 创建 wallet 时提到过) 创建 wallet 之前,必须先创建一个存在的 wallet 目录。这里为了安全起见,也为了防止将 wallet 目录误删除,我们不把 wallet 目录放在刚才用 v$encryption_wallet 视图查出的位置,即 $ORACLE_BASE/admin/$ORACLE_SID 下,而是放到 $ORACLE_HOME/owm(因为 $ORACLE_HOME 是 Oracle 软件所在目录,而且我们也不允许去改动这里的目录和文件)。

下面进行创建 wallet 目录,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

2、在 Oracle 客户端开启 external password store(外部密码存储)。

(1)使用 mkstore 命令先创建一个 wallet,命令语法来自官方文档

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

wallet_location 参数指定为我们刚才创建的 wallet 目录

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

上面提示,要给 wallet 输入一个密码(在 wallet 打开时需要输入,在创建完 wallet 以后,Oracle 会自动打开),这里输入 Oracle123(输入的密码不回显哦),再输入一遍(同样不回显,如果 2 次输入的不一样,Oracle 会提示重新输入的)。

那么,我们到 wallet 目录下面查看一下是生成了什么文件。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中 cwallet.sso 文件是用于保存 wallet 是否自动登录的信息,ewallet.p12 文件是用来保存相关的证书信息,而我们要使用的用户名和密码的信息就保存在证书里。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-02/140597p2.htm

(2)使用 mkstore 命令来给刚才创建的 wallet 创建证书,命令语法来自官方文档

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中带 <> 的参数,官方文档已经解释的很清楚了,我们再描述一下。

wallet_location:wallet 目录所在位

db_connect_string:文件 tnsname.ora 中的 TNS 别名

tnsnames.ora:存放 Oracle 数据库连接字符串的文件,也是 Oracle 约定俗成的文件,从 Oracle 诞生起一直沿用到今,可见它的重要性不言而喻。在 Linux 系统下,位于 $ORACLE_HOME/network/admin 目录

username:Oracle 数据库要连接的用户名

password:Oracle 连接用户要输入的密码

为了不和 Oracle 原先在 tnsnames.ora 文件中创建的 TNS 别名有所关联,我们再单独创建一个。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中 BASE 是我们刚才新建的 TNS 别名,而 YSYKTEST 是原先存在的 TNS 别名。

现在开始用 mkstore 命令创建 wallet 的证书,见下图

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

在创建证书时,需要输入 wallet 的密码,就第 1 步创建 wallet 时输入的密码。

其中,base 是刚刚创建的 TNS 别名,而且用户名和密码一定要输入正确,否则即使创建成功,一会儿也连不上 Oracle 数据库。

其实用 mkstore 命令创建 wallet 的证书时,也可以不将用户的密码写在命令行中,而是根据命令提示进行输入(输入的密码不回显),见下图操作:

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中,前两次输入的密码为用户 szd_base_v2 的密码 ysyktest,第三次输入的密码为 wallet 的密码 Oracle123。

上面是创建了 wallet 的证书,为了让 Oracle 能够使用 wallet,还必须在 sqlnet.ora 文件 (和 tnsnames.ora 一样,也是位于 $ORACLE_HOME/network/admin 目录) 中指定 WALLET_LOCATION 参数和 SQLNET.WALLET_OVERRIDE 参数。下面进入第 3 步,

(3)在 sqlnet.ora 文件中增加 WALLET_LOCATION 参数和 SQLNET.WALLET_OVERRIDE 参数,参考语法来自官方文档

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

WALLET_LOCATION = (SOURCE = ( METHOD = FILE)(METHOD_DATA = ( DIRECTORY = /private/ora102/network/admin) ) )

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中,WALLET_LOCATION 参数当中 DIRECTORY 的取值为 wallet 目录。下面在 sqlnet.ora 文件中增加这 2 个参数,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

进入 $ORACLE_HOME/network/admin 目录,发现没有 sqlnet.ora 文件,可能是没有配置 sqlnet.ora 文件。那么我们在图形界面下,用 netca 命令生成 sqlnet.ora 文件,然后再增加那 2 个参数。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

选择第 2 个单选按钮,命名方法配置,进入下一步

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

将上图中的 Local Naming 加到右边空白窗格,最后点 finish。那么,此时在 $ORACLE_HOME/network/admin 目录下就会生成 sqlnet.ora 文件。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

sqlnet.ora 文件刚创建以后,里面的内容只有下面几行,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

现在添加 WALLET_LOCATION 和 SQLNET.WALLET_OVERRIDE 这 2 个参数,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

现在,Oracle 客户端的安全外部密码存储已经配置完毕。

为了简化操作步骤,也可以将操作步骤 (1) 和(2)合为一步,直接创建 wallet 及其证书,如下图所示:

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中,前两次输入的密码为 wallet 本身的密码,这里输入 Oracle123,后两次输入的密码为用户 szd_base_v2 的密码 ysyktest。

现在,我们尝试去用 base 的连接串去连接 Oracle 数据库,查看其登录用户为 szd_base_v2,这样就达到了不用输密码登录数据库的目的。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

那么,用 szd_base_v2 用户去连接 Oracle 数据库,也是一样的效果。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

现在我们看一下视图 v$encryption_wallet 的内容有什么变化,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

下面是没有使用 Security External Password Store 之前,视图 v$encryption_wallet 的内容(前面在创建 wallet 之前也提到过,呵呵)

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

通过上面 2 图对比,我们不难发现,Oracle 现在使用了我们刚才创建的 wallet,并且该 wallet 的状态为打开且正在使用。

如果用户 szd_base_v2 的密码进行了更改,也需要把 wallet 里的证书信息进行更改,否则证书里还是存放旧密码的信息,在连接 Oracle 数据库的时候就会报错。下面将用户 szd_base_v2 的密码改为 ysykbase,再用 sqlplus /@base 登录,看有什么报错。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

现在,我们用 mkstore 命令将 wallet 里的证书进行更改,然后再用 sqlplus /@base 登录,就会正常连接。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中,前两次输入的密码为刚刚更改的用户 szd_base_v2 的密码,第三次输入的密码为 wallet 的密码。

除了用 sqlplus 直接登录 Oracle 数据库以外,在导入导出数据和一些对数据库日常维护的 SHELL 脚本中也可以使用,而且不会暴露明文密码,可以消除一定的安全隐患。例如,下面的 1 个 expdp 脚本和 1 个 SHELL 脚本。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

至此,用 Oracle 的 Secure External Password Store 功能实现无密码登录数据库 演示完毕。

参考网址:

官方文档 http://docs.oracle.com/cd/B19306_01/network.102/b14266/cnctslsh.htm#g1033548

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140597.htm

在今年国内很多用户的 Oracle 数据库突然遭到比特币勒索,从这一方面来说,数据库的安全,大家没有引起足够的重视。其实不难发现,我们在生产环境中使用的 Oracle 数据库确实存在着很多安全隐患和安全风险。Oracle 在数据库安全方面的解决方案也有很多,比如 Oracle 审计与数据库防火墙 (AVDF) 产品、Oracle 的透明数据加密功能 (KDE) 和 Oralce Wallet(也称 Oracle 钱夹)加密用户的密码等等。

如果需要从 SHELL 脚本来连接到 Oracle 数据库,那么这些脚本包含数据库连接详细信息,这可能是一个主要的安全问题。一个解决方案是使用操作系统身份验证,但 Oracle 10g 第 2 版提供了使用安全外部密码存储的功能。其中 Oracle 登录证书存储在客户端 Oracle 电子钱包中,这样的话,在 SHELL 脚本里就可以使用“/ @ db_alias”这样的语法来连接。这对于用脚本登录数据库进行操作来说是非常有用的,尤其对于企业安全要求很高,不希望用户名和密码明文存在配置文件中,而且对于密码的维护是极为方便的,比如把 wallet 放在指定路径下,当修改密码时,只需统一覆盖 wallet 即可。

今天我和大家分享一下,如何使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库,以此不将明文密码暴露在生产环境当中。

那么,Oracle 是如何通过安全外部密码存储 (Secure External Password Store) 来达到无密码登录数据库呢? 我们来说,连接到数据库的密码证书是存储在 Oracle wallet 里,这个 wallet(钱夹)是一个用来保存认证和签名证书的一种安全软件容器。这种钱包使用可以简化依靠密码凭据连接到数据库的大规模部署。配置此功能时,应用程序代码,批处理作业和脚本不再需要嵌入的用户名和密码。风险降低,因为这样的密码不再以明确的方式暴露,并且当用户名或密码改变时,密码管理策略更容易实施,而不改变应用程序代码。

因为用“安全外部密码存储”这种方式所存储的密码密文信息是存储在 Oracle wallet 里的,那么我们先介绍一下,什么是 Oracle wallet 以及它里面可以存储一些什么信息?请看下面的一段英文描述,wKioL1icdimAJizaAABw-YOoEGs541.png-wh_50

中文翻译如下,

  • Oracle 钱夹是一个用于存储不同类型认证和加密密钥的 PKCS#12 容器。因此,这种钱夹可以用于存储以下信息的一个或多个:
  • Oracle 数据库的 PKI 身份验证凭据
  • 网络加密证书(SSL/TLS)
  • Oracle 高级安全透明数据加密(TDE)的主加密密钥
  • Oracle 数据库安全外部密码存储的密码

说的直白一点,Oracle wallet 可以形象的比喻成我们日常生活中的钱包一样,在钱包里,我们可以放银行卡、身份证、信用卡、公司的员工卡、就餐卡等等。

看了上面的一段英文描述和中文翻译,想必大家对 Oracle wallet 也有所了解。那么到底什么是 Oracle 的 Secure External Password Store(安全外部密码存储)呢?我们再看下面的一段英文描述,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

中文翻译如下,

使用安全外部密码存储,Oracle 将数据库凭据(即用户名和密码)安全地存储在 Oracle 电子钱包中。在启动数据库连接时,Oracle 访问钱包并根据连接字符串读取凭据。由于配置了自动登录,因此无需密码即可打开钱包并读取凭据。只有在电子钱包中添加,更改或删除凭据时才需要密码。

连接字符串在电子钱包中是唯一的。每个连接字符串只能存储一个凭证。同一数据库的不同凭据必须由不同的连接字符串区分。

从上面的中文解读,我们可以得知,安全外部密码存储就是 Oracle 把用户名和密码存放在 Oracle wallet 的一种安全加密形式。

下面我们根据 Oracle 10gR2 官方文档中的 Secure External Password Store 功能来演示和操作,最终实现无密码登录数据库。

虽然说,使用 wallet 的图形界面 (在 command line interface 下 输入 owm 命令可以打开) 可以极大的简化管理密码证书,至于为什么不能用 owm(oracle wallet manager)来创建和管理 wallet 的外部密码存储,而是使用 mkstore 命令? 以下是摘自 Oracle 官方文档的一段描述:

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

一般来说,用户 (包括应用程序、批处理任务和脚本) 都是通过一个标准的数据库连接字符串 (database_connect_string) 的连接语句 (connect statement) 来连接到 Oracle 数据库的。这些字符串里包括用户名、密码和网络服务名,或者是在 tnsnames.ora 文件当中列出的 TNS 别名,还有另一种连接字符串的形式是主机名: 端口号:sid(这种形式在应用程序连接到 Oracle 数据库当中随处可见)。

比如,下面这样的连接形式:

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中 ORASALES 为 TNS 别名,ourhost37:1527:DB17 为主机名: 端口号:sid。

然而,如果客户端配置了安全外部密码存储的话,就可以使用下面的连接语法来连接到数据库,而不需要指定用户名和密码。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

在这种情况下,数据库证书、用户名和密码是安全地存储在创建的 Oracle 钱夹里,由于 wallet 的自动登录特性 (auto login) 是打开的,也就是说,一旦创建了 wallet 以后是自动打开的,所以不需要密码去打开 wallet。在这个 wallet 里有证书,而用来连接数据库的用户名和密码的信息就保存在这个证书里。

接下来,我们就开始使用外部密码存储来配置 Oracle 的客户端。

1、先查看一下 Oracle 软件默认的 wallet 目录所在的位置和状态

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

从上图可以看出,wallet 的类型是以文件形式存在,而且默认的 wallet 就是位于 $ORACLE_BASE/admin/$ORACLE_SID/wallet 目录,状态为关闭。那么,我们再去相应的位置查看一下 wallet 目录是否存在,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

从上图可以得知,wallet 目录不存在,因为我们从来没有创建过 wallet,它的状态应该就是 closed,所以我们在用 mkstore 命令 (前面在说不能用 owm 创建 wallet 时提到过) 创建 wallet 之前,必须先创建一个存在的 wallet 目录。这里为了安全起见,也为了防止将 wallet 目录误删除,我们不把 wallet 目录放在刚才用 v$encryption_wallet 视图查出的位置,即 $ORACLE_BASE/admin/$ORACLE_SID 下,而是放到 $ORACLE_HOME/owm(因为 $ORACLE_HOME 是 Oracle 软件所在目录,而且我们也不允许去改动这里的目录和文件)。

下面进行创建 wallet 目录,

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

2、在 Oracle 客户端开启 external password store(外部密码存储)。

(1)使用 mkstore 命令先创建一个 wallet,命令语法来自官方文档

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

wallet_location 参数指定为我们刚才创建的 wallet 目录

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

上面提示,要给 wallet 输入一个密码(在 wallet 打开时需要输入,在创建完 wallet 以后,Oracle 会自动打开),这里输入 Oracle123(输入的密码不回显哦),再输入一遍(同样不回显,如果 2 次输入的不一样,Oracle 会提示重新输入的)。

那么,我们到 wallet 目录下面查看一下是生成了什么文件。

使用 Oracle 的 Security External Password Store 功能实现无密码登录数据库

其中 cwallet.sso 文件是用于保存 wallet 是否自动登录的信息,ewallet.p12 文件是用来保存相关的证书信息,而我们要使用的用户名和密码的信息就保存在证书里。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-02/140597p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计8789字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19352
评论数
4
阅读量
8051785
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...