绿联云NAS一些探索(1):SSH、包管理器探测、安装docker-compose等

绿联云NAS一些探索
SSH、包管理器探测、安装docker-compose等

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139510912
HuaWei:https://bbs.huaweicloud.com/blogs/428627

【警告】:登入系统执行相关命令具有损坏你的NAS系统的风险,如果读者朋友没有那个技术和能力,就不要学我在本文中的操作。由于绿联云又多个版本,本文的方案未必适合于所有版本,读者必须深刻认识版本差异可能会导致各种无法预估的异常风险。本文仅仅作为技术方案指导,读者进行任何本文中提到的相关操作前应该明确相关风险并自行评估,本文不对任何读者相关操作导致的灾难性后果负责。



下一节:《 绿联云NAS一些探索(2):部署GitLab Runner

在这里插入图片描述


1. 关于:为什么

很久前买了一个绿联云NAS,其功能实在有限,不仅有各种漏洞,很多问题在绿联社区提出也得不到解决。很多功能,虽然在UI上看起来有,但是又不完整。比如安装了Docker却不能手动执行相关命令,也没有Docker Compose,更不要说绿联云的Docker没有做NAT,离开了绿联NAS所在的网络就无法访问——简直是,罄竹难书。

于是产生了SSH到NAS进行研究的想法,这篇文章便是初探。

2. 远程调试功能

远程调试功能是一个绿联云提供的

开启远程调试功能只能在管理员用户上运行,且需要获得手机验证码,一旦验证成功,就可以获取一个

在这里插入图片描述

3. SSH到绿联云NAS

3.1 端口

绿联云使用的是922端口,而不是22端口,这一点需要注意。如果你在

3.2 密码

密码是一个3天有效的临时密码,也就是“开启远程调试”时的验证码。

3.3 SSH命令

在了解账户和密码后,你可以使用下面的命令登陆:

ssh root@192.168.31.12 -p 922

4. 探测包管理器

处于猜测,最常见的就是apt-getyum这两种包管理器,不过很快你就会发现,绿联云NAS上,根本就没有这两个包管理器,为了不再继续手动尝试浪费时间,可以实现一个脚本,将常用的包管理器罗列进去。

这里我贡献一个包管理器探测脚本,我常使用它来测试不同linux发行版本上所使用的包管理器是什么。

#!/bin/bash

# 检查命令是否存在并打印软件包管理器名称
check_command() {
    if command -v $1 &> /dev/null; then
        echo "$2 is available"
        exit 0
    fi
}

# Check for common package managers
check_command apt "APT (Debian, Ubuntu)"
check_command apt-get "APT (Debian, Ubuntu)"
check_command yum "YUM (CentOS, RHEL)"
check_command dnf "DNF (Fedora, RHEL 8+)"
check_command rpm "RPM (CentOS, RHEL, Fedora, SUSE)"
check_command pacman "Pacman (Arch Linux)"
check_command zypper "Zypper (openSUSE, SLES)"
check_command eopkg "EOPKG (Solus)"
check_command snap "Snap (Cross-distribution)"
check_command flatpak "Flatpak (Cross-distribution)"
check_command opkg "OPKG (OpenWrt, embedded systems)"
check_command pkg "PKG (FreeBSD)"
check_command apk "APK (Alpine Linux)"
check_command xbps-install "XBPS (Void Linux)"
check_command swupd "swupd (Clear Linux)"
check_command pkgutil "pkgutil (Solaris, Illumos)"
check_command pkg_add "pkg_add (OpenBSD)"
check_command yast "YaST (SUSE Linux Enterprise)"
check_command equo "Equo (Sabayon Linux)"
check_command emerge "Portage (Gentoo)"
check_command nix-env "Nix (NixOS)"
check_command guix "Guix (GuixSD)"
check_command ups "UPS (Unified Package System, Oracle Solaris)"

# 如果没有找到公共包管理器
echo "No common package manager found"
exit 1

一般来说,系统上有精简版编辑器vi,可以使用它编辑上面的脚本到文件:

vi detect_pkg_manager.sh

复制粘贴脚本后,编辑保存退出。接下来,赋予脚本执行权限:

chmod +x detect_pkg_manager.sh

