Skip to content

Commit

Permalink
[add] win nas
Browse files Browse the repository at this point in the history
  • Loading branch information
AIboy996 committed Oct 9, 2024
1 parent 5aba3d4 commit 850be44
Show file tree
Hide file tree
Showing 9 changed files with 235 additions and 15 deletions.
Binary file added docs/Note/NAS/assets/2024-10-09-22-52-03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Note/NAS/assets/IMG_1515.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Note/NAS/assets/IMG_4778.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 43 additions & 1 deletion docs/Note/NAS/domain.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,46 @@ TLD 的另一个目的是帮助分类和传达域名的目的。每个 TLD 都
- NS 记录 - 存储 DNS 条目的名称服务器。
- SOA 记录 - 存储域的管理信息。
- SRV 记录 - 指定用于特定服务的端口。
- PTR 记录 - 在反向查询中提供域名。
- PTR 记录 - 在反向查询中提供域名。

## DDNS
> DDNS i.e. Dynamic DNS,动态域名解析
如果你有一个静态的IP地址,那么只需要在DNS服务商那里配置好解析记录就可以了。

然而国内实际情况是,很多时候我们只有一个动态的IPv4地址,这时候可以通过DDNS服务来自动保持`域名<-->IP`的映射。

ddns-go就是一个很好用的软件:
<figure markdown>
[![](https://gh-card.dev/repos/jeessy2/ddns-go.svg)](https://github.com/jeessy2/ddns-go)
</figure>

- 支持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)
64 changes: 50 additions & 14 deletions docs/Note/NAS/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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接口承担了巨多功能。尤其是装系统的时候,需要电源+键盘+鼠标。用我手边的扩展坞接上这些设备需要连成长龙:

<figure markdown>

![](assets/IMG_1515.jpg){width=500}

<figurecaption>大概就是这么个造型</figurecaption>

</figure>

一开始我给它装上了Ubuntu系统,后来为了充分利用触摸屏又换成了Fedora系统(真的很好用!)。

不过由于io接口太过缺少,这个时代的NAS也没有坚持太久,一年差不多我就受不了了。

## 1.0时代
之前玩过群晖的220j,那个ARM芯片真的性能捉急-_-

稍微有一个大动作(比如下载了一个剧集,Plex扫描一下)就会卡死。于是咸鱼来的很快就咸鱼走掉了。

<figure markdown>

![](assets/IMG_4778.jpg){width=400}

</figure>


但是不得不说,群晖毕竟是专业的,用起来很省心~

- ddns:做动态域名-ip映射
- overleaf:写latex用的
- n8n:自动化
- plex:媒体服务器
- qbitorrent:下载器
- transmission:下载器
- portrainer:Docker WebUI
- nastools:NAS小助手
- mongodb:数据库
## 0.0时代
这个时期我就在自己的主力机上下载资源,架设Media Server,需要用的时候就打开。

长此以往太过麻烦,无法全天候在线否则资源消耗太严重,遂开始筹备单独的NAS设备。
140 changes: 140 additions & 0 deletions docs/Note/NAS/windows.md
Original file line number Diff line number Diff line change
@@ -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 <distro name> 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不支持这个选项:

<figure markdown>

![](./assets/Snipaste_2024-10-07_20-04-24.png)

</figure>

## 安装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内映射的端口是可以直接在宿主机的对应端口访问到的,局域网也可以直接访问。完美!
1 change: 1 addition & 0 deletions docs/Note/NAS/wol.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ tags:
- NAS
- 折腾
- 计算机网络
title: WOL
---

# Wake on LAN & WAN
Expand Down
1 change: 1 addition & 0 deletions nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 850be44

Please sign in to comment.