Lazy loaded image
技术分享
个人服务器、VPS NAS相关
字数 5332阅读时长 14 分钟
2025-4-19
2025-5-3
type
status
date
slug
summary
tags
category
comment
icon
password
今天早上,我在群友问上看到了有群有询问有关Nas的问题。于是,我就发了一个帖子想看看群友们都有哪些问题。在综合了以上问题之后,我打算针对Nas的有关疑问开展解答。
Q1:我到底需不需要Nas?
A1:这和你的需求有关,如果你没有存储大型文件或电影的需求(大于1T),我不建议你购买Nas。
首先,Nas的成本并不低,如果你想获得相对完整的体验,我推荐你购买支持Docker的Nas,该类Nas基本基于Linux系统,所以在硬件上与一台简易的电脑相当,成本也不便宜。
其次,即使你购买了Nas本体,为了良好的传输环节,优质的硬盘也是必不可少的,Nas最为人所熟知的特点就是一个“可以随时随地访问的可靠的安全硬盘”,为了达成这些,你最起码需要购买两块硬盘并且需要设置Raid,Raid等级越高相对越安全,但是空间的成本也就越高。例如:你购买了两块1T的硬盘组Raid1,那你所获得的空间就只有1T。 所以,如果你没有充分的需求,不建议购买Nas。
但是,就如我先前所说,Nas的硬件相当于一台简易的电脑,如果你正好有一台旧电脑,并且旧电脑上没有重要数据,那我建议你可以将旧电脑装上Nas的系统来当Nas(虽然安全性和功能性都不及真的Nas,但也算是物尽其用。),但是由于许多旧电脑并不支持硬盘扩展,也就是说你只可以使用Raid0,这也就意味着你的硬盘一旦损坏,数据就极难恢复(也就是俗称的“Raid0火葬场”)。因此,不建议你将重要数据储存在Nas上。即使如此,Nas的可玩性也十分多。
Q2:如果我正好有一台旧电脑,想安装Nas,该安装什么系统。
A2:说实话,安装什么系统取决于你的电脑支持安装什么系统。因为每个人的电脑配置都不同,即使说Nas是一台简易的电脑,也不是什么都不适配就可以直接安装在你的电脑上的。
你需要到互联网上搜索你的平台和配置可以安装哪一种Nas系统,不过Nas系统最好要支持Docker,否则可玩性会下降许多。
常见的Nas系统有:Synology OS。
Q3:我该如何安装Nas系统。
A3:如何安装系统取决于你的电脑配置,不过大多数的Nas系统安装流程都大同小异, 均需要使用U盘来制作USB启动盘,所以如果你不知道该从何开始,就先从U盘开始准备起来吧!
如果你实在不知道该如何安装或是安装过程中出现了问题,也无妨救助一下“万能的淘宝”。
Q4:安装了Nas系统,能干什么? A4:Nas系统的可玩性取决于该系统是否有足够活跃的开发者为其提供适配,由于Linux系统的特殊性,能否安装成功取决于你是否有足够的依赖文件,因此适配显得极其重要。Docker是一个十分知名的插件市场,就如同是Linux界的“软件商店”,它会自动检测你设备上的依赖文件,并且帮你自动安装缺少的依赖文件,让软件的安装变得自动化。因此,如果你的Nas系统支持Docker,你的Nas可玩性就会大大提高。
以下列举几个Nas的典型玩法: 1.0 Nas网络映射 部分Nas系统拥有自己的管理软件(如:Synology OS),使用他们适配的软件(如Synology Assistant)可以很方便的映射Nas的磁盘到自己的电脑上,这块磁盘与普通的磁盘没有什么区别,因此你可以当作你自己的电脑磁盘来使用。你甚至可以将Steam的游戏下载到Nas的磁盘上,并直接在电脑上打开。不过,打开的情况根据你本地网络环境和你电脑配置有关,Nas文件的打开速度遵循“木桶效应”,如果你的Nas只有百兆口或是你的Nas硬盘读取速度慢都会影响你打开Nas上文件的速度。
2.0 磁力下载托管 如果你的Nas系统支持Docker,你可以在Doker上搜索“Aria NG”,按照要求进行配置之后,你就可以将磁力链接托管到Nas上下载了,下载完就可以在Nas上打开。
3.0 与云盘联动 部分Nas系统(如Synology OS)支持与Google硬盘等网络硬盘连接,连接之后便可以在Nas上直接查看对应云盘上的文件。
还有其他玩法,比如:Emby。
最后,在根据群友们的反馈,针对几个托管问题进行解答: Q1:Nas有必要进行网络托管吗? 确实,Nas的一大特点就是可以“随时随地访问”。不过,如果你只是想在家里使用,不建议托管。 因为: 1.你的Nas默认是基于Http的,为了安全你可能需要申请一个SSL证书,这点可能会比较麻烦。
2.部分系统(如:Synology OS),需要“洗白”之后才可以使用官方的托管工具。
3.即使你成功“洗白”了你的系统,由于你的设备本身不是Nas,所有每一个版本都需要适配,无法直接OTA更新,这也就意味着你的设备遭到攻击的可能性会比较大。
4.部分第三方托管存在安全问题,因为你的连接需要经过第三方的服务器转发,而且如果你使用对方的SSL,可能有被中间人攻击的风险。不经如此,许多的第三方托管都讯在付费or限速的情况。
5.如果你使用P2P打洞,那你被DDoS的可能性会大大增加,不过即使你使用HTTPS,再不加任何CDN的情况下,也可能被攻击。不过,由于CDN的特殊性再加上Nas上存的大多都是私人的内容(例如我就存了39.87G的色色漫画,用于本地观赏),所以为了防止不必要的风险,不建议这么做。况且,P2P打洞的前提是你得一直知道你家的IP是多少,你可能得申请固定IP,虽说不是不能申请到,不过最近某运营商的Net4444可是非常“知名的”,你也不想和其他人一起分享同一IP的不同端口吧。
综上所述,这是一份使用Nas的参考,如果你只是小白或是没有需求,简易不要轻易尝试。不过,如果你非要尝试,并且你身边正好有一台旧电脑,那无妨尝试一下给笔记本装上Nas系统,让本就吃灰的笔记本以另一种方式陪伴在你的身边。
注:以上玩法来源于个人实践,如有错误敬请指正。
 

 
 
  1. FreshRSS,管理订阅源。作为 rss 管理的应用,目前一直在用。 mac 配合Fluent Reader,IOS 软件配合Fiery Feeds(美区 id)
  1. WeWeRSS,将微信公众号转为RSS。转换后通过上述 freshrss 管理这些都是目前在用的,还有一些之前玩过不太常用就没列举出来了。受限于服务器配置,目前这些应用已经是极限,大家还有什么适合低配置,好玩的有用的推荐呢?