现在,运行脚本:

./detect_pkg_manager.sh

运行后可见输出为:

OPKG (OpenWrt, embedded systems) is available

在这里插入图片描述
因此,此系统上所使用的包管理器为:OPKG

5. OPKG包管理器

5.1 OPKG是什么

OPKG包管理器是一个相对少用的包管理器。这里我已经查阅和准备好了它的资料。

OPKG是一个轻量级的包管理系统,因为它主要用于嵌入式Linux系统,如OpenWrt、LEDE等。它的设计目标是提供一个简单、快速、可靠的包管理工具,适用于存储空间和系统资源有限的设备。OPKG的主要特点包括:

  1. 轻量级:OPKG的二进制文件和数据库占用空间小,适合嵌入式设备。
  2. 依赖管理:OPKG可以自动处理软件包之间的依赖关系,确保安装和升级的顺利进行。
  3. 多架构支持:OPKG支持多种CPU架构,如ARM、MIPS、x86等。
  4. 远程仓库:OPKG可以从远程仓库下载和安装软件包,方便系统的更新和维护。
  5. 包签名:OPKG支持包签名验证,提高系统安全性。

5.2 OPKG的特点

优点

  • 轻量级,适合嵌入式设备。
  • 自动处理依赖关系,简化软件包管理。
  • 支持多种CPU架构。
  • 可以从远程仓库获取软件包。

缺点

  • 功能相对简单,不如APT、YUM等包管理器强大。
  • 软件包的可用性和更新频率取决于源的维护者。

5.3 OPKG的配置文件

OPKG的主要配置文件是/etc/opkg.conf,其中包含了以下配置项:
src/gz :定义软件包源,是源的名称,是源的URL。
dest :定义软件包的安装目录,是目标的名称, 是目标的路径。
option :设置OPKG的选项,如option verbose-wget启用详细的wget输出。

5.4 OPKG的常用命令

更新本地的软件包列表

opkg update

升级已安装的软件包

opkg upgrade <pkgs>

安装指定的软件包

opkg install <package>

卸载指定的软件包

opkg remove <package>

列出可用的软件包

opkg list

列出已安装的软件包

opkg list-installed

列出软件包中包含的文件

opkg files <package>

搜索软件包

opkg search <keyword>

显示软件包的详细信息

opkg info <package>

6. 部署Docker Compose

我们希望能够提取版本号然后安装compose,不过在这个阉割系统里面还有一些麻烦。系统的已经安装的grep命令是 BusyBox 版本的 grep,它不支持 -P 选项。另外/usr/local/bin 目录也不存在。你可以参考我下面的方法来安装:

首先,确保 /usr/local/bin 目录存在:

mkdir -p /usr/local/bin

使用 sed 来提取最新的 Docker Compose 版本号:

LATEST_VERSION=$(wget -qO- https://api.github.com/repos/docker/compose/releases/latest | sed -n 's/.*"tag_name": "\(.*\)",/\1/p')

然后从github下载对应的版本来安装:

wget "https://github.com/docker/compose/releases/download/${LATEST_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose

下载完成后,赋予 Docker Compose 二进制文件执行权限:

chmod +x /usr/local/bin/docker-compose

验证 Docker Compose 是否安装成功:

/usr/local/bin/docker-compose --version

如果你看到显示版本号,说明安装成功:

在这里插入图片描述
至此,Docker Compose安装完成,你可以开始搞事情了。

另外,上面的步骤也可以合并为一个完整的脚本:

#!/bin/bash

# 更新软件包列表
opkg update

# 安装 Docker
opkg install docker

# 创建必要的目录
mkdir -p /usr/local/bin

# 下载 Docker Compose
LATEST_VERSION=$(wget -qO- https://api.github.com/repos/docker/compose/releases/latest | sed -n 's/.*"tag_name": "\(.*\)",/\1/p')
wget "https://github.com/docker/compose/releases/download/${LATEST_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose

# 赋予执行权限
chmod +x /usr/local/bin/docker-compose

# 验证安装
/usr/local/bin/docker-compose --version

将上述脚本保存为 install_docker_compose.sh,然后运行:

chmod +x install_docker_compose.sh
./install_docker_compose.sh

通过这些步骤,你应该能够在使用 opkg 包管理器的系统上成功安装 Docker Compose。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/686244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git报错解决方法error: remote origin already exists.

有时想添加远程本地仓库和远程公司仓库&#xff0c;但git remote的时候发现关联的是一样的&#xff0c;你再去关联时会报错&#xff0c;这时候你应该清除你想关联的远程仓库&#xff0c;再次连接就可以了 下面这个错误提示是远程源已经存在 现在你可以这样做 1、查看远程库的信…

Jenkins工作流程原理

持续集成&#xff1a;自动部署打包发布代码 Jenkins工作流程 项目已经基于Jenkins实现了持续集成&#xff0c;每当我们push代码时&#xff0c;就会触发项目完成自动编译和打包。而需要运行某个微服务时&#xff0c;我们只需要经过两步&#xff1a; 第一步&#xff0c;访问je…

双网卡配置IP和路由总结

1.在网络适配器属性IPv4中设置默认网关&#xff08;记网关地址为A&#xff09;&#xff0c;将会在本地路由标中新增一条记录&#xff1a; 网络号子网掩码网关地址0.0.0.00.0.0.0A 2.如果有两个网卡&#xff08;假设一个连接内网&#xff0c;一个连接互联网&#xff09;&#…

muse-ui的select下拉框没有出现在底部

这个是muse-ui的官网文档 Muse-UI 如果进不去的&#xff0c;可以试着翻墙用外网看看&#xff0c;这里很奇怪&#xff0c;我前几天进不去&#xff0c;然后翻墙可以进&#xff0c;这两天不翻墙也能正常进去了 说一下问题&#xff0c;就是当我们使用 muse-ui的下拉框的时候&…

碰撞问题和单调栈的结合-735. 小行星碰撞【有小坑】

题目链接及描述 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/asteroid-collision/description/?envTypestudy-plan…

SpringBoot+Vue在线考试答题系统【附:资料➕文档】

前言&#xff1a;我是源码分享交流Coding&#xff0c;专注JavaVue领域&#xff0c;专业提供程序设计开发、源码分享、 技术指导讲解、各类项目免费分享&#xff0c;定制和毕业设计服务&#xff01; 免费获取方式--->>文章末尾处&#xff01; 项目介绍016&#xff1a; 本…

ubuntu20.04 安装OpenSSL 1.0.2o (借助腾讯AI完全OK)

文章目录 ubuntu20.04安装openssl-1.0.2o安装后看不到版本信息如何解决 腾讯云 AI 代码助手: 要确认 Linux 开发板的 CPU 是多少位的&#xff0c;可以使用以下方法&#xff1a; 打开终端。输入以下命令&#xff0c;然后按回车键&#xff1a; cat /proc/cpuinfo这将显示关于 CP…

李廉洋:6.6黄金原油怎么看?今日行情分析及最新策略。

黄金消息面分析&#xff1a;美指走强未能抑制金价升势。黄金价格大幅上涨&#xff0c;在美国公布喜忧参半的经济数据后&#xff0c;金价与周二的走势发生180度大转弯&#xff0c;这些数据可能保证美联储设定的借贷成本降低。美国10年期基准国债收益率下跌3个基点&#xff0c;至…

PCA算法

PCA算法 原创 小王搬运工 时序课堂 2024-06-06 19:16 四川 1. PCA算法 PCA算法称为主成分分析&#xff0c;是一种无监督学习算法&#xff0c;主要用于数据降维和特征提取。 PCA是一种数据降维模型&#xff0c;它的基本模型是通过线性变换将数据转换到新的空间&#xff0c;这…

[经验] 腰果树的外观特征和特点是什么 #媒体#微信

腰果树的外观特征和特点是什么 腰果树是一种生长在热带和亚热带地区的落叶乔木&#xff0c;其叶子为互生&#xff0c;倒披针形或披针形&#xff0c;整个树枝条生长勃勃&#xff0c;长势喜人。 腰果树的树皮是灰色或深褐色的&#xff0c;有着纵向裂缝&#xff0c;树皮粗糙而有光…

解决 ubuntu 空间占满,删除文件后磁盘没有释放 的问题

今天打开网站页面发现显示不正常&#xff0c;很多资源文件无法正常展示。F12页面后&#xff0c;发现报的HTTPS错误&#xff0c;随后感觉可能是nginx的问题&#xff0c;就直接重启了nginx&#xff0c;nginx重启后发现问题依旧。此时查看nginx日志无任何报错。 心里想着看看磁盘空…

压力测试-性能指标-Jmeter使用-压力测试报告

文章目录 1.压测目的2.性能指标3.Jmeter3.1Jmeter使用3.1.1 运行Jmeter3.1.2 添加线程组3.1.3设置HTTP请求3.1.4 设置监视器 3.2 查看Jmeter压测结果3.2.1 查看结果树3.2.2 查看汇总报告3.2.3 查看聚合报告3.2.4 查看汇总图 1.压测目的 内存泄漏&#xff1a;OOM&#xff0c;重…

linux 下修改屏幕分辨率

在使用麒麟虚拟机时&#xff0c;不知道咋回事&#xff0c;会自动改变分辨率。 使用界面设置分辨率选项修改时&#xff0c;下面的保存修改按钮显示不出来&#xff0c;无法完成设置。 所以需要使用命令行修改一下分辨率&#xff0c;修改命令如下所示&#xff1a; 1、执行xrand…

使用jspdf将html页面生成pdf文件

1、下载jspdf插件包 npm i jspdf2、在utils文件夹下创建一个单独的文件&#xff08;名字无具体要求&#xff09; // 页面导出为pdf格式&#xff0c;title表示为下载的标题&#xff0c;html表示要下载的页面 import html2Canvas from html2canvas // 不用单独去下载这个包&…

内网安全--隧道技术代理技术

注:本文仅做技术交流,请勿非法破坏... 目录 项目: 1-Ngrok 用法 2-Frp 用法 3-Nps 用法 4-Spp 用法 工具: windows下: Proxifier(推荐~) Sockscap ccproxy Linux下: Proxychains 用法 http://t.csdnimg.cn/88Ew7 隧道技术&#xff1a;解决不出网协议上线的问…

SFML 小demo

文章目录 项目搭建代码实现main.cppobject.hsnake.hcommon.h 使用 demo 做到最后的话其实就只是验证了以前自己的一个想法&#xff0c;但是没有做成一个真正的游戏&#xff0c;可以算是一个 demo 而已吧&#xff0c;没做游戏的界面和关卡&#xff0c;不过完成了核心显式机制和功…

UE5-人物角色动画蓝图

这里主要从零给角色创建移动的蓝图&#xff0c;包含多种状态 创建 首先在角色骨骼网格体上右键创建动画蓝图 进入&#xff0c;在AnimGraph界面创建一个状态机&#xff08;stateMachine&#xff09; Idle 进入状态机&#xff0c;拉出来创建一个newState&#xff0c;这里命名…

【C++修行之道】类和对象(五)日期类的实现、const成员、取地址及const和取地址操作符重载

目录 一、 日期类的实现 Date.h 1.1 GetMonthDay函数&#xff08;获取某年某月的天数&#xff09; 问&#xff1a;这个函数为什么不和其他的函数一样放在Date.cpp文件中实现呢&#xff1f; 1.2 CheckDate函数&#xff08;检查日期有效性&#xff09;、Print函数&#xff08;…

手机建站介绍

随着科技的不断进步和移动互联网的普及&#xff0c;手机应用已经成为人们生活中最不可或缺的一部分。而手机建站作为一种新兴技术&#xff0c;在这一领域也有着广泛的应用。本文将为大家介绍手机建站的概念、优势和应用。 什么是手机建站&#xff1f; 手机建站是指将传统的网络…

【启明智显彩屏应用】Model3A 7寸触摸屏在真空包装机上的应用解决方案

一、项目背景与需求 随着工业自动化水平的提升&#xff0c;对真空包装机的操作界面和控制精度要求也越来越高。为满足这一需求&#xff0c;我们提出了基于Model3A工业级HMI&#xff08;人机界面&#xff09;芯片方案的7寸触摸屏解决方案&#xff0c;旨在提高真空包装机的操作便…