MoreRSS

site iconAemon Cao修改

木有介绍
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Aemon Cao的 RSS 预览

榨干这台 NAS 第 005 话-外网访问之 Tailscale

2024-06-12 14:46:13

这是一系列关于 NAS 的文章,系列的名称你们也看到了:「榨干这台 NAS」。我将尽可能详细的介绍 NAS 相关的知识,帮助你最大限度的发挥你的手中 NAS 的威力!

许久不见,托更了快两年,今天继续来填坑。

今天我们暂时先不捣鼓 PT、影视、下载那些问题了,我们来解决一个更加基础的问题:外网访问

家用 NAS 作为家庭存储的设备,绝大多数场景是在家中使用的,但是有时候我们需要在外面访问家中的 NAS,比如在外面需要访问家中的文件、下载文件到家中的 NAS 等等。那么,如何实现外网访问呢?

目前主流的方式有以下几种:

  1. 端口映射:在路由器上设置端口映射,将 NAS 的端口映射到外网,这样就可以通过外网 IP 访问到 NAS。但是这种方式有一个很大的问题,就是安全性,端口映射后,NAS 的端口就暴露在了外网,这样就会有安全隐患。笔者曾经在暴露了 NAS 的多个端口后,被黑客入侵,所幸没有造成太大的损失。这方式在用户没有太多安全意识以及没有太多技术能力的情况下,不建议使用。当然它也有一些优点,比如速度快、稳定等;

  2. DDNS:动态域名解析服务,这其实是第一种方式的一个补充,通过 DDNS 服务,我们可以通过一个域名访问到家中的 NAS,而不需要记住家中的 IP 地址。因为现如今家庭宽带即使分配了公网 IP 地址,也是动态的,所以我们需要 DDNS 服务来实现动态 IP 的映射。这种方式的优点是不需要记住 IP 地址,但是安全性和第一种方式一样;

  3. frp:frp 是一个高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等协议。frp 的原理是通过一个中转服务器,将外网的请求转发到家中的 NAS,这样就不需要在路由器上设置端口映射,也不需要 DDNS 服务。frp 的优点是不需要用户拥有公网 IP,它的缺点是其速度受限于用于部署 frp 中转服务器的带宽,而且 frp 服务需要一台服务器来搭建,这样就会增加一定的成本;

  4. VPN:VPN 是一种通过加密通道将外网请求转发到家中的 NAS 的方式,VPN 的优点是安全性高,速度快,稳定性好,但是 VPN 的缺点是需要在外网设备上安装 VPN 客户端,这样才能访问家中的 NAS,而且 VPN 服务需要一台服务器来搭建,这样就会增加一定的成本。VPN 的另一个缺点是,VPN 服务一般都是收费的,如果你自己搭建 VPN 服务,那么你需要一台服务器,这样就会增加一定的成本;

  5. Tailscale:Tailscale 是一个基于 WireGuard 的 VPN 服务,它的优点是简单易用,安全性高,速度快,稳定性好,由于使用 Tailscale 后,优先是进行直连,影响你传输速度的只有你的家庭宽带的带宽,而不是中转服务器的带宽。而且 Tailscale 服务是免费的,不需要自己搭建服务器,也不需要在外网设备上安装 VPN 客户端,只需要在家中的 NAS 上安装 Tailscale 客户端,然后在外网设备上安装 Tailscale 客户端,就可以访问家中的 NAS 了。Tailscale 的缺点是需要在访问端和被访问端都安装 Tailscale 客户端,但是这样也增加了安全性。

今天我们就来讲讲第 5 种方式:Tailscale

其实还有一种方式,就是NAS 厂商提供的远程访问服务,比如 Synology 的 QuickConnect、QNAP 的 myQNAPcloud 等等,这种方式的优点是简单易用,但是本质上也是一种中转服务,只是它是由 NAS 厂商提供的,而不是用户自己搭建的。并且只支持品牌的 NAS,不支持自建的 NAS。

还有人会提到说 ZeroTier,ZeroTier 是一个类似 Tailscale 的 VPN 服务,但是 ZeroTier 我在使用的时候经常会出现连接不上的情况,并没有 Tailscale 那么稳定,所以我没有选择 ZeroTier。当然也可能是笔者的网络环境问题,你可以尝试一下。

Tailscale 的注册

首先,我们需要注册一个 Tailscale 账号,打开 Tailscale 官网,点击「Get Started」注册一个账号。

https://login.tailscale.com/start 中,选择你拥有的第三方账号进行登录,比如 Google、GitHub、Apple 等等。

Tailscale 的安装

安装分为两部分,一部分在外网设备上安装 Tailscale 客户端,一部分在家中的 NAS 上安装 Tailscale 客户端。

首先我们先在外网设备上安装 Tailscale 客户端,打开 https://tailscale.com/download,点击「Download」下载对应的客户端,然后安装。安装方式就不详细介绍了,很简单。

安装完成后,打开 Tailscale 客户端,登录你刚刚注册的 Tailscale 账号即可。你可以将其设置为开机启动。

然后我们在家中的 NAS 上安装 Tailscale 客户端,这里以 unRAID 为例,打开 unRAID 的「Apps」,搜索「Tailscale」,点击「Install」安装 Tailscale 客户端。

unRAID-App-Tailscale.png

docker 配置使用默认配置即可,然后点击「Apply」。

Tailscale-docker-config.png

安装完成后,我们需要打开 unRAID 的「Docker」,找到刚刚安装的 Tailscale 客户端,点击「Logs」,找到「logon URL」,然后在电脑上打开浏览器,输入这个 URL,然后登录你的 Tailscale 账号,点击「Auth」授权。

如此一来,你的家中的 NAS 就和你的外网设备连接在了一起,你可以在外网设备上访问家中的 NAS 了。

你可以将其当作是 TailScale 为你的外网设备和家中的 NAS 搭建局域网,这样你的外网设备就可以访问家中的 NAS 了。相反的,NAS 也可以访问外网设备。

TailScale 的使用