rss我用的是rsshub,阅读器用的是reader5
Alist - 挂载硬盘柜和网盘当NAS用
Linkwarden - 稍后读工具,保存一些页面用
Gitea - 主要用来同步一些喜欢的仓库,防止失联
青龙面板 - 做一些定时任务
AnonAddy - 临时邮箱,用来注册网站用
Jackett - 搜索种子用
Immich - 同步照片用
Caddy - 反向代理啥的
 
  • NocoDB。Airtable 的开源替代,算是精简版的在线 Excel。有 Rest API 以及 Webhook 的支持。目前有做如下用途:
    • 库存管理:家里的药品、电子产品、元器件等数量、位置信息
    • 联系人:除了简单记录姓名、电话、住址等,还会记录生日,上次联系时间等。生日这块因为有许多朋友是过农历生日,于是就用 Webhook 这个特性实现了:如果有新的联系人,那么就触发 Webhook,调用自己写的脚本,换算成今年的公历日期,然后更新 CalDAV。
    • 简单的 KV 数据库。写一些小玩具的时候,直接调用 Rest API 拿来当数据库用。这种做法很像 Firebase 等形式,就是把数据库接口换成 Rest API 这种。
    • 因为支持 API,后面还打算用 LangChain 实现一个查表的 GPT Agent。
  • Node Red,基于浏览器的流程编辑器,用来做一些简单的自动化工作,举几个目前在跑的脚本:
    • 用了异地组网的软件,如果下班时间后女朋友的工作电脑 Ping 不通了,那就说明她下班了,然后用触发小爱音箱用 TTS 播报女朋友下班的信息
    • 一些 RSS 有更新后,用 TTS 引擎转成 mp3 文件,当播客听。
  • Nexus,用来做一些软件仓库,例如 Docker Registry,NPM,Pypi,APT 等,后端存储支持本地存储和S3存储。
  • Grafana,监控平台,目前还在探索。
