[数据中心] 群晖NAS-使用指南

0 概述

引言

  • 搭建个人知识系统,是如今信息大爆炸、人工智能革命技术时代保持职业竞争力的关键之一。
  • 为此,前段时间咬牙买下了一台NAS(群晖NAS423+)作为个人的数据存储基础底座。
  • 本文用于总结 群晖NAS 核心功能、常用功能的经验技巧。
  • 本文非恰饭广告,纯属个人使用总结笔记。

当然,群晖公司如有意给钱钱,也很乐意。

  • 如无特殊说明,本文基于 群晖 NAS D423+ (2024版) 进行试验。

简介:群晖 NAS

  • 群晖科技/Synology

群晖科技( Synology )成立于2000年1月,是中国台湾一家网络附加储存(NAS)的服务商同时也是世界最大的网络附加存储(NAS)厂商,总部位于中国台北市。
群晖专注于网络存储解决方案的研发和制造。群晖的NAS产品被广泛用于家庭和企业环境中,提供了可靠、高性能、易于管理的存储解决方案。
群晖科技(Synology )自始便专注于打造高效能、可靠、功能丰富且绿色环保的 NAS 服务器,是全球少数几家以单纯的提供网络存储解决方案获得世界认同的华人企业。

  • NAS : 网络附属存储Network-Attached StorageNAS)采用网络技术,为您提供一个位置来集中存储数据。而群晖 NAS 则在此基础上更进一步,其中丰富的功能让您能更自由且安全地存取、备份及分享文件。

一言以蔽之,NAS是侧重数据存储专用计算机设备

  • 群晖 NAS:
    是一种基于网络连接的存储设备,它提供了一个集中管理和共享文件的平台,使用户能够轻松地存储、备份、共享和访问数据。
    群晖NAS的核心是一台硬件设备,它包含一个或多个硬盘驱动器插槽,并且配备了处理器、内存和操作系统等组件。

群晖 NAS 应用场景

群晖 NAS 的 WEB UI(访问入口界面)

专用操作系统:DSM(Disk Station Manager)

DSM 简介

  • DiskStation Manager(DSM)

是群晖NAS的专用操作系统
它是一个基于Linux的操作系统,具有直观的用户界面和丰富的功能。
DSM提供了许多功能,包括文件共享、数据备份、远程访问、多媒体服务、虚拟化、容器化、数据安全和应用程序支持等。
用户可以通过Web浏览器移动设备(APP)上的应用程序管理和配置NAS设备。

DSM与Debian的渊源

  • 群晖 DSM 操作系统,基于 Linux 发行版 Debian 定制开发
  • 这意味着它在保留了Debian的核心功能和稳定性的同时,根据群晖NAS的需求进行了优化和精简。
  • DSM系统支持x86和‌ARM两种架构,具有嵌入式Linux的特点,但去除了不必要的组件,以提供更轻量级和高效的性能。
  • 此外,DSM系统还集成了许多实用的功能和工具,使其成为一个功能强大的NAS操作系统。
  • 群晖DSM操作系统的优势在于其直观的图形界面、丰富的应用程序商店、定期的软件更新和长期支持。
  • 它提供了一个易于使用的界面,使得设置和管理NAS变得简单快捷。
  • 同时,DSM还提供了广泛的应用程序商店,用户可以在其中找到各种实用的套件和工具,满足不同的需求。
  • 此外,群晖会定期发布软件更新,确保系统的稳定性和安全性。

各品牌NAS的特点

TOP1:群晖/Synology NAS

Top1 的 NAS 大品牌

  • 首先,它提供了可靠的数据存储和保护机制,支持多种RAID级别(如RAID 0、RAID1、RAID 5、SHR、SHR2等),以及热插拔硬盘数据冗余备份
  • 其次,群晖NAS具有出色的性能,能够处理高速数据传输多用户访问流媒体等需求。
  • 此外,群晖提供了丰富的应用程序生态系统,用户可以通过套件中心安装和运行各种应用程序,如文件同步、多媒体服务器、下载器、监控系统等,以满足各种需求。

  • 特点: 群晖的NAS以其易用性、功能丰富和可靠性而闻名。

其操作系统DSM(DiskStation Manager)提供了直观的用户界面和丰富的应用程序生态系统。群晖NAS注重用户体验和数据保护,提供了多种RAID级别、数据备份和快照等功能。

  • 适用领域: 家庭用户(尤其是不咋懂计算机的、或者想省心一点)、小型至中型企业等。