Tailscale 的使用非常简单,你可以在 Tailscale 控制台 中看到你的设备和它的 IP 地址,你可以通过这个 IP 地址访问到你的设备。

Tailscale-console.png

例如,你可以在外网设备上通过 http://TailScale-IP:Port 访问到家中的 NAS 上的服务,比如你可以通过 http://TailScale-IP 直接访问到 unRAID 的 WebUI。其他服务也是一样,并且无需设置端口映射。

高阶使用 subnets

Tailscale 还有一个很强大的功能,就是 subnets,你可以在 Tailscale 控制台中设置 subnets,这样你就让你的外网设备访问到家中的局域网中的其他设备了。

比如你家中有一个打印机,你可以设置 subnets,让外网设备访问到这个打印机,这样你就可以在外网设备上通过这台打印机打印文件了。

具体设置方法可以参考 Tailscale 官方文档

总结

通过上述的设置,你应该已经可以从外网访问到家中的 NAS 了,而且速度快、安全性高、稳定性好。如果你使用 TailScale 的时候发现速度并不能达到预期,或者连接速度慢,那么再进阶一步,可以考虑自建 Headscale 服务,这样你就可以自己控制中转服务器的带宽了。对于笔者来说,Tailscale 已经能够满足我的需求了,所以我没有自建 Headscale 服务。

希望这篇文章对你有所帮助,如果有任何问题,欢迎在评论区留言,我会尽力解答。

参考

榨干这台 NAS 第 004 话-刮削

2022-11-21 11:18:17

这是一系列关于 NAS 的文章,系列的名称你们也看到了:「榨干这台 NAS」。我将尽可能详细的介绍 NAS 相关的知识,帮助你最大限度的发挥你的手中 NAS 的威力!

上一话中,讲解了硬链接功能,适合 PT 玩家们使用。那么之后就需要对下载下来的资源进行整理了。

我们在一般的视频网站中看电影或电视剧的时候,都会看到影视剧有海报,简介,分类,演职人员表等信息,那么这些信息应该怎么来呢?

电视墙海报墙效果.png

在我们自建的影音库中,所有的这些都需要通过「刮削」来获取。

对于一般的影视剧,通过一款叫做 TinyMediaManager 的软件即可一条龙完成刮削。

安装 TinyMediaManager

TinyMediaManager 支持 Windows、macOS、Linux 以及 Docker,对于我们基于 NAS 的使用场景来说,使用 Docker 是更为方便的。当然你也可以使用其他的版本,各个版本之间除了安装方式不同,使用方法都是一样的。

需要注意的是,TinyMediaManager 在4.0后改为了付费软件,如果没有付费将只支持刮削 50 部影视剧,所以接下来我们将使用 3.0 版本的 TinyMediaManager,放心,两个版本的刮削效果完全相同。

这里推荐使用 dzhuang/tinymediamanager:latest 镜像,能更好的支持中文。

在 unRAID 下,安装下图进行配置即可:

TinyMediaManager3-config.png

也可以使用命令启动:

1
2
3
4
5
6
7
8
docker run -d --name='TinyMediaManager3' \
-e 'TZ'="Asia/Shanghai" \
-e 'DISPLAY_WIDTH'='1920' \
-e 'DISPLAY_HEIGHT '='1080' \
-p '5800:5800/tcp' \
-v '/mnt/user/UNRAID/media':'/media':'rw' \
-v '/mnt/user/appdata/TinyMediaManager3':'/config':'rw' \
'dzhuang/tinymediamanager:latest'

运行命令后稍等片刻就安装完成了。

注意这里的 /media 映射的 /mnt/user/UNRAID/media 目录即为榨干这台 NAS 第 003 话-硬链接中硬链接所存放的地方。选择你的电影硬链接和电视剧硬链接的最深的共同父目录即可。

使用 TinyMediaManager

首先要注意的是:不要更新,不要更新,不要更新!

  1. 选择左侧的「电影」——「媒体库目录」,在媒体库目录中添加你的电影硬链接文件夹(注意,这里的文件夹可以一次添加多个);

  2. 选择左侧的「电影」——「刮削器」,在元数据刮削在选择 themoviedb.com

  3. 选择左侧的「电影」——「刮削器」——「刮削器选项」,在高级选项中设置首选语音为 大陆简体

  4. 关闭设置框,点击左上角的「更新源」,这样你的电影都会在列表中显示,目前是未刮削状态;

  5. 右键任意一部电影,点击「搜索并刮削所选电影」,一般来说如果命名规范,那么软件能直接识别出当前电影,在搜索结果中选中后,点击右下角的「确定」即可;

  6. 如果没有搜索结果,那么在上方的输入框中输入电影的 IMDbID 并点击搜索即可,IMDbID 可以在电影的豆瓣详情页中找到;

  7. 如果有多条搜索结果,那么大概率是存在同名电影,可以通过电影的上映年份,或者依次点击左侧搜索结果,并在右侧查看电影海报来判断;

  8. 点击「确定」后,观察右下角进度条,当进度条跑完后,选中刚刚刮削的电影,右键并选择「重命名或整理所选电影」,这样 TinyMediaManager 会为电影文件重新命名。

自此,一部电影就刮削完成了。

电视剧的刮削和电影大同小异,需要注意的是,电视剧由于有多季多集的情况存在,所以需要对每一集规范命名,实际测试下来以 S01E01 的命名方法就可以准确得被 TinyMediaManager 识别,S01E01 代表的就是第一季第一集。

所以在电视剧的刮削之前,还要为电视剧文件批量重新命名,在 Linux 下可以使用 rename 命令来完成,而在 Windows 下有许多批量重命名的软件可供使用。

需要注意的点

在刮削电视剧的时候,可能有时候季数和集数不太清楚,大家可以去 https://www.themoviedb.org/ 搜索需要刮削的电视剧。在详情页中点击「查看全部季」,这样就可以看到这部剧的季结构了。根据这些来对文件重新命名即可。

榨干这台 NAS 第 003 话-硬链接

2022-08-24 11:56:26