上面很多都是成品,已经成熟的软件,但很多需求找了很多软件似乎都没法很好实现。于是就有自己写脚本、简单程序来实现需求,这一块更多就是开发环境、开发套件的选择了。这个我也简单说一下吧:
  • 数据库
    • 关系型:PostgreSQL,选择原因是流行度越来越高,而且扩展很多,生态很好,例如向量化、时序数据库、非关系型数据库等都可以通过插件实现。
    • 非关系型:Elasticsearch,自带 Rest API 支持,还有强大的中文分词等,向量化等。建表不用写各种建表语句。ELK 套件更是强大,监控、日志、数据库、数据处理等都包揽了。
  • 后端,主要根据相关库使用的语言来选择后端框架,因为自己用的,所以不会考虑框架需要集成复杂功能,如登录、鉴权、缓存等
    • JS/TS:Hono,优点是兼容 Web Standard,可以在 Cloudflare Worker,NodeJS,Deno,Bun,AWS Lambda 等等运行时上运行
    • Python:FastAPI/Flask
    • C#:Asp.Net Core
青龙 aria2 vs code QQ机器人
Dockge: 一个易用性优先的 Docker 管理工具
上百款可docker部署的项目
AIO目前在用的服务:
 
 

拿到vps后必做的那些事

来自于Yuju佬

GitHub地址

国外服务器使用方法

国内服务器使用方法(用ghproxy加速)


一、系统设置

更新软件库

更新、安装必备软件

校正系统时间

将时区改为改成上海
  • 查看当前时区:
  • 列出所有时区:

系统参数调优

这个功能通过调整各种系统和网络参数来优化服务器的性能。
实现方法
  • 内核参数调整:例如,增加TCP缓冲区大小、修改系统队列长度等,这些改变有助于提高网络吞吐量和减少延迟。
  • 性能优化:安装和配置Tuned和其他系统性能优化工具来自动调整和优化服务器的运行状态。
  • 资源限制:例如,设置文件打开数量的限制,这可以防止某些类型的资源耗尽攻击。
通过这些功能,你的服务器不仅能够更有效地管理资源,还能提高对外部威胁的防护能力,保障系统稳定运行。

二、BBR

BBR 是 Google 提出的一种新型拥塞控制算法(Bottleneck Bandwidth and RTT),全称为瓶颈带宽和往返传播时间。
在 Linux 系统中,BBR 主要有以下特点和作用:
  • 提高网络性能:它可以显著提高吞吐量和降低 TCP 连接的延迟,使数据传输更加高效。
  • 适应不同网络环境:适合高延迟、高带宽的网络链路,以及慢速接入网络的用户,能在一定丢包率的网络链路上充分利用带宽,并降低网络链路上的缓冲区占用率从而降低延迟。
  • 优化拥塞控制:BBR 改变了传统基于丢包反馈的拥塞控制机制,通过精确测量往返传播时间(RTT)和瓶颈带宽等参数来更有效地控制数据发送速率,避免了传统算法中因单纯丢包判断拥塞而导致的带宽利用率不高和端到端延迟大等问题。
  • 提升网络稳定性:有助于减少网络拥塞和数据包丢失,提高网络的稳定性和可靠性。