TOP2:威联通/QNAP NAS

  • 特点: 威联通的NAS以其强大的性能和可扩展性而著名。它们采用高性能的硬件组件,支持多用户访问、高速数据传输和复杂任务处理。威联通NAS具有丰富的功能和应用程序,包括多媒体服务、虚拟化、容器化和监控等。

  • 适用领域: 专业用户(有计算机实践基础的、或不怕折腾的)、专业媒体创作者、中型至大型企业等。

新晋大牌:华为 NAS

  • 优势:天然接入鸿蒙生态,与华为系物联网设备天然一体、易用性/可靠性
  • 缺点:产品成熟度、套件丰富度

其他:铁威马/Terra Master、绿联/UGREEN、极空间(略,且不推荐)

1 开机安装篇

硬件架构:CPU

群晖官网 不同款型NAS产品的CPU硬件信息一览 : https://kb.synology.cn/zh-cn/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have

  • 查看 CPU 架构:x86_64
$ uname -a
sh-4.4$ uname -a
Linux My-Data-Center 4.4.302+ #69057 SMP Fri Jan 12 17:02:28 CST 2024 x86_64 GNU/Linux synology_geminilake_423+
  • 查看 CPU 核数 : 4
$ cat /proc/cpuinfo | grep 'model name'
model name	: Intel(R) Celeron(R) J4125 CPU @ 2.00GHz
model name	: Intel(R) Celeron(R) J4125 CPU @ 2.00GHz
model name	: Intel(R) Celeron(R) J4125 CPU @ 2.00GHz
model name	: Intel(R) Celeron(R) J4125 CPU @ 2.00GHz

$ nproc
4

存储池篇

  • 存储器管理与存储池

参见: https://kb.synology.cn/zh-cn/DSM/help/DSM/StorageManager/StorageManager_desc?version=7

  • RAID 计算器
  • 磁盘阵列与SHR选型的经验分享
  • NAS服务器的目录结构
xxxx-dcdc@My-Data-Center:~$ df -hT
Filesystem             Type      Size  Used Avail Use% Mounted on
/dev/md0               ext4      7.9G  1.4G  6.4G  18% /
devtmpfs               devtmpfs  873M     0  873M   0% /dev
tmpfs                  tmpfs     877M   60K  877M   1% /dev/shm
tmpfs                  tmpfs     877M   22M  856M   3% /run
tmpfs                  tmpfs     877M     0  877M   0% /sys/fs/cgroup
tmpfs                  tmpfs     877M  1.8M  875M   1% /tmp
/dev/mapper/cachedev_0 btrfs      11T  2.9G   11T   1% /volume1
/dev/mapper/cachedev_0 btrfs      11T  2.9G   11T   1% /volume1/@appdata/ContainerManager/all_shares/docker
/dev/mapper/cachedev_0 btrfs      11T  2.9G   11T   1% /volume1/@appdata/ContainerManager/all_shares/homes

xxxx-dcdc@My-Data-Center:~$ df -i
Filesystem             Inodes IUsed  IFree IUse% Mounted on
/dev/md0               524288 43853 480435    9% /
devtmpfs               223245   860 222385    1% /dev
tmpfs                  224419     3 224416    1% /dev/shm
tmpfs                  224419  1998 222421    1% /run
tmpfs                  224419    10 224409    1% /sys/fs/cgroup
tmpfs                  224419   218 224201    1% /tmp
/dev/mapper/cachedev_0      0     0      0     - /volume1
/dev/mapper/cachedev_0      0     0      0     - /volume1/@appdata/ContainerManager/all_shares/docker
/dev/mapper/cachedev_0      0     0      0     - /volume1/@appdata/ContainerManager/all_shares/homes

xxxx-dcdc@My-Data-Center:~$ ls /
bin  config  dev  etc  etc.defaults  initrd  lib  lib32  lib64  lost+found  mnt  opt  proc  root  run  sbin  sys  tmp  usr  var  var.defaults  volume1

xxxx-dcdc@My-Data-Center:~$ pwd
/var/services/homes/xxxx-dcdc

xxxx-dcdc@My-Data-Center:~$ ls
demo  @eaDir  ExternalBrain  Photos

xxxx-dcdc@My-Data-Center:~$ ls /volume1/
@appconf  @apphome   @appstore  @database  docker  homes  @SynoDrive              @SynoFinder-log              @synologydrive           @tmp
@appdata  @appshare  @apptemp   @docker    @eaDir  @S2S   @SynoFinder-etc-volume  @SynologyApplicationService  @SynologyDriveShareSync  @userpreference