这是一系列关于 NAS 的文章,系列的名称你们也看到了:「榨干这台 NAS」。我将尽可能详细的介绍 NAS 相关的知识,帮助你最大限度的发挥你的手中 NAS 的威力!

上一话中已经介绍了下载工具,想必很多人在接触 NAS 的时候也或多或少会接触到 PT 吧,今天我就来介绍一个 PT 利器:硬链接。

起因

什么是 PT 呢,大家可以自己 Google,或者之后我再来讲。在 PT 下载中,不是说你下载完就好了,而是秉承着我为人人,人人为我的精神,在下载完成后最好一直保持做种,这样在别人下载这个资源的时候,也可以有较快的速度。

但是做种的时候,有一个问题,就是下载好的文件,不能改名也不能修改目录结构。这样一来,对后期的刮削操作来说是完全不能接受的。所以我们就要用到「硬链接」。

那么什么是硬链接呢?与硬链接相对应的,还有一种软链接,软链接其实就相当于 Windows 中的快捷方式,只是一个指向源文件的文件。在我们删除源文件后,快捷方式将无法使用。而硬链接就不一样了,你同样可以像创建软链接一样创建多个硬链接。但是当你删除源文件后,硬链接还是可以正常使用,和普通文件没有区别。只有当你删除所有的源文件和硬链接后,这个文件才算是真正的被删除。并且多个硬链接和源文件只会占用一个文件的空间。

举例来说:

  1. 你下载了最新的电影 不能说的秘密2.mp4,它存放在:Downloads/qBittorrentDownloads/media/moive/不能说的秘密/不能说的秘密2.mp4

  2. 你就可以创建一个硬链接,在另一个文件夹下面:media/moive/不能说的秘密2(2034)/不能说的秘密2(2034).mp4

  3. 这时候,你可以将 Downloads/qBittorrentDownloads/media/moive/不能说的秘密/不能说的秘密2.mp4 删除,media/moive/不能说的秘密2(2034)/不能说的秘密2(2034).mp4 仍然可以使用,反过来也是一样。但是不能将两个文件同时删除;

  4. 如果你创建的硬链接源文件发生了变化,你的所有硬链接同时也会将变化同步,例外的:文件名的变化将不会同步。

如何创建硬链接

简单的方法是使用 ln 命令,以上面的例子来说,只需要执行以下命令:

1
ln /Downloads/qBittorrentDownloads/media/moive/不能说的秘密/不能说的秘密2.mp4 /media/moive/不能说的秘密2(2034)/不能说的秘密2(2034).mp4

就可以创建一个硬链接。

但是这样对于一个文件来说还好说,对于众多的电影来说,却是一项大工程。所以我们需要用到 hLink 这一硬链接工具。

安装 hLink

在 UNRAID 的应用市场中并没有 hLink,所以无法通过应用市场直接安装。

我们可以直接通过命令来进行安装:

1
2
3
4
5
docker run -d --name hlink \
-e HLINK_HOME=$YOUR_HLINK_HOME_DIR \
-p 9090:9090 \
-v $YOUR_NAS_VOLUME_PATH:$DOCKER_VOLUME_PATH \
likun7981/hlink:latest

在上方的命令中你需要将你要硬链接的源文件的目录和硬链接文件的目录的共同的父目录映射进容器。

在我的机器上,具体命令是这样的:

1
2
3
4
5
docker run -d --name hlink \
-e HLINK_HOME=/share/appdata/hlink \
-p 9090:9090 \
-v /mnt/user:/share \
likun7981/hlink:latest

运行命令后稍等片刻就安装完成了。

使用 hLink

前往浏览器访问「你设备的IP地址:9090」,例如:http://192.168.1.223:9090,即可进入操作页面。

  1. 首先点击「创建配置」

    创建配置.png

  2. 为配置输入一个名字,用于标记这个配置的作用,例如:Moive;

  3. 接下来就要对配置文件进行修改,可以先看一下默认的配置文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    // 重要说明路径地址都请填写 绝对路径!!!!
    export default {
    /**
    * 源路径与目标路径的映射关系
    * 例子:
    * pathsMapping: {
    * '/path/to/exampleSource': '/path/to/exampleDest',
    * '/path/to/exampleSource2': '/path/to/exampleDest2'
    * }
    */
    pathsMapping: {},
    /**
    * 需要包含的后缀,如果与exclude同时配置,则取两者的交集
    * include 留空表示包含所有文件
    *
    * 后缀不够用? 高阶用法: https://hlink.likun.me/other/v2.html#%E6%96%B0%E5%A2%9E%E5%8A%9F%E8%83%BD
    */
    include: [
    'mp4',
    'flv',
    'f4v',
    'webm',
    'm4v',
    'mov',
    'cpk',
    'dirac',
    '3gp',
    '3g2',
    'rm',
    'rmvb',
    'wmv',
    'avi',
    'asf',
    'mpg',
    'mpeg',
    'mpe',
    'vob',
    'mkv',
    'ram',
    'qt',
    'fli',
    'flc',
    'mod',
    'iso',
    ],
    /**
    * 需要排除的后缀,如果与include同时配置,则取两者的交集
    *
    * 后缀不够用? 高阶用法: https://hlink.likun.me/other/v2.html#%E6%96%B0%E5%A2%9E%E5%8A%9F%E8%83%BD
    */
    exclude: [],
    /**
    * @scope 该配置项 hlink 专用
    * 是否保持原有目录结构,为false时则只保存一级目录结构
    * 可选值: true/false
    * 例子:
    * - 源地址目录为:/a
    * - 目标地址目录为: /d
    * - 链接的文件地址为 /a/b/c/z/y/mv.mkv;
    * 如果设置为true 生成的硬链地址为: /d/b/c/z/y/mv.mkv
    * 如果设置为false 生成的硬链地址为:/d/y/mv.mkv
    */
    keepDirStruct: true,
    /**
    * @scope 该配置项 hlink 专用
    * 是否打开缓存,为true表示打开
    * 可选值: true/false
    * 打开后,每次硬链后会把对应文件存入缓存,就算下次删除硬链,也不会进行硬链
    */
    openCache: false,
    /**
    * @scope 该配置项 hlink 专用
    * 是否为独立文件创建同名文件夹,为true表示创建
    * 可选值: true/false
    */
    mkdirIfSingle: true,
    /**
    * @scope 该配置项为 hlink prune 命令专用
    * 是否删除文件及所在目录,为false只会删除文件
    * 可选值: true/false
    */
    deleteDir: false,
    }

    可以到看到大部分配置都已经有的了,我们只要修改部分就行。例如最重要的 pathsMapping 属性。这是时候需要注意,此时填写的路径不是当前宿主机中的路径,而是容器中的路径,你需要根据启动容器时候的目录映射参数来修改相对应的路径。

    例如我的启动参数中映射是:-v /mnt/user:/share,即在宿主机的路径 /mnt/user 等于容器中的 /share,所以我原本电影(源文件)的下载路径:/mnt/user/UNRAID/downloads/qBittorrentDownloads/Media/Moive,这时候就要改为:/share/UNRAID/downloads/qBittorrentDownloads/Media/Moive,原本硬链接的存放位置:/mnt/user/UNRAID/media/Moive,就要更改为:/share/UNRAID/media/Moive

    所以最后我的 pathsMapping 属性就是:

    1
    2
    3
    pathsMapping: {
    '/share/UNRAID/downloads/qBittorrentDownloads/Media/Moive': '/share/UNRAID/media/Moive'
    },
  4. 然后点击「确定」;

  5. 之后点击「创建任务」

    创建任务.png

  6. 输入任务名称,任务类型选择 硬链(hlink),然后选择你刚刚创建的配置文件,最后点击「确定」;

  7. 最后在任务列表点击你刚刚点击的任务,就可以开始进行创建硬链接了。