因为我本人是PT玩家,所以接触到了一位大佬自己魔改的BBR版本,也就是BBRx。该版本调整了类似 startup(启动阶段)、drain(排空阶段)、probe_bw(探测带宽阶段)、probe_rtt(探测往返时间阶段)等状态下的一些关键参数,如 pacing_gain(发送速率增益)、cwnd_gain(拥塞窗口增益)等,个人来说觉得比原版BBR的效果更好,如果不喜欢的话,可以选择原版BBR进行安装。

开启BBRX加速

重启 VPS、使内核更新和BBR设置都生效
确认BBR开启
如果你想确认 BBR 是否正确开启,可以使用下面的命令:
此时应该返回这样的结果:
再次重启 VPS
如果只有tcp_bbr则再等几分钟reboot
此时再进行查询:
此时应该返回这样的结果:

开启BBR加速(备选)

也是重启VPS生效

三、添加SWAP

在 Linux 系统中,SWAP(交换空间)是指一块磁盘空间,用于在物理内存(RAM)不足时,作为临时的扩展内存来使用。当系统的物理内存使用量接近饱和,Linux 内核会将一些不常使用的内存页交换到 SWAP分区中,从而为当前运行的程序腾出更多的物理内存。当这些被交换出去的内存页再次被需要时,它们会被重新换回到物理内存中。SWAP分区的存在可以在一定程度上避免由于物理内存不足导致系统性能严重下降或进程被强制终止的情况。
因此,SWAP对于内存小的VPS非常有必要,可以提高我们的运行效率。
这里我们用脚本来添加。
查看当前内存

四、安装Docker、Docker-compose以及修改配置

Docker

Docker安装

非大陆服务器

大陆服务器Docker安装

查看Docker版本

开机自动启动

卸载Docker

Docker-compose安装

经佬友反馈,Docker从18.06.0-ce 版本就开始自带Docker Compose工具,因此,我们只需要检验Docker Compose的版本。

查看Docker Compose版本

五、修改SSH端口

修改 SSH 端口通常有以下几个主要原因:
  1. 增强安全性:SSH 服务默认使用的 22 端口是攻击者经常扫描和尝试攻击的目标。通过将端口修改为一个不常见的数值,可以减少自动攻击和暴力破解的风险,因为攻击者通常会首先针对常见的默认端口进行攻击。
例如,如果攻击者使用自动化工具扫描大量服务器,这些工具可能主要集中在 22 端口。而修改了端口后,就降低了被这类工具轻易发现和攻击的可能性。
  1. 减少误连接和非法访问尝试:一些网络环境中可能存在大量的随机连接请求或非法访问尝试,针对默认的 22 端口。更改端口可以减少这类无意义的连接请求。
假设您的服务器处于一个公共网络环境中,经常会收到大量的随机连接尝试,其中很多是针对常见端口的。修改 SSH 端口可以减少这类不必要的干扰。
将默认的22端口修改为55520(暗戳戳地表白)@wanwan
重启sshd服务

六、密钥登录

一键生成你的密钥
!!!注意:请牢记你生成的密钥,否则会有无法连接SSH的后果。!!!

七、安装fail2ban

安装fail2ban
配置fail2ban
fail2ban的配置文件通常位于 /etc/fail2ban/目录下,fail2ban的.conf配置文件都是可以被.local覆盖,所以配置方式建议是添加.local文件,不修改原来的配置文件。
配置文件如下:
Ctrl+S保存并退出
设置开机自动启动fail2ban
重新启动fail2ban
查看fail2ban的状态
查看所有可用jail的状态

 
上一篇
历史并不是线性的 - 战略问题和策略问题
下一篇
工具类网站

评论
Loading...