xxxx-dcdc@My-Data-Center:~$ ls /volume1/docker/
@eaDir  nginx  wps-office

xxxx-dcdc@My-Data-Center:~$ ls /volume1/homes
admin  @eaDir  xxxx-dcdc

网络篇

登录与账户篇

访问终端的方式(汇总)

  • 方式1:浏览器-NAS局域网IP

例如: http://192.168.xx.yy or http://192.168.xx.yy:5000

  • 方式2:浏览器-quickconnect官网
  • 方式3:群晖管家(APP)

主要对象:NAS的系统管理员(关键:基于NAS系统管理员在 synology.com 的注册账户登录)

  • 方式4:群晖助手(APP)

主要对象:NAS的所有用户(关键:基于 quickconnect-id )

创建/启用 QuickConnect

    1. 浏览器输入群晖设备IP,用管理员账号登陆。请进入:控制面板 > 外部访问 > QuickConnect
    1. 勾选启用 QuickConnect 复选框,并键入你的quickconnect-id

启用 SSH 登录

  • 启用/停用SSH登录的操作路径
  • 控制面板-终端机和SNMP-终端机-启动SSH功能
  • 登录方式 by cmd
  • ssh username@host -p 22
  • 键入密码
  • 提权到SUDO权限

推荐: sudo su + su {targetUser}

sudo su :运行sudo命令给su命令提权,运行su命令。
sudo su :运行结果 PWD=/home/用户名(当前用户主目录)

不推荐: sudo -i
原因:此后的一切操作都是基于 root 用户,容易对破坏文件系统、文件目录的原有权限管控,对操作系统造成破坏

sudo -i 直接运行sudo命令加-i参数
sudo -i 运行结果 PWD=/root

3 套件管理机制

套件中心

套件/包管理工具: synopkg

引言

  • 包管理工具

Linux系统大致可分为3类:

  1. RedHat系列:Redhat、Centos、Fedora等。包管理工具:yum
  2. Debian系列:Debian、Ubuntu等。包管理工具:apt-get
  3. 其它。如,群辉DSM系统的包管理工具 : synopkg
  • 查看系统版本
# cat /proc/version
Linux version 4.4.302+ (root@build5) (gcc version 12.2.0 (GCC) ) #69057 SMP Fri Jan 12 17:02:28 CST 2024
  • 群晖包管理工具的使用前提:

需要在命令行中执行, 需要在控制面板->终端机和 SNMP->启动 SSH 功能, 最后使用 ssh 进行远程登陆。
如果需要root权限,登录之后 sudo -i 然后根据提示自己账号的密码获得root权限。

帮助手册

~# synopkg --help
usage: synopkg <command> [...]
 
command:
  start <package>                                                   启动程序包。
  stop <package>                                                   停止包裹。
  restart [--service] <package|searvice>                          重新启动一个程序包一个或多个服务。
  resume <package>                                               启动程序包时不更改其系统启用状态。
                                                                 若程序包被禁用或已处于活动状态,它将不起任何作用。
  pause <package>                                               停止程序包而不更改其系统启用状态。
                                                                 若程序包已处于非活动状态,它将不起任何作用。
  start-depend <service>                                          启动所有程序包取决于特定的服务。
  stop-depend <service>                                          根据特定服务停止所有程序包。
  onoffall start|stop [event] [param]                             启动或停止所有程序包。
  install <spk>                                 Install a package 通过本地spk。
  install_from_server <package> [volume] [user] [beta]            从服务器安装程序包。
  uninstall <package>...                                          卸载一个或多个程序包。
  upgradeall [limitonly] [lang] [user]                            升级所有可升级包。
  chkupgradepkg [lang]                                            从服务器中查找所有可升级的软件包,并根据用户设置决定是否升级。
  checkupdateall [lang] [user]                                    从服务器中查找所有可升级的软件包(首先使用缓存),并根据用户设置决定是否升级。
  status <package>                                               获取已安装程序包的状态。
  is_onoff <package>                                              检查软件包是否已安装并处于活动状态。
  version <package>                                               获取已安装程序包的版本。
  query <spk>                                                     从spk获取包的基本信息。
  list [--name] [--depend-on <package>]                         列出已安装的程序包。
  checkupdate <package> [lang]                                  检查程序包是否可更新。
  show [--beta] [--lang <lang>] <package>                         显示程序包详细信息。
  showall [--beta] [--no-filter] [--lang <lang>]                 显示所有程序包的详细信息。