需要注意的点

  1. 我在 榨干这台 NAS 第 002 话-下载工具 文章中有提到 qBittorrent 一些使其更好使用的配置(「工具」-「选项」-「下载」勾选「为不完整的文件添加扩展名 .!qB」),为的就是在创建硬链接的时候不将未下载完成的电影包括进去;

  2. 可以为任务设置定时任务,这样就不需要在每次有新电影时再进入 Web 页面进行手动操作了,一般来说一个小时执行一次任务即可;

  3. 我在 榨干这台 NAS 第 000 话-目录结构 中提到电影,电视剧不同类型的影音文件最好可以分文件夹保存,这时候在创建硬链接的时候就需要根据不同的分类创建不同的配置才可以,例如我就根据不同的媒体类型创建了不同的配置:

    hLink.png

  4. 当文件夹中有文件你不想进行硬链接时,可以在 exclude 中添加规则。

参考

https://github.com/likun7981/hlink

榨干这台 NAS 第 002 话-下载工具

2022-08-09 22:03:32

这是一系列关于 NAS 的文章,系列的名称你们也看到了:「榨干这台 NAS」。我将尽可能详细的介绍 NAS 相关的知识,帮助你最大限度的发挥你的手中 NAS 的威力!

刚打完篮球回到家,洗完了澡,喝了点小酒,看到有朋友在前两篇文章中催更,那就趁着酒意再写一篇。

之前我们介绍了目录结构和文件浏览工具,那么,文件从哪儿来呢?最常用的办法就是下载。仔细想想,我们在 PC 上是怎么下载文件的?可以通过浏览器直接下载,也可以通过各种下载软件进行下载。那么在 NAS 上应该使用什么工具呢?接下来我将介绍一下在 NAS 上常用的下载工具。

PS:喝醉了,如果写错了什么还请见谅。

qBittorrent

说起 BT 下载,国内的大家应该第一时间会想到迅雷吧,但是迅雷并不是一个好的 BT 下载软件。一般使用的就是 qBittorrent 这款软件。

搜索

还是老样子,前往「应用『Apps』」页面搜索「qBittorrent」,选择下图所示的应用:

qBittorrent.png

注意不要选错。

点击「安装『Install』」。

配置

qBittorrentConfig.png

可以看到这个容器需要配置为三个端口,一个路径和一个环境变量。

  1. 将宿主机的 8080 端口映射到容器的 8080 端口,此端口为该容器的 WebUI 端口,之后可以通过此端口来访问 WebUI 界面(注意,请确定宿主机的 8222 端口无其他程序占用,不然将无法启动容器,如果被占用,可以自行更换端口);

  2. 将宿主机的 6881 端口映射到容器的 6881 端口,此端口为 TCP 连接的端口,6881 是用于传入连接的默认端口;

  3. 将宿主机的 6881 端口映射到容器的 6881 端口,此端口为 UDP 连接的端口,6881 是用于传入连接的默认端口;

  4. 将宿主机的 /mnt/user/UNRAID/downloads/qBittorrentDownloads 路径映射至容器的 /downloads 路径,此路径为 qBittorrent 存放下载文件的路径;

  5. 设置 WEBUI_PORT 环境变量,值为 8080,这个环境变量的作用为设置容器内 WebUI 的端口,不用去改变它就行,如果这里改变了,那么在第一个端口映射配置时,也要把容器内端口改为改变后的值,否则启动容器后将无法访问 WebUI 页面。

上方都是除了下载路径外都是默认配置,我们需要在默认配置的基础上进行修改:

  1. 添加两个新的端口映射,端口值可以大一些,我使用的是:41638,一个为 TCP 端口,一个为 UDP 端口,完成后可以移除上方两个默认的 6881 端口映射,这么修改的原因是有些 PT 站点屏蔽了默认的 6881 端口;

  2. 点开下方的「显示更多设置」,修改 Appdata 路径为 /mnt/user/appdata/qBittorrent,这是 qBittorrent 所以配置信息所存放的路径;

  3. 还是在「显示更多设置」中,修改 PUID 环境变量的值为 0,修改 PGID 环境变量的值为 0,这样就可以以 root 用户来启动这个容器了;

  4. 添加 UMASK 环境变量,值为 000

qBittorrentConfig2.png

确认无误后,点击「应用」,即可启动容器。

使用

