diff --git a/docs/Note/NAS/assets/2024-10-09-22-52-03.png b/docs/Note/NAS/assets/2024-10-09-22-52-03.png new file mode 100644 index 000000000..b865e023c Binary files /dev/null and b/docs/Note/NAS/assets/2024-10-09-22-52-03.png differ diff --git a/docs/Note/NAS/assets/IMG_1515.jpg b/docs/Note/NAS/assets/IMG_1515.jpg new file mode 100644 index 000000000..7ba614fad Binary files /dev/null and b/docs/Note/NAS/assets/IMG_1515.jpg differ diff --git a/docs/Note/NAS/assets/IMG_4778.jpg b/docs/Note/NAS/assets/IMG_4778.jpg new file mode 100644 index 000000000..312013ebb Binary files /dev/null and b/docs/Note/NAS/assets/IMG_4778.jpg differ diff --git a/docs/Note/NAS/assets/Snipaste_2024-10-07_20-04-24.png b/docs/Note/NAS/assets/Snipaste_2024-10-07_20-04-24.png new file mode 100644 index 000000000..146aac51f Binary files /dev/null and b/docs/Note/NAS/assets/Snipaste_2024-10-07_20-04-24.png differ diff --git a/docs/Note/NAS/domain.md b/docs/Note/NAS/domain.md index 6a8fa5e17..3412af118 100644 --- a/docs/Note/NAS/domain.md +++ b/docs/Note/NAS/domain.md @@ -119,4 +119,46 @@ TLD 的另一个目的是帮助分类和传达域名的目的。每个 TLD 都 - NS 记录 - 存储 DNS 条目的名称服务器。 - SOA 记录 - 存储域的管理信息。 - SRV 记录 - 指定用于特定服务的端口。 -- PTR 记录 - 在反向查询中提供域名。 \ No newline at end of file +- PTR 记录 - 在反向查询中提供域名。 + +## DDNS +> DDNS i.e. Dynamic DNS,动态域名解析 + +如果你有一个静态的IP地址,那么只需要在DNS服务商那里配置好解析记录就可以了。 + +然而国内实际情况是,很多时候我们只有一个动态的IPv4地址,这时候可以通过DDNS服务来自动保持`域名<-->IP`的映射。 + +ddns-go就是一个很好用的软件: +
+[![](https://gh-card.dev/repos/jeessy2/ddns-go.svg)](https://github.com/jeessy2/ddns-go) +
+ +- 支持Mac、Windows、Linux系统,支持ARM、x86架构 +- 支持的域名服务商 + - 阿里云 + - 腾讯云 + - Dnspod + - Cloudflare + - 华为云 + - Callback + - 百度云 + - Porkbun + - GoDaddy + - Namecheap + - NameSilo + - Dynadot +- 支持接口/网卡/命令获取IP +- 支持以服务的方式运行 +- 默认间隔5分钟同步一次 +- 支持同时配置多个DNS服务商 +- 支持多个域名同时解析 +- 支持多级域名 +- 网页中配置,简单又方便,默认勾选禁止从公网访问 +- 网页中方便快速查看最近50条日志 +- 支持Webhook通知 +- 支持TTL +- 支持部分DNS服务商传递自定义参数,实现地域解析/多IP等功能 + +当然你也可以使用路由器自带的DDNS功能,只不过我的路由器比较垃圾,支持的DNS服务商比较少: + +![](assets/2024-10-09-22-52-03.png) \ No newline at end of file diff --git a/docs/Note/NAS/index.md b/docs/Note/NAS/index.md index cbdf29719..d6a8987dd 100644 --- a/docs/Note/NAS/index.md +++ b/docs/Note/NAS/index.md @@ -4,24 +4,60 @@ tags: - 折腾 --- -# NAS -> Network Attached Storage +# NAS编年史 +> 倒叙,NAS i.e. Network Attached Storage -我的NAS实际上就是我淘汰下来的Windows笔记本,续航血崩但是性能还行。刷一个Linux系统,外接俩机械硬盘,当NAS绰绰有余!之前玩过群晖的220j,那个ARM芯片真的性能捉急-_- +## 3.0时代 +我现在的NAS就是我淘汰下来的Windows笔记本,续航血崩但是性能还行(i5-8265U + NV GeForce MX250)。外接俩机械硬盘,当个NAS绰绰有余! -我是用的系统是Ubuntu,主面板是[CasaOS](https://casaos.io/): +### 3.0.3 + +彻彻底底地remake,[换回了原生的Windows系统](./windows)(为此,我把之前在ext4磁盘上所有的数据都抹掉了😭😭),希望NTFS稳定一些。 + +### 3.0.2 +这次终于实践了我很久以前就想做的事情:刷一个PVE,玩一玩All in One + +然而事实证明,`all in one = all in boom`,很快PVE直接挂掉了,我的所有虚拟机毁于一旦,g + +### 3.0.1 +这个时期用的系统是Ubuntu,主面板是[CasaOS](https://casaos.io/) ![](assets/2024-06-16-01-37-47.png) -起了几个Docker服务: +用了一年多两年不到,Docker出了一些问题,磁盘也有些小毛病。于是下定决心remake了 + +## 2.0时代 +后来一段时间我的NAS就是一台Surface go,用一个USB hub吊着几个硬盘,用起来非常蛋疼。 + +由于它的磁吸充电口坏掉了,所以机身上仅存的一个USB C接口承担了巨多功能。尤其是装系统的时候,需要电源+键盘+鼠标。用我手边的扩展坞接上这些设备需要连成长龙: + +
+ +![](assets/IMG_1515.jpg){width=500} + +大概就是这么个造型 + +
+ +一开始我给它装上了Ubuntu系统,后来为了充分利用触摸屏又换成了Fedora系统(真的很好用!)。 + +不过由于io接口太过缺少,这个时代的NAS也没有坚持太久,一年差不多我就受不了了。 + +## 1.0时代 +之前玩过群晖的220j,那个ARM芯片真的性能捉急-_- + +稍微有一个大动作(比如下载了一个剧集,Plex扫描一下)就会卡死。于是咸鱼来的很快就咸鱼走掉了。 + +
+ +![](assets/IMG_4778.jpg){width=400} + +
+ + +但是不得不说,群晖毕竟是专业的,用起来很省心~ -- ddns:做动态域名-ip映射 -- overleaf:写latex用的 -- n8n:自动化 -- plex:媒体服务器 -- qbitorrent:下载器 -- transmission:下载器 -- portrainer:Docker WebUI -- nastools:NAS小助手 -- mongodb:数据库 +## 0.0时代 +这个时期我就在自己的主力机上下载资源,架设Media Server,需要用的时候就打开。 +长此以往太过麻烦,无法全天候在线否则资源消耗太严重,遂开始筹备单独的NAS设备。 \ No newline at end of file diff --git a/docs/Note/NAS/windows.md b/docs/Note/NAS/windows.md new file mode 100644 index 000000000..c37685485 --- /dev/null +++ b/docs/Note/NAS/windows.md @@ -0,0 +1,140 @@ +--- +tags: +- NAS +- 折腾 +- Docker +--- + +# 在Win上搭建NAS + +## 安装Windows +> 参考[官方教程](https://www.microsoft.com/en-us/software-download/windows10%20) + +装机不就多说了,Windows的安装还是很简单的。 + +我还是喜欢用Win10,Win11当然更好,因为微软会不停地有安全补丁,但我不考虑安全。 + +建议安装Windows**专业版**或者**专业工作站版**。因为只有专业版才有**远程桌面**的功能。 + +## 安装WSL2 +> 参考[官方教程](https://learn.microsoft.com/en-us/windows/wsl/install) + +WSL2现在已经很好用了,基本就是原生Linux体验。 + +我们在Windows的终端输入: +```bash +$ wsl --install +``` +确保你安装的是WSL2: +```bash +$ wsl -l -v + NAME STATE VERSION +* Ubuntu Stopped 2 +``` +如果不是你可以手动修改: +```bash +$ wsl --set-version 2 +``` + +值得一提的是,现在的WSL2支持[镜像网络模式](https://learn.microsoft.com/en-us/windows/wsl/networking#mirrored-mode-networking)。 + +默认情况下WSL2系统的网络和宿主机器之前是通过NAT实现联通的,WSL2会得到一个虚拟的IP +```bash +$ wsl hostname -I #你可以查看WSL2的ip地址 +172.17.94.89 +``` + +镜像网络模式下你可以: + +- IPv6 support +- Connect to Windows servers from within Linux using the localhost address 127.0.0.1. IPv6 localhost address ::1 is not supported +- Improved networking compatibility for VPNs +- Multicast support +- Connect to WSL directly from your local area network (LAN) + +然而这个模式要求系统是Windows 11 22H2以上,只需要在配置文件中加上下面的选项即可: + +```toml title="~/.wslconfig" +[wsl2] +networkingMode=mirrored +``` +Win10不支持这个选项: + +
+ +![](./assets/Snipaste_2024-10-07_20-04-24.png) + +
+ +## 安装Docker +> 参考[Docker官方教程](https://docs.docker.com/desktop/wsl/)和[微软官方教程](https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers) + +重点是需要打开WSL2 Integration: + +![](https://learn.microsoft.com/zh-cn/windows/wsl/media/docker-dashboard.png) + +这样你在WSL2中就可以正常使用Docker了! + +```bash +$ wsl -l -v + NAME STATE VERSION +* Ubuntu Stopped 2 + docker-desktop Stopped 2 +``` + +## 安装一些服务 +由于Windows上的Docker比较卡,而且是基于WSL2的。所以本着能不用就不用的原则,尽量把服务都安装在宿主机。 + +### Alist +> [参考](https://alist.nn.ci/zh/guide/install/manual.html#%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B),[下载](https://github.com/Xhofe/alist/releases) + +Alist的安装非常简单,下载一个二进制文件然后注册成系统服务就可以了。 + +官方推荐使用[nssm](https://nssm.cc/download)来注册系统服务: +```bash +nssm.exe install alist +``` + +### Jellyfin +> [下载](https://jellyfin.org/downloads/windows/) + +这个更是傻瓜式。下载完之后一路下一步即可。 + +现在默认版本的Jellyfin已经可以做到很好的刮削了,可以说是开箱即用的级别。 + +### qBitorrent +> [下载](https://www.qbittorrent.org/download) + +qBitorrent也是有Windows版本的,下载安装后开启WebUI即可。 + +### ddns-go +> [参考](https://github.com/jeessy2/ddns-go?tab=readme-ov-file#%E7%B3%BB%E7%BB%9F%E4%B8%AD%E4%BD%BF%E7%94%A8),[下载](https://github.com/jeessy2/ddns-go/releases) + +ddns-go提供了一键注册系统服务的功能 +```bash +ddns-go.exe -s install +``` +还可以额外给一些配置: +```bash +ddns-go.exe -s install -f 600 -c /Users/name/.ddns_go_config.yaml +``` + + +### Docker based + +例如[docker-easyconnect](https://github.com/docker-easyconnect/docker-easyconnect) + +一键开启服务: + +```bash title="WSL2内运行" +docker run -it --name easy \ + --device /dev/net/tun \ + --cap-add NET_ADMIN \ + -p 1080:1080 \ # socks5 proxy + -p 8888:8888 \ # http proxy + -e EC_VER=7.6.7 \ + -e CLI_OPTS="-d stuvpn.fudan.edu.cn -u USERNAME -p PASSWORD" \ + hagb/docker-easyconnect:cli \ +``` + +上述在WSL2内映射的端口是可以直接在宿主机的对应端口访问到的,局域网也可以直接访问。完美! \ No newline at end of file diff --git a/docs/Note/NAS/wol.md b/docs/Note/NAS/wol.md index 09adf69d6..a8bfb9f7d 100644 --- a/docs/Note/NAS/wol.md +++ b/docs/Note/NAS/wol.md @@ -3,6 +3,7 @@ tags: - NAS - 折腾 - 计算机网络 +title: WOL --- # Wake on LAN & WAN diff --git a/nav.yml b/nav.yml index ff4d51019..5238d43db 100644 --- a/nav.yml +++ b/nav.yml @@ -66,6 +66,7 @@ nav: - Note/mkdocs/plugin_dev.md - NAS: - Note/NAS/index.md + - Note/NAS/windows.md - Note/NAS/domain.md - Note/NAS/wol.md - Note/NAS/media.md