查看已安装的包

  • 方式1
# ls /var/packages/
ActiveInsight         FileStation  Node.js_v18   PHP8.2        ScsiTarget    Spreadsheet     SynoFinder                  SynologyPhotos
BackupRestoreManager  HybridShare  Node.js_v20   Python2       SecureSignIn  StorageManager  SynologyApplicationService  SynoOnlinePack_v2
ContainerManager      LogCenter    OAuthService  QuickConnect  SMBService    SupportService  SynologyDrive               UniversalViewer
  • 方式2
# synopkg list | grep --ignore-case node.js
# synopkg list | grep -i Node.js
Node.js_v20-20.9.0-1003: Built on Chrome's JavaScript runtime, Node.js has become a widely popular platform for users to easily build fast, scalable network applications.
Node.js_v18-18.18.2-1011: Built on Chrome's JavaScript runtime, Node.js has become a widely popular platform for users to easily build fast, scalable network applications.


# synopkg list
Node.js_v20-20.9.0-1003: Built on Chrome's JavaScript runtime, Node.js has become a widely popular platform for users to easily build fast, scalable network applications.

SMBService-4.15.13-0877: SMB Service is an easy-to-use file service management tool, allowing you to manage general settings related to the SMB/CIFS file sharing service. Through SMB Service, Windows, macOS, and Linux users can access your Synology NAS from the network once you have enabled the SMB service option in Control Panel.

UniversalViewer-1.3.0-0312: Universal Viewer allows you to view different file formats directly on the Synology Drive without having to open each application. Certain packages require Universal Viewer to function fully.

SynologyDrive-3.5.0-26084: Synology Drive Server is a comprehensive solution for file storage, management, sharing, and synchronization. It is equipped with Synology Drive Admin Console for centralized management and monitoring, Synology Drive for file access via web portal, and Synology Drive ShareSync for synchronization across Synology NAS devices.

StorageManager-1.0.0-0017: Storage Manager is a built-in application for managing storage on your Synology NAS. It offers a centralized interface to allocate storage capacity, monitor usage, check your drives' health, and use advanced features such as hot spare drives and SSD cache.

SynoOnlinePack_v2-866: This package is for users to update drive database online

Python2-2.7.18-1004: Python is an interpreted, interactive, and object-oriented programming language suitable for distributed application development, scripting, numeric computing and system testing. With Python, you can develop or integrate your systems more quickly and effectively.

Node.js_v18-18.18.2-1011: Built on Chrome's JavaScript runtime, Node.js has become a widely popular platform for users to easily build fast, scalable network applications.

ActiveInsight-2.2.3-23123: Active Insight is a cloud service that provides better technical support experience with faster troubleshooting. When enabled on multiple of your Synology hosts, it allows you to manage them across locations with a performance monitoring and automated warning system.

SupportService-2.0.1-21035:

LogCenter-1.3.0-1660: Log Center offers an easy solution for gathering and displaying log messages from network devices. It provides you with a centralized log management interface and the flexible search function to help you find the useful information efficiently.

OAuthService-1.1.4-0101: OAuth Service is an open standard protocol for account authorization and authentication. It allows resource owners to authorize third-party access to their server resources without sharing their credentials. The package adopts OAuth 2.0 standard.

BackupRestoreManager-2.5.2-12461: Active Backup for Business Agent (DSM) allows you to back up your entire Synology NAS, including its system configurations, packages, and data to a remote Synology NAS. Before you start to protect your Synology NAS data, install Active Backup for Business on the remote Synology NAS as your backup destination.

FileStation-1.4.1-1559: File Station is the centralized file management tool for your Synology NAS. Through File Station, you can manage and search files/folders, view files of various types, share private files with external users, mount remote folders and virtual drives for access, and do much more!

SynoFinder-1.7.0-0704: Synology Universal Search is a powerful search tool for your Synology NAS. In one search, you can find matched items from photos to notes. You can also index folders to provide precise and prompt search results by filename or file content. With Synology Universal Search, everything on your Synology NAS is just a few clicks away.

QuickConnect-1.0.7-0142: QuickConnect allows client applications to connect to your Synology NAS via the Internet without setting up port forwarding rules. It can also work with Synology-developed packages, such as File Station, Surveillance Station, Synology Drive, Synology Photos, and mobile applications.