打开浏览器,访问 http://192.168.1.223:8080(注意,如果你在上述配置中修改过端口,请访问相应的端口,而 IP 地址则是你的 NAS 的 IP 地址),即可前往 qBittorrent 的操作页面。

默认的用户名为:admin,默认为密码为:adminadmin

修改密码

登录后的第一件事,请前往「工具」-「选项」-「Web UI」-「验证」修改你的密码。

一些使其更好使用的配置
  1. 「工具」-「选项」-「Web UI」-「语言」修改语言为简体中文;

  2. 「工具」-「选项」-「连接」-「监听端口」将其设置为之前启动容器时所配置传入连接端口,即刚刚设置的 41638强烈建议选择随机端口,而不是和我的一样,这么做的原因是,首先一部分 PT 站会禁用默认的6881 ~ 6999 端口。所以尽量不要选择这些范围内的端口;其次某些运营商会对 BT 流量进行封禁,如果很多人使用相同的端口的话,则会增大被运营商发现 的概率;

  3. 「工具」-「选项」-「下载」勾选「为不完整的文件添加扩展名 .!qB」,这样做可以方便之后设置硬链接;

  4. 「工具」-「选项」-「高级」-「libtorrent 相关」将「校验时内存使用扩增量」修改大一些,我设置成了 512,这样可以提高校验速度,提升之后辅种效率;

  5. 「工具」-「选项」-「BitTorrent」勾选「自动添加以下 tracker 到新的 torrent」,并在下方输入框中填入https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_all.txt中的内容,此处设置的作用的是为了获得更多的供种者,此操作能有效提高下载速度,建议每隔一段时间就更新一下 tracker 列表,更多 tracker 列表可以查看 https://github.com/ngosang/trackerslisthttps://github.com/XIU2/TrackersListCollection

  6. 「工具」-「选项」-「BitTorrent」取消勾选「Torrent 排队」,这一步是为了多任务同时下载与上传,BT 的本质就是我为人人,人人为我,你的下载即是别人的上传,所以请最好不要限制你的上传,在不影响使用的情况下提供最多的上传;

  7. 更多详细配置可以查看 https://www.jianshu.com/p/ac70172767ed,此文讲得十分详细。

分类

qBittorrent 与其他下载工具相比的优势之一在于他有强大的分类和标签机制。在左侧的边栏可以看到分类和便签管理模块。

我们可以通过鼠标右键任意分类来添加新的分类:

qBittorrent新建分类.png

然后填入分类名称和保存路径,可以为不同的分类设置不同的路径,例如 Moive 分类,保存路径 /downloads/Media/Moive、TV series 分类,保存路径 /downloads/Media/TV series,大家可以按照我在第000话中的 Media 目录配置来建立相关的分类。这会为之后的硬链接提供很大的方便。

最后在新建任务时候,就能选择已经设定的分类了。当然对于已有的任务对一个或多个任务右键即可在「分类」栏中选择相应的分类。

标签

其实有分类就已经完全足够了,标签和分类区别是:

  1. 标签无法设置保存路径;

  2. 一个任务可以拥有多个标签,但是只能拥有一个分类。

大家可以根据实际需求来使用。例如有些任务的名称名字比较奇怪,不好第一时间辨别,就可以使用标签来标记一下。又或者可以按照电影或电视剧的国家,上映年份来设置标签。

Linux 下的安装

以下操作均建立在系统已经安装 Docker 的基础之上。

  1. 拉取 Docker 镜像

    1
    docker pull linuxserver/qbittorrent:latest
  2. 启动容器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    docker run -d \
    --name='qBittorrent' \
    --net='bridge' \
    -e TZ="Asia/Shanghai" \
    -e 'WEBUI_PORT'='8080' \
    -e 'PUID'='0' \
    -e 'PGID'='0' \
    -e 'UMASK'='000' \
    -p '8080:8080/tcp' \
    -p '41638:41638/tcp' \
    -p '41638:41638/udp' \
    -v '/mnt/user/UNRAID/downloads/qBittorrentDownloads':'/downloads':'rw' \
    -v '/mnt/user/appdata/qbittorrent':'/config':'rw' \
    'linuxserver/qbittorrent:latest'

Aria2

除了专门用于 BT 下载的软件之外,还要推荐的是 Aria2 这个工具。它被认为从该软件的下载效率和可用性来看是 Linux 下最好用的下载管理器之一。Aria2 不仅支持 BitTorrent,还能够从各种来源多路检索所请求的文件。包括 HTTP,HTTPS,FTP 和 BitTorrent 协议。

搜索

前往「应用『Apps』」页面搜索「aria2」,选择下图所示的应用:

Aria2.png

点击「安装『Install』」。

配置

Aria2Config.png

Aria2 的配置看起来比较多,但是大多数使用默认配置即可,我讲一下重点的几个配置:

  1. RPC_SECRET 环境变量,这个值就是之后对 Aria2 进行管理的密码,设置一个不那么简单的密码即可;

  2. 将宿主机的 /mnt/user/UNRAID/downloads/aria2Download 路径映射至容器的 /downloads 路径,此路径为 Aria2 存放下载文件的路径;

  3. 将宿主机的 /mnt/user/appdata/aria2-pro 路径映射至容器的 /config 路径,此路径为 Aria2 存放下载文件的路径;

  4. RPC_PORT 是对 Aria2 进行管理的端口,默认即可;

  5. 余下几个端口使用默认配置即可,这里的 Listen Port 的作用和上方 qBittorrent 的传入连接的端口是相同的。但是在有 qBittorrent 的情况一般就不用 Aria2 来进行 BT 下载了,所以这边也就没有必要改动了,使用默认就可以;

确认无误后,点击「应用」,即可启动容器。

附上启动命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run -d \
--name='Aria2-Pro' \
--net='bridge' \
-e TZ="Asia/Shanghai" \
-e 'RPC_SECRET'='这里填写你的密码' \
-e 'IPV6_MODE'='true' \
-e 'RPC_PORT'='6800' \
-e 'LISTEN_PORT'='6888' \
-p '6800:6800/tcp' \
-p '6888:6888/tcp' \
-p '6888:6888/udp' \
-v '/mnt/user/UNRAID/downloads/aria2Download':'/downloads':'rw' \
-v '/mnt/user/appdata/aria2-pro':'/config':'rw' \
'p3terx/aria2-pro'