PHP8.2-8.2.5-0102: PHP is an open source scripting language which aims to help web developers write dynamically generated web pages efficiently. This language is suitable for web development in that it can be easily embedded into HTML.

SynologyApplicationService-1.7.6-20622: Synology Application Service provides a framework to enrich features and services of Synology packages, including push notifications and profile settings. With Synology Application Service, coherent configurations can be shared across different packages.

SecureSignIn-1.1.5-0362: Secure SignIn Service provides enhanced account security for your DSM. It allows passwordless logins and offers sign-in options in addition to basic 2-factor authentication methods.

ContainerManager-24.0.2-1525: Container Manager is a lightweight virtualization application that gives you the ability to run thousands of containers created by developers from all over the world on DSM. The hugely popular built-in image repository, Docker Hub, allows you to find shared applications from other talented developers.

HybridShare-1.4.1-1512: Hybrid Share is a hybrid cloud solution that integrates cloud storage with multi-site on-premises NAS. It gathers stability, reliability, and flexibility for better collaboration of your workforce. Learn more at: sy.to/hybridshare

Spreadsheet-3.6.2-21321: Synology Office is a collaboration-oriented application for creating documents, spreadsheets and slides in Synology Drive. You can edit files with various built-in tools and exchange ideas with collaborators via interactive comments and the Synology Chat plugin. For confidential content, you can also encrypt files with passwords for extra privacy.

SynologyPhotos-1.6.2-0710: Synology Photos provides a series of smart and flexible features, allowing both photography lovers and home users to manage photos with ease.

ScsiTarget-1.0.10-0314: SAN Manager helps you to manage and monitor your iSCSI and Fibre Channel services easily. Both iSCSI and Fibre Channel are storage area network (SAN) services that provide access to consolidated and block-level data storage. Clients can access storage space over storage network as if the space were local disks.

套件包的安装/卸载/停用/启用

# 停止套件
synopkg pause DhcpServer

# 卸载套件
synopkg uninstall DhcpServer

第三方套件来源:群晖社群

  • 有些第三方软件, 在套件中心中找不到, 比如 Java 17 OpenJDK 需要借助群晖的社群进行安装。

  • 第三方套件来源(群晖社群)的配置操作路径

确定后, 在套件中心就能看到社群, 社群有额外的新套件可以进行下载。
当然,还有网络上收集的其他社群可进行添加

名称: 我不是矿神
位置: https://spk7.imnks.com/

名称: 云梦
位置: https://spk.520810.xyz:666

名称: 4sag
位置: https://spk.4sag.ru/

名称: 裙下孤魂
位置: http://spk.bobohome.store:8880
  • 群晖社群的重要套件:Git
# git --version
git version 2.45.0

重要的内置套件

文本编辑器

文档查看器

  • 描述
    文档查看器可轻松快速地显示不同类型的文档(从 Microsoft Office 到 OpenOffice)。您甚至只需通过加密链接即可共享文档。

Active Backup for Business(企业级备份管理套件)

Active Backup for Business:是群晖NAS备份管理套件。主要用来企业级备份,比如支持虚拟机、PC、物理服务器、云上server等进行整机备份;无需许可证费用。
支持增量备份、支持指定服务器的文件夹备份。

Synology Drive

  • 随时存取,不限平台/随时随地,尽享顺畅体验

可从浏览器、桌面客户端,和移动设备上随时存取数据。
移动端体验同样重要,可在手机或平板电脑上使用 Synology Drive APP 浏览、编辑文件,查看、共享图片,串流音乐与影片,以及备份手机中的重要数据。

  • 同步和备份
    确保文件随时更新并受到保护。

  • 轻松、顺畅的协作
    使用 Synology Office 进行实时协作,多人同时在线编辑电子表格、文档和幻灯片。

  • 丰富的数据管理功能
    使用自带的管理工具,准确追踪文件的存取和共享状态。

Synology Office

  • 支持导入 Microsoft Office 文件
  • 支持导出 Microsoft Office 文件

NodeJS

  • nodejs 版本。群晖 NAS D423+默认安装的NodeJs版本为: 18.18.2;我又从套件中心,主动安装了 NodeJs的版本:20.9.0
  • npm / 依赖包管理工具。群晖 NAS 默认安装了 npm

npm的使用,详情参见:[npm] NPM 教程 - 博客园/千千寰宇

# npm -v
10.1.0
  • npm 依赖模块包的存放路径
# 查看 npm 依赖模块包的全局存放路径
$ npm root -g
/usr/local/lib/node_modules

# 查看当前工程的 npm 模块包的工程存放路径
$ npm root
/volume1/docker/data/nodejs/demo-app/node_modules
  • npm 依赖模块包的全局共享问题。
  • nodejs 的包加载机制:从项目的根位置递归搜寻 node_modules 目录,直到文件系统根目录的 node_modules,如果还没有查找到指定模块的话,就会去 NODE_PATH 中注册的路径中查找。
  • 建议做法
export NODE_PATH=$(npm root -g)
  • nodejs 多版本管理问题。但群晖NAS 的 支持 NodeJs 多版本并存,怎么做到的呢?————诀窍是:nvm(nodejs 多版本管理工具)

我发现,群晖 NAS D423+上,默认安装了 nvm, version = 20
不懂nvm的,参见:[nodejs] nodejs版本管理工具:nvm - 博客园/千千寰宇

sh-4.4$ nvm -V
20

sh-4.4$ nvm list
18.18.2
20.9.0

sh-4.4$ nvm


    18.18.2
  ο 20.9.0
  • 操作系统的默认文件目录权限: root 用户
root@My-Data-Center:~# ls -la /usr/local/lib/node_modules/
total 24
drwxr-xr-x  5 root root 4096 Aug 18 17:21 .
drwxr-xr-x  6 root root 4096 Aug 14 01:17 ..
drwx------  4 root root 4096 Aug 18 17:21 express
lrwxrwxrwx  1 root root   63 Aug 14 00:58 npm -> /var/packages/Node.js_v20/target/usr/local/lib/node_modules/npm
drwx------  4 root root 4096 Aug 18 16:22 nrm
drwx------ 14 root root 4096 Aug 18 17:21 selenium-webdriver

sh-4.4$ ls -la /usr/local/lib/node_modules/nrm
ls: cannot open directory '/usr/local/lib/node_modules/nrm': Permission denied

sh-4.4$ sudo -i
root@My-Data-Center:~# ls -la /usr/local/lib/node_modules/nrm
total 72
drwx------  4 root root 4096 Aug 19 01:07 .
drwxr-xr-x  5 root root 4096 Aug 19 01:07 ..
-rw-------  1 root root 9574 Aug 19 01:07 actions.js
-rwx------  1 root root 2408 Aug 19 01:07 cli.js
-rw-------  1 root root  652 Aug 19 01:07 constants.js
-rw-------  1 root root  148 Aug 19 01:07 .editorconfig
-rw-------  1 root root 2539 Aug 19 01:07 helpers.js
-rw-------  1 root root   87 Aug 19 01:07 jest.config.js
-rw-------  1 root root 1071 Aug 19 01:07 LICENSE
drwx------ 19 root root 4096 Aug 19 01:07 node_modules
-rw-------  1 root root  788 Aug 19 01:07 package.json
-rw-------  1 root root   60 Aug 19 01:07 process.js
-rw-------  1 root root 4247 Aug 19 01:07 README.md
-rw-------  1 root root  645 Aug 19 01:07 registries.json
drwx------  2 root root 4096 Aug 19 01:07 tests

通过系统自带安装的npm的操作权限就可以看出来了————默认的OS用户:root
这个信息有什么用?说明以后基于非root用户使用 npm 安装东西时,建议相关命令带上sudo xxxx。不然可能出现如下情况:————Error: EACCES: permission denied(权限不足)