使用

qBittorrent 不同,Aria2 容器本身没有提供 WebUI。我们需要通过 AriaNg 这一工具来对 Aria2 进行管理。

  1. 打开浏览器,访问 http://ariang.mayswind.net/latest

  2. 点击左侧边栏的「AriaNg设置」;

  3. 选择第二个标签页「RPC(ariang.mayswind.net)」;

  4. 输入 Aria2 RPC 别名,用于区分多个 RPC,例如「家中 NAS」、「公司服务器」;

  5. 输入 Aria2 RPC 地址,将默认的 ,修改为你的 NAS 的 IP 地址即可,端口号则为默认的 6800,如果你在配置容器时修改过 RPC_PORT,那么这里需要改为修改后的端口号;

  6. Aria2 RPC 协议选择 「Http」;

  7. Aria2 RPC Http 请求方法选择「POST」;

  8. Aria2 RPC 密钥则为容器配置时填写的 RPC_SECRET 的值;

  9. 确认无误后,重新刷新本页面即可。

如果配置的没有问题,那么在左侧边栏的 Aria2 状态处则会显示绿色的已连接,则代表已经成功连接到你的 Aria2 服务。那么你就可以此页面添加下载任务并下载了。

AriaNg.png

参考

  1. https://github.com/qbittorrent/qBittorrent

  2. https://github.com/XIU2/TrackersListCollection

  3. https://github.com/ngosang/trackerslist

  4. https://www.jianshu.com/p/ac70172767ed

  5. https://zh.wikipedia.org/wiki/Aria2

  6. https://github.com/aria2/aria2

榨干这台 NAS 第 001 话-文件浏览器(File Browser)

2022-08-08 16:08:44

这是一系列关于 NAS 的文章,系列的名称你们也看到了:「榨干这台 NAS」。我将尽可能详细的介绍 NAS 相关的知识,帮助你最大限度的发挥你的手中 NAS 的威力!

在上一话中我们介绍了目录结构,那么应该如何编辑这些目录和文件呢?最最原始的方式就是使用命令来执行这些操作。但是这对于一部分不熟悉 Linux 系统的人来说,会显得有些困难。所以,这一话,我将介绍一个软件,可以用于 NAS 的文件浏览。如果你是群晖或威联通用户,那么其系统自带的软件就应该能满足大部分需求了,所以可以跳过这一话。

PS:接下来的操作将在 unRAID(6.10.2) 系统上进行。

PSS: 当然对于非 unRAID 系统的用户,我也会演示一下在 Linux 系统下应该如何进行安装。

unRAID 下的安装和使用

搜索

前往「应用『Apps』」页面搜索「FileBrowser」,选择下图所示的应用:

FileBrowser.png

点击「安装『Install』」,即图中「Actions」按钮所在位置(因为我已经安装过这个软件,所以不会显示「Install」按钮了)。

配置

FileBrowserConfig.png

然后依照上图所示填写。

主要是配置了两个路径和一个端口:

  1. 将宿主机的 / 路径映射至容器的 /srv 路径,此路径为你需要进行文件管理的路径;

  2. 将宿主机的 /mnt/user/appdata/filebrowser/ 路径映射至容器的 /db/ 路径,此路径为此容器的配置数据库路径,你之后所设置的用户名密码等个性配置信息都将存储在这里;

  3. 将宿主机的 8222 端口映射到容器的 80 端口,此端口为该容器的 WebUI 端口,之后可以通过此端口来访问 WebUI 界面(注意,请确定宿主机的 8222 端口无其他程序占用,不然将无法启动容器,如果被占用,可以自行更换端口)。

点击应用,即可启动容器。如果你的配置无误,那么在等待片刻后,容器将会自动启动,接下来就可以使用了。

附上 unRAID 下的启动命令:

1
/usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='FileBrowser' --net='bridge' -e TZ="Asia/Shanghai" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Tower" -e HOST_CONTAINERNAME="FileBrowser" -l net.unraid.docker.managed=dockerman -l net.unraid.docker.webui='http://[IP]:[PORT:8222]/files/' -l net.unraid.docker.icon='https://github.com/maschhoff/docker/raw/master/filebrowser/35781395.png' -p '8222:80/tcp' -v '/':'/srv':'rw' -v '/mnt/user/appdata/filebrowser/':'/db/':'rw' 'filebrowser/filebrowser' -d /db/database.db

使用

打开浏览器,访问 http://192.168.1.223:8222(注意,如果你在上述配置中修改过端口,请访问相应的端口,而 IP 地址则是你的 NAS 的 IP 地址),即可前往 File Browser 的操作页面。

默认的用户名为:admin,默认为密码为:admin

修改密码

登录后的第一件事,请前往「设置」-「个人设置」页面修改你的密码。