sh-4.4$ npm install nrm -g
npm notice 
npm notice New minor version of npm available! 10.1.0 -> 10.8.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
npm notice Run npm install -g npm@10.8.2 to update!
npm notice 
npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/local/lib/node_modules/nrm
npm ERR! dest /usr/local/lib/node_modules/.nrm-hGWUZtdl
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/nrm' -> '/usr/local/lib/node_modules/.nrm-hGWUZtdl'
npm ERR!  [Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/nrm' -> '/usr/local/lib/node_modules/.nrm-hGWUZtdl'] {

...

  • 安装源/镜像源(仓库)问题。
# 默认的安装源(仓库)
sh-4.4$ npm config get registry
https://registry.npmjs.org/

# 方法1:直接设置镜像仓库:淘宝镜像仓库
npm config set registry https://registry.npmmirror.com

# 方法2:通过 nrm 设置镜像仓库:淘宝镜像仓库 (推荐)
## step1 主动安装 nodejs镜像仓库管理工具 : nrm 
sudo su
npm install nrm -g
nrm ls
nrm use taobao

Cloud Sync(云同步)

https://www.synology.cn/zh-cn/dsm/7.2/software_spec/cloud_sync

  • 支持双向同步/单向同步
  • 支持 One Drive/百度网盘/阿里云对象存储/Goolge 云存储/...

Download Station

  • https://www.synology.cn/zh-cn/dsm/packages/DownloadStation
    Download Station 是一款网页式下载应用程序,可让您通过 BT、FTP、HTTP、NZB 和 eMule 从互联网下载文件,并订阅 RSS 源来获得更新或热门的 BT 信息。自动解压缩服务可以在每一次下载压缩文件至 Synology NAS 时,自动进行解压缩。使用 Download Station,您不仅能从多个文件托管站点下载文件,还可通过 BT 搜索功能中系统默认及自己添加的搜索引擎来搜寻 torrent 文件。为尊重创作者和发行商的知识产权并避免法律问题,请确保在上传或下载有版权的资料前已获得适当的授权。

Git / Git Server

  • Git

来源: 群晖社群

  • Git Server

来源 : 官方套件
https://www.synology.cn/zh-cn/dsm/packages/Git
Git 是一个开放源代码的分布式版本控制系统,可有效维护大型项目。通过 Git,您可创建多个相互完全独立的本地分支来试验新功能。Git 能让您以相对轻松的方式与许多人同时进行合作。

2 Container Manager : 容器管理器

进入方式

  • 进入方式1:web UI 菜单
  • 方式1: 套件中心-Container Manager
  • 方式2:Container Manager
  • 进入方式2:SSH 直连 + Docker CLI 命令
  • step1 借助SSH登录 NAS LINUX 系统
  • step2 直接使用 docker 命令

注:建议一切命令前加上sudo权限,例如:sudo docker ps
注:sudo权限,NAS的管理员用户默认拥有管理员权限
注:docker 命令

查看版本

  • 查看 docker 引擎版本

docker的玩法,参见:Docker基础教程 - 博客园/千千寰宇

# docker --version
Docker version 24.0.2, build 610b8d0
  • 查看 docker compose 引擎版本

docker compose 即对应 DSM Container Manager 管理界面的【项目】(同时管理多个镜像/容器)
显然可知,是 docker compose V2 大版本
docker compose的玩法,参见:[Docker] Docker Compose 基础教程(概念/基础操作) - 博客园/千千寰宇

$ docker-compose version
Docker Compose version v2.20.1-6047-g6817716

Nginx 容器

BASE_DOCKER_DIR=/volume1/docker

sudo docker run \
-p 1080:80 \
-p 443:443 \
--add-host host.docker.internal:host-gateway \
--name nginx \
-v $BASE_DOCKER_DIR/data/nginx/conf/:/etc/nginx/ \
-v $BASE_DOCKER_DIR/data/nginx/log:/var/log/nginx \
-v $BASE_DOCKER_DIR/data/nginx/html:/usr/share/nginx/html \
-d nginx:1.24.0


详情参见: [nginx] 基于Docker安装Nginx - 博客园/千千寰宇

CentOS容器

step1 基于 CENTOS ISO 镜像文件 + Nginx 搭建 Web Yum 源

  • step1 基于 nginx 搭建 web yum 源

参见: [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库] - 博客园/千千寰宇

基于 Apache Http + CENTOS ISO 镜像搭建 Web Yum 源

BASE_DIR=/volume1

# step1 挂载 centos 的 iso 镜像,作为 yum 软件(源)仓库

mkdir -p $BASE_DIR/docker/data/iso
mkdir -p $BASE_DIR/docker/data/nginx/html/yum-repository

(上传 iso 镜像到目录 iso 下)

ls -la $BASE_DIR/docker/data/iso/CentOS-7-x86_64-DVD-2009.iso

# 如果 nginx 等web 容器在运行时,需要停止掉,否则:可能报 "mount: /volume1/docker/data/nginx/html/yum-repository: /dev/loop0 already mounted or mount point busy."
sudo mount -t iso9660 -o loop $BASE_DIR/docker/data/iso/CentOS-7-x86_64-DVD-2009.iso $BASE_DIR/docker/data/nginx/html/yum-repository
> mount: /volume1/docker/data/nginx/html/yum-repository: WARNING: device write-protected, mounted read-only.

# sudo umount $BASE_DIR/docker/data/iso/CentOS-7-x86_64-DVD-2009.iso
# sudo losetup -d /dev/loop0

df -h $BASE_DIR/docker/data/iso/CentOS-7-x86_64-DVD-2009.iso

ls -la $BASE_DIR/docker/data/nginx/html/yum-repository



# step2 创建 nginx 的 docker 容器
## 详细过程,参见: [nginx] 基于Docker安装Nginx - 博客园/千千寰宇 - https://www.cnblogs.com/johnnyzen/p/18081630
## mkdir -p $BASE_DIR/var/www/html/repo
mkdir -p $BASE_DIR/docker/data/nginx/html

# ...

sudo vim $BASE_DIR/docker/data/nginx/conf/conf.d/default.conf

	location /yum-repository/ {
		#alias /volume1/docker/data/nginx/html/yum-repository;
		alias /usr/share/nginx/html/yum-repository;
		# 自动列出目录
		autoindex on;
		# expires 1d;
	}

sudo docker run \
-p 8080:80 \
--add-host host.docker.internal:host-gateway \
--name nginx-webserver \
-v $BASE_DIR/data/nginx/conf/:/etc/nginx/ \
-v $BASE_DIR/data/nginx/log:/var/log/nginx \
-v $BASE_DIR/data/nginx/html:/usr/share/nginx/html \
-v $BASE_DIR/data/nginx/html/yum-repository:/usr/share/nginx/html/yum-repository \
-d nginx:1.24.0


访问 : http://my-data-center:8080/yum-repository/

step2 基于 Dockerfile 构建 CENTOS 镜像

  • 参考文献
  • step1 拉取 centos 指定版本的基础镜像
sudo docker pull centos:7.9.2009

  • step2 创建并编辑Dockerfile文件
  • mkdir -p /volume1/docker/centos
  • vim /volume1/docker/centos/Dockerfile
# @reference-doc https://www.modb.pro/db/436038

# 创建者的信息
MAINTAINER  johnnyzen<xxxx@qq.com>  

CMD echo "--------start-------"

# 环境变量
ENV MY_BASE_PATH /usr/local

# 使用 官方 CentOS 基础镜像
FROM centos:7.9.2009

# 为了避免 Python 环境可能产生的问题,设置环境变量
ENV LANG C.UTF-8

# 配置 YUM 源
//TODO

# 安装常用工具
RUN yum update -y && yum install -y \
    net-tools \
    openssh-server \
    vim \
    wget \
    curl \
    && yum clean all

# 设置工作目录
WORKDIR /app

# 可选:复制本地文件到工作目录
# COPY local-file.txt /app/


# 暴露端口
# EXPOSE 80


# 可选:启动时运行的命令
CMD echo "--------end-------"
# CMD ["python", "app.py"]
CMD ["/bin/bash"]
  • step3 基于 Dockerfile 构建镜像
sudo docker build -f /volume1/docker/centos/Dockerfile -t my-centos:7.9.2009-001 .

sudo docker images

step3 基于 Docker Compose 构建 CENTOS 容器

  • 参考文献

Y FAQ

Q: 群晖nas-远程查阅、编辑文件的方法?

所有的远程访问方法,都基于开启 quickconnect 这一前提。
综合结论:多用markdown,少用office。

  • 方式1:群晖助手APP + 手机
  • step1 下载文件到本地手机
  • step2.1 针对word文件:本地手机使用wps/微软office等查阅编辑
  • step2.2 针对html/markdown等文本文件:本地手机使用等查阅编辑
  • 方式2:synology office套件 + 电脑
  • step1 在电脑端,利用 quickconnect 登录 dsm 管理网页
  • step2 基于dsm页面,右键用群晖office打开文件
  • 支持 word 文件 或 synology office文件
  • 方式3:文本编辑器套件 + 电脑
  • step1 在电脑端登录dsm管理网页
  • step2 基于dsm页面,右键用【文本编辑器】打开文件
  • 支持 html / markdown 等文本文件
  • 方式4:文档查看器 + 电脑
  • step1 在电脑端登录dsm管理网页
  • step2 基于dsm页面,右键用【文档查看器】打开文件
  • 支持 synology office / microsoft office 等电子文档文件

X 参考文献

  • Synology/群晖
posted @ 2024-08-16 23:47  千千寰宇  阅读(1357)  评论(0编辑  收藏  举报