一些使其更好使用的配置
  1. 在「设置」-「个人设置」中将语言修改为中文;

  2. 在「设置」-「个人设置」中取消勾选「不显示隐藏文件」,这样你就能看到隐藏的文件和文件夹了;

  3. 在「设置」-「个人设置」中取消勾选「使用单击来打开文件和目录」,这样可以更加符合 Windows 资源管理器的操作逻辑,同时也可以使用 ctrlshift 来进行多选操作了;

  4. 由于在安装容器的时候设置了管理目录为宿主机的 / 路径,所以每次访问 WebUI 默认路径都是此路径,要想更换默认路径的话,软件并没有相应的设置,但是我们可以曲线救国,首先去到我们想默认显示的路径下。例如:/mnt/user/appdata/,然后我们只要将当前页面(http://192.168.1.223:8222/files/mnt/user/appdata/)添加到浏览器的书签,这样以后就可以通过这个书签来访问此路径了。同样的,我们可以为不同的目录设置不同的书签,从而达到快捷访问的目的。

Linux 下的安装

以下操作均建立在系统已经安装 Docker 的基础之上。

  1. 拉取 Docker 镜像

    1
    docker pull filebrowser/filebrowser:latest
  2. 启动容器

    1
    2
    3
    4
    5
    6
    docker run \
    -v '/':'/srv' \
    -v '/mnt/user/appdata/filebrowser/':'/db/' \
    -p '8222:80/tcp' \
    filebrowser/filebrowser:latest \
    -d /db/database.db

参考

榨干这台 NAS 第 000 话-目录结构

2022-08-08 15:14:00

这是一系列关于 NAS 的文章,系列的名称你们也看到了:「榨干这台 NAS」。我将尽可能详细的介绍 NAS 相关的知识,帮助你最大限度的发挥你的手中 NAS 的威力!

关于第一话,按照一般的文章套路来说,都是介绍一下 NAS 是什么,能用来做什么。但是我觉得能看到这篇文章的人,一般也不再需要科普这些内容。对了,此系列教程全部是软件向的,如果你需要自己组装一台 NAS,那么这系列的文章你可以先收藏,等组装完了再来看。话说回来,本文将向大家介绍一下我是如果规划我的文件目录结构的。

文件目录结构的构建,将对后续所有的容器搭建起到十分关键的影响,说他是万事之根本也不为过,不光是 NAS,你的 PC,你的程序项目,一个考虑周到且一目了然的目录结构,将极大方便你的后续工作。

P.S.:本文不但是 NAS 的文件目录,而且是这系列文章的目录结构。

P.P.S.:关于文件夹的命名规则,全小写(ofcourseistillloveyou),全大写(OFCOURSEISTILLLOVEYOU),大驼峰(OfCourseIStillLoveYou),小驼峰(ofCourseIStillLoveYou),下划线连接(of_course_i_still_love_you),连接号连接(of-course-i-still-love-you)都随你心意,只要你能做到一下几点:「统一、容易辨识、尽量不要空格,尽量只使用英文、数字、连接号和下划线」。

系列相关文章:

  1. 榨干这台 NAS 第 001 话-文件浏览器(File Browser)

root(根目录)

这里的 root 指的是你的 NAS 中存放你大部分个人文件的最顶层目录,而不是 Linux 系统中的 / 目录。

从这里开始,我们就要对你的文件进行分类。

1
2
3
4
5
6
7
8
9
10
𝐫𝐨𝐨𝐭
├── backup
├── books
├── code
├── data
├── downloads
├── manga
├── media
├── music
└── pictures

media(媒体)

存放你大多数媒体文件的地方。

肯定有一部分人想要有一台 NAS 的初衷是想搭建一个自己的家庭媒体中心。而这个文件夹就是家庭媒体中心的关键。你的电视剧,电影,小电影,行车记录仪,各类自媒体的视频存档,都可以放在这个文件夹下面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root
├── backup
├── books
├── code
├── data
├── downloads
├── manga
├── 𝐦𝐞𝐝𝐢𝐚
│ ├── av
│ ├── bilibili
│ ├── h
│ ├── moive
│ ├── tv_series
│ ├── teslacam
│ └── youtube
├── music
└── pictures

moive(电影)

存放你正经电影的地方。

此目录下应该只存放被刮削后的电影,每部电影应该拥有自己的单独子文件夹,子文件夹中存放电影、字幕、nfo文件和海报图片。电影(moive)文件夹的目录将在后续的文章中进行详细介绍。

tv_series(电视剧集)

存放你各类电视剧集的地方。

你的动漫,美剧,韩剧,抗日神剧等都应该存放在这里。和电影(moive)文件夹相同,每部电视剧集应该拥有自己的单独子文件夹,子文件夹中存放电视剧集、字幕、nfo文件和海报图片。电视剧集(tv_series)文件夹的目录将在后续的文章中进行详细介绍。

av(不正经电影)

存放小姐姐的地方。

你的小姐姐们都住在这里,这里的文件命名也有相应的规则,具体规则以及相关的工具,也会在后续文章中介绍。

h(不正经视频)

一些没有番号部队番号的小姐姐,将会放在这里。

youtube

YouTube 的视频存档将存放在此处。后续将会介绍用于下载 YouTube 视频的工具。

bilibili

同 YouTube。

TeslaCam(特斯拉汽车行车记录视频以及哨兵录像)

特斯拉汽车行车记录录像将会存放在此处。后续将会介绍用于合并和查看行车记录仪的工具。

pictures(照片)

NAS 的另一个作用就是作为家庭相册,你的手机,相机拍摄的照片和视都将存储在此处,在这里,分类的方式多种多样,可以按照设备分类、按照日期分类、按照事件分类请以你觉得方便的形式进行分类,这些都不太会影响后续的家庭相册的建立。但是请尽量做到容易辨识。

关于家庭相册的建立,后续的文章也将会进行介绍。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root
├── backup
├── books
├── code
├── data
├── downloads
├── manga
├── media
├── music
└── 𝐩𝐢𝐜𝐭𝐮𝐫𝐞𝐬
├── iPhone_7
│ └── 2022
│ └── 08
├── Nikon_D5600
│ └── 20220808_重庆行
├── iCloud
│ └── bot960528gmailcom
│ └── 2022
│ └── 08
│ └── 08
├── Qzone
└── other

接下来介绍几种分类方式:

iPhone_7(按照设备)

此处将存放你的 iPhone 7 拍摄的照片和视频。

2022(年份)

此处将存放你的 iPhone 7 于 2022 年所拍摄的照片和视频。

08(月份)

此处将存放你的 iPhone 7 于 2022 年 8 月所拍摄的照片和视频。

Nikon_D5600(按照设备)

此处将存放你的 Nikon D5600 拍摄的照片和视频。

20220808重庆行(时间旅行)

此处将存放你的 Nikon D5600 在 2022 年 8 月 8 日于重庆旅行时拍摄的照片和视频。

iCloud(按照备份方式)

此处将存放从 iCloud 下载的照片和视频。关于自动从 iCloud 定时下载照片的方法,后续将进行介绍。

Qzone(按照照片来源)

此处将存放你在 QQ 空间的黑历史照片。关于 QQ 空间相册、说说的下载备份方法,后续将进行介绍。

other(其他)

此处将存放一些你懒的分类无法分类的照片。

downloads(下载)

下载,也是 NAS 的主要任务之一,你的所有下载任务以及下载的文件,应该都存放在此处。

关于下载的分类,我的规则是按照下载器的种类进行分类。当然,在各类下载器内部,希望大家也能做好文件的分类。

各类下载器的安装和配置,今后也将会有相应的介绍。

系列相关文章:

  1. 榨干这台 NAS 第 002 话-下载工具
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root
├── backup
├── books
├── code
├── data
├── 𝐝𝐨𝐰𝐧𝐥𝐨𝐚𝐝𝐬
│ ├── aria2Downloads
│ ├── emuleDownloads
│ ├── farmDownloads
│ ├── qBittorrentDownloads
│ ├── thunderDownloads
│ └── transmissionDownloads
├── manga
├── media
├── music
└── pictures

aria2Download(aria2 下载目录)

此处将存放由 aria2 下载的文件。

emuleDownloads(emule 下载目录)

此处将存放由 emule 下载的文件。

qBittorrentDownloads(qBittorrent 下载目录)

此处将存放由 qBittorrent 下载的文件。

transmissionDownloads(transmission 下载目录)

此处将存放由 transmission 下载的文件。

code(代码)

如果你是一个程序员,那么 NAS 还能成为你的代码仓库,当你在 NAS 上部署你的 git 服务时,其中的数据就可以存储在这里。如果你只将此文件夹作为你的工作目录的话(例如通过 ssh 连接到此服务器进行编码),那么你可以按照代码类型或者编程语言进行分类。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root
├── backup
├── books
├── 𝐜𝐨𝐝𝐞
│ ├── script
│ ├── project
│ ├── java
│ └── python
├── data
├── downloads
├── manga
├── media
├── music
└── pictures

script(按照类型)

此处将存放你的各类脚本。

project(按照类型)

此处将存放你的各个项目。

java(按照编程语言)

此处将存放你使用 java 编写的代码。

python(按照编程语言)

此处将存放你使用 python 编写的代码。

backup(备份)

备份,这是数据保存中必不可少的一环,如果你的数据很宝贵。请务必进行备份。后续我将为大家介绍应该如何备份你的数据。

备份文件夹的命名可以简单些,你只要区分这是什么软件或数据的备份即可,所以你可以使用软件或数据名称加backup,作为你的文件名。

关于备份,希望能做到以下几点:

  1. 记录备份文件的备份时间;

  2. 定时备份;

  3. 压缩后并加密,减少占用空间的同时并保证备份文件的安全;

  4. 3-2-1 备份原则,至少制作份备份,将备份分别存放在种不同的存储媒介中,至少存放份在异地。

请大家务必重视备份的重要性,不然等到数据丢失的时候,是无论如何也无法挽救的。

1
2
3
4
5
6
7
8
9
10
11
12
root
├── 𝐛𝐚𝐜𝐤𝐮𝐩
│ ├── bitwarden_backup
│ └── wechat_backup
├── books
├── code
├── data
├── downloads
├── manga
├── media
├── music
└── pictures

wechat_backup(微信备份)

这里用于存放你的微信备份。

bitwarden_backup

这里用于存放你的 BitWarden 备份。

music(音乐)

此处用于存放你的音乐。音乐的分类就比较简单,可以先按歌手进行分类,然后再安装专辑分类即可。

1
2
3
4
5
6
7
8
9
10
11
12
root
├── backup
├── books
├── code
├── data
├── downloads
├── manga
├── media
├── 𝐦𝐮𝐬𝐢𝐜
│ └── 周杰伦
│ └── 叶惠美
└── pictures

周杰伦

此处用于存放周杰伦的音乐。

叶惠美

此处用于存放周杰伦的叶惠美专辑的歌曲。

books(电子书)

此处用于存放你的电子书,可以按照书籍的类型来分类,如:小说、文献、教科等等,这边将不再进行举例。。后续也将会介绍如果搭建你的电子书仓库。

1
2
3
4
5
6
7
8
9
10
root
├── backup
├── 𝐛𝐨𝐨𝐤𝐬
├── code
├── data
├── downloads
├── manga
├── media
├── music
└── pictures

manga(漫画)

此处用于存放的漫画。后续也将会介绍如果搭建你的漫画仓库。

1
2
3
4
5
6
7
8
9
10
root
├── backup
├── books
├── code
├── data
├── downloads
├── 𝐦𝐚𝐧𝐠𝐚
├── media
├── music
└── pictures

data(数据)

数据是一个宽泛的词,其实上述所有的分类,都可以将其划进数据目录,所以这个目录的目的就是为了存放那些无法被上述目录所包含的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root
├── backup
├── books
├── code
├── 𝐝𝐚𝐭𝐚
│ ├── document
│ └── ISO
│ ├── Windows
│ ├── Ubuntu
│ ├── Adobe
│ └── JetBrains
├── downloads
├── manga
├── media
├── music
└── pictures

ISO

用于存放你下载的各类系统镜像和各类软件的安装文件。

Windows

用于存放 Windows 系统安装镜像。

Ubuntu

用于存放 Ubuntu 系统安装镜像。

Adobe

用于存放 Adobe 软件安装程序。

JetBrains

用于存放 JetBrains 软件安装程序。

document(文档)

用于存放你的工作生活文档。分类按照你的实际需求来就行,没有一种特定方法。

只要能遵循分类原则,就可以建立出易于管理和使用的目录。

end

如果你刚开始使用 NAS,那么建议你可以按照这篇文章的介绍,来建立你的目录结构。如果你已经使用 NAS 很长一段时间,上面已经存储了许多数据,那么我还是建议你最好能够慢慢的,分块的整理一下你的 NAS,这将对今后的使用起到极大的帮助!

如果大家对目录结构有什么好的建议或意见,也可以在下面留言,我们可以一起讨论,如果有好的想法,我会第一时间对文章进行完善。