V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fregie
V2EX  ›  NAS

NAS 做家庭媒体中心-实战

  •  
  •   fregie · 221 天前 · 6833 次点击
    这是一个创建于 221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    (与文无关)个人项目推广: Pho - 优雅地同步和浏览相册(通过 smb,webdav,nfs 等协议)

    之前写的文章列举了我个人的 NAS 在实际生活中发挥到的作用,这篇文章主要分享一下我个人的 NAS 在家庭媒体中心方面的实战经验.

    为了系统兼容性和部署方便,我选择用 docker 部署所有服务,并且把部署方式转化成一行命令的形式,大部分服务只需要在命令行执行一条命令即可部署

    这里默认已经安装好了 docker 环境,实际上大部分 NAS 系统都已经预装了 docker,只需要 ssh 连接到 NAS 执行命令即可

    方案 - Alist + rclone + qbittorrent + Plex

    这个方案有点复杂,但是优势在于寻找资源十分方便,各种网盘资源只要转存到自己的网盘就可以直接用 plex 观看,不需要下载到本地.各种种子和磁力连结只需要丢到 qbittorrent 去下载就不用管了,下载完了就可以用 plex 观看.

    • Plex 作为媒体服务器和客户端
    • Alist 用来把网盘映射到 webdav
    • rclone 用来把 webdav 映射到本地
    • qbittorrent 用来下载种子和磁力链接

    不需要直接看网盘资源可以忽略掉 Alist 和 rclone 部分 不需要下载种子和磁力链接可以忽略掉 qbittorrent

    BTW: plexamp app 在移动端听无损音乐也超好用

    部署 Alist

    Alist 文档: https://alist.nn.ci/zh/guide/

    部署服务

    执行命令:

    docker run -d \
      --restart=always \
      -v /mnt/user/path-of-config:/opt/alist/data \
      -p 5244:5244 \
      -e PUID=0 \
      -e PGID=0 \
      -e UMASK=022 \
      --name="alist" \
      xhofe/alist:latest
    
    • -v /mnt/user/path-of-config:/opt/alist/data这个部分需要把冒号前的部分改为你 NAS 上的某个目录,这个目录用来存放 alist 的配置文件,如果你不想用这个目录,可以直接把这个部分删掉,但是这样的话,你每次重启 alist 都需要重新配置一遍,不推荐这么做.

    查看默认密码

    docker logs alist
    

    输出信息像这样,其中GQZ8zwXs就是你的管理员密码

    INFO[2023-09-18 03:00:40] reading config file: data/config.json        
    INFO[2023-09-18 03:00:40] config file not exists, creating default config file 
    INFO[2023-09-18 03:00:40] load config from env with prefix:            
    INFO[2023-09-18 03:00:40] init logrus...                               
    INFO[2023-09-18 03:00:40] Successfully created the admin user and the initial password is: GQZ8zwXs 
    INFO[2023-09-18 03:00:40] start HTTP server @ 0.0.0.0:5244             
    INFO[2023-09-18 03:00:40] qbittorrent not ready.                       
    INFO[2023-09-18 03:00:40] Aria2 not ready.  
    

    登录

    在浏览器打开http://your-nas-ip:5244,输入用户名admin和刚才查看到的密码登录.

    登录后点击页面上的管理进入管理页面,这里建议先修改用户名和密码 password

    配置储存

    不同储存方式的配置方式不同,这里以百度网盘为例,其他网盘的配置方式可以参考 Alist 文档: https://alist.nn.ci/zh/guide/drivers/

    挂载百度网盘关键是获取到刷新令牌,客户端 ID,客户端密钥这三个参数.使用浏览器打开以下 URL 并登录你的百度网盘帐号,就会显示这三个参数 https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id=iYCeC9g08h5vuP9UqvPHKKSVrKFXGa1v&redirect_uri=https://alist.nn.ci/tool/baidu/callback&scope=basic,netdisk&qrcode=1

    baidu

    点击 Alist 管理页面的储存 -> 添加,驱动选择百度网盘.

    • 挂载路径: 与 NAS 中的路径无关,是 Alist 内部文件系统的路径,按喜好填即可,比如/baidu
    • 刷新令牌,客户端 ID,客户端密钥: 填上面获取到的参数
    • WebDAV 策略: 如果是内网使用选本地代理即可,外网使用建议选 302 重定向

    其他项保持默认点击保存即可,保存后看到状态显示work即为配置成功 work

    访问 webdav

    我们部署 Alist 的主要目的是能以 webdav 的形式访问网盘内容,按以上方式部署好了之后,可以用以下 url 访问 webdav,用户名密码即为你在 Alist 管理页面设置的用户名密码

    http://your-nas-ip:5244/dav
    

    部署 rclone

    rclone 文档: https://rclone.org/docs/

    下载 rclone

    下载地址: https://rclone.org/downloads/

    找到对应你 CPU 架构的版本下载,最好直接选择Linux一列下的下载,这一列下载 zip 解压后直接是可以执行文件,任何 Linux 发行版都可以直接用.这里以v1.64.0-amd64架构为例:

    mkdir rclone
    cd rclone
    wget https://downloads.rclone.org/v1.64.0/rclone-v1.64.0-linux-amd64.zip
    unzip rclone-v1.64.0-linux-amd64.zip
    cd rclone-v1.64.0-linux-amd64
    sudo cp rclone /usr/bin/
    sudo chmod +x /usr/bin/rclone
    

    配置 webdav

    命令行输入rclone config命令进入配置引导,以下为示例,有>地方是需要手动输入后按回车继续.

    rclone config
    No remotes found, make a new one?
    n) New remote
    s) Set configuration password
    q) Quit config
    n/s/q> n
    
    Enter name for new remote.
    name> alist
    
    Option Storage.
    Type of storage to configure.
    Choose a number from below, or type in your own value.
     1 / 1Fichier
       \ (fichier)
     2 / Akamai NetStorage
       \ (netstorage)
     3 / Alias for an existing remote
       \ (alias)
    .
    .
    .
    Storage> webdav # 选择 webdav
    
    Option url.
    URL of http host to connect to.
    E.g. https://example.com.
    Enter a value.
    url> http://192.168.100.152:5244/dav # 这里填你 alist 的 webdav 地址
    
    Option vendor.
    Name of the WebDAV site/service/software you are using.
    Choose a number from below, or type in your own value.
    Press Enter to leave empty.
     1 / Fastmail Files
       \ (fastmail)
     2 / Nextcloud
       \ (nextcloud)
     3 / Owncloud
       \ (owncloud)
     4 / Sharepoint Online, authenticated by Microsoft account
       \ (sharepoint)
     5 / Sharepoint with NTLM authentication, usually self-hosted or on-premises
       \ (sharepoint-ntlm)
     6 / Other site/service or software
       \ (other)
    vendor> other # 选择 other
    
    Option user.
    User name.
    In case NTLM authentication is used, the username should be in the format 'Domain\User'.
    Enter a value. Press Enter to leave empty.
    user> fregie # 这里填你 alist 的用户名
    
    Option pass.
    Password.
    Choose an alternative below. Press Enter for the default (n).
    y) Yes, type in my own password
    g) Generate random password
    n) No, leave this optional password blank (default)
    y/g/n> y
    Enter the password:
    password: # 这里填你 alist 的密码,注意输入的时候不会显示,输入后回车即可
    Confirm the password:
    password: # 再次输入密码确认
    
    Option bearer_token.
    Bearer token instead of user/pass (e.g. a Macaroon).
    Enter a value. Press Enter to leave empty.
    bearer_token>  # 直接回车跳过
    
    Edit advanced config?
    y) Yes
    n) No (default)
    y/n> n
    
    Configuration complete.
    Options:
    - type: webdav
    - url: http://192.168.100.152:5244/dav
    - vendor: other
    - user: fregie
    - pass: *** ENCRYPTED ***
    Keep this "alist" remote?
    y) Yes this is OK (default)
    e) Edit this remote
    d) Delete this remote
    y/e/d> y
    
    Current remotes:
    
    Name                 Type
    ====                 ====
    alist                webdav
    
    e) Edit existing remote
    n) New remote
    d) Delete remote
    r) Rename remote
    c) Copy remote
    s) Set configuration password
    q) Quit config
    e/n/d/r/c/s/q> q
    

    检查配置是否成功: 以下命令将列出 webdav 根目录下的文件和目录,能正确输出即为配置成功

    rclone lsd alist:/ --max-depth 1
              -1 2023-09-04 15:00:14        -1 baidu
              -1 2023-09-06 14:19:17        -1 nas
              -1 2023-09-04 14:29:07        -1 quark
    

    映射到 NAS 文件系统

    mkdir --mode=777 /mnt/alist
    rclone mount --daemon --vfs-cache-mode minimal --allow-non-empty --allow-other alist:/ /mnt/alist -vv
    

    查看映射是否成功,有类似以下输出即为成功

    ls /mnt/alist
    baidu/  nas/  quark/
    

    部署 qbittorrent

    docker run -d \
      --name=qbittorrent \
      -e PUID=0 \
      -e PGID=0 \
      -e TZ=Asia/Shanghai \
      -e WEBUI_PORT=8090 \
      -p 8090:8090 \
      -p 6881:6881 \
      -p 6881:6881/udp \
      -v /mnt/user/media/qbittorrent/config:/config \
      -v /mnt/user/media:/downloads \
      --restart unless-stopped \
      lscr.io/linuxserver/qbittorrent:latest
    
    • /mnt/user/media/qbittorrent/config - 用来保存 qbittorrent 配置的位置,需要替换成你自己 NAS 中的某个目录
    • /mnt/user/media - 用来保存下载内容的位置,需要替换成你自己 NAS 中的某个目录

    部署完成后用浏览器打开http://your-nas-ip:8090即可访问 qbittorrent,默认用户名密码为adminadminadmin,配置和使用都比较简单,就不详细介绍了.

    部署 plex

    注册 plex

    在 plex 官网注册一个帐号,不详细说明了.

    获取 claim token

    在浏览器打开以下地址,登录你的 plex 帐号,然后复制 claim token,类似这种claim-xxxxxxxxxxxxxxxxx https://www.plex.tv/claim

    部署 plex

    docker run -d \
    --name plex \
    --network=host \
    -e TZ="Aisa/Shanghai" \
    -e PLEX_CLAIM="claim-xxxxxxxxxxxxxxxxx" \
    -v /mnt/user/config-cache/plex-config:/config \
    -v /mnt/user/media/plex/transcode:/transcode \
    -v /mnt/user/media:/data/media \
    -v /mnt/alist:/data/alist \
    plexinc/pms-docker
    
    • /mnt/user/config-cache/plex-config - 用来保存 plex 配置的位置,需要替换成你自己 NAS 中的某个目录
    • /mnt/user/media/plex/transcode - 用来保存 plex 转码缓存的位置,需要替换成你自己 NAS 中的某个目录
    • /mnt/user/media - 用来保存 plex 媒体库的位置,需要替换成你自己 NAS 中储存媒体资源的目录
    • /mnt/alist - 用来保存 alist 挂载的网盘的位置,需要替换成你自己 NAS 中 alist 挂载的目录

    容器启动后需要初始化一小段时间,初始化完成后可以用浏览器打开http://your-nas-ip:32400/web访问 plex,按照提示登录即可.

    配置 plex

    plex 启动后,使用浏览器打开http://your-nas-ip:32400/web访问 plex,点击设置 -> 管理 -> 媒体库 -> 添加资料库.我一般是分为电影,电视剧,音乐三个资料库,每个资料库都可以添加多个文件夹,每个文件夹都可以设置为自动扫描,这样就可以自动把文件夹中的内容添加到资料库中了.

    这里主要说一下文件夹的添加: 核心就在于将我们之前映射的 alist 的各种网盘的目录以及 NAS 中储存媒体资源的目录添加到媒体库中.例如我这里:
    /data/alist/baidu/movie - /data/alist是我们在启动 docker 容器时将/mnt/alist映射到了这个目录,所以在这里可以找到 alist 映射的网盘文件,baidu是 alist 中配置的百度网盘的挂在路径,movie是百度网盘中的一个目录,我把所有电影资源会转存到这个目录.

    plex-path

    按照以上方式配置完资料库后等待 plex 扫描资源即可,大部分资源都能刮削到正确的信息,刮削不到的可能需要手动匹配一下,就不赘述了.

    最后

    在你的各个客户端安装 plex 客户端并登录你的帐号就可以观看了 plex John Wick

    看看其他

    注: 以上分享的主要目的在于推广我的个人项目Pho,本文的作者即 Pho 的个人开发者.
    如果文章对大家有所帮助,可以通过使用或宣传Pho来支持,我会继续更新一些此类主题的实战教程.

    43 条回复    2023-11-06 16:11:20 +08:00
    compiler
        1
    compiler  
       221 天前
    太强了老哥,老哥太强了
    SoyaDokio
        2
    SoyaDokio  
       221 天前
    正如 op 所说,现在明显感觉玩 NAS 的人多了,软硬件生态都越来越好。比如 op 这个看起来就很棒,回头体验一下。感谢分享。
    看到 op 家里的 unraid 还当虚拟机用,还是忍不住啰嗦一句:ALL IN ONE 使不得,使不得阿,NAS 就专心当它的存储单元就好,搞其它的还是另起一个小型服务器比较好。
    SoyaDokio
        3
    SoyaDokio  
       221 天前
    好了,都知道你家金毛超亲人的,什么时候借我撸两天(逃 :heart:
    netizenHan
        4
    netizenHan  
       221 天前
    老哥太强了,我偷懒直接一个极空间完事了,其实后面比较大的问题是各个设备的网络问题,我图便宜买的个小米电视,wifi 只能跑到百兆,一部 80 多 G 的蓝光电影根本跑不动
    fregie
        5
    fregie  
    OP
       221 天前
    @SoyaDokio 并不算是 AIO,软路由和主力机是单独的设备,剩下这些东西 BOOM 了只要数据不丢也影响不大
    wanwaneryide
        6
    wanwaneryide  
       221 天前   ❤️ 1
    映射网盘文件夹到群辉文件夹,建议用 clouddriver2 ,群辉套件就有,可视化界面操作,映射文件夹或卸载映射都方便。夸克网盘+阿里网盘+115 网盘+alist+emby ,媒体中心,确实爽,能转存的资源就转存,不能转存的就用夸克离线下载,实在还不行的就用 qb 下载到本地。
    fregie
        7
    fregie  
    OP
       221 天前
    @netizenHan 网络就是另一个主题了,我是软路由+tplink xdr5480 做 AP, 100 多平完全没问题,AP 摆放的位置很重要
    alexhx
        8
    alexhx  
       221 天前
    我用的群晖,nastool 从 pt 站搜+下资源。cloud sync 从云盘同步资源,再用 nastool 目录同步到媒体库。刮削是 nastool+emby 一起做。
    影视资源基本都是 pt 站,云盘很少用。
    redbeanzzZ
        9
    redbeanzzZ  
       221 天前
    @SoyaDokio 部署完使用不瞎折腾用 AIO 有啥使不得的,宿主机真挂了群辉盘里数据都还在
    jixiangqd
        10
    jixiangqd  
       221 天前
    我一直在用的是 阿里云盘+clouddrive2 挂载+nastool 整理识别、下载+emby 削刮+infuse pro 的方案。
    阿里云盘找对资源站,更新很及时的,比 pt 之类的都方便。
    不过因为之前各家云盘都出过幺蛾子,我还一直用 NASTOOL 刷着 pt ,保证有账号可用。
    NASTOOL 才是神器,不过可惜停更了
    ciki
        11
    ciki  
       221 天前
    解码还是 Kodi 强,局域网 plex 没 kodi 流畅
    safari9
        12
    safari9  
       221 天前
    学习了
    sypopo
        13
    sypopo  
       221 天前 via Android   ❤️ 1
    NAStool 作者开发新的项目了,moviepilot 。
    SouLX
        14
    SouLX  
       221 天前
    nastool(远程搜索、下载、刮削、硬链接整理)+emby+qb/tr
    主要还是 pt ,
    alist 和 coulddrive2 装上了,但是一直没启用。
    SoyaDokio
        15
    SoyaDokio  
       221 天前
    @redbeanzzZ #9 软路由挂了累死...
    TroyChen
        16
    TroyChen  
       221 天前
    不用豆瓣,没体会到 NAStool 的便捷之处,目前还是自己下想看的电影+手动 tMM 刮削。
    自己选电影片源的话可以选自己想要的分辨率 1080P/4K 、编码格式,这点自己把控还挺好(非 PT/重度仓鼠症);
    目前唯一不爽的是手动用 tMM 刮削了,还没掌握如何配置自动刮削
    guazila
        17
    guazila  
       221 天前 via Android
    大容量硬盘没几个钱,不想把东西放网盘里,不稳定。之前碰到过把小孩的动画片放网盘挂在 alist 里面,碰到几次播放不了的情况,有可能是网盘 token 过期,或者 Alist 需要更新。折腾好可能要十分钟左右,对于小孩突然想看一集动画,等这么久实在有点尴尬。
    fregie
        18
    fregie  
    OP
       221 天前
    @ciki 没必要服务端解码吧,原画质播放+客户端解码就完全没问题
    oneKnow
        19
    oneKnow  
       221 天前
    租房党,目前用的是群晖 920 ,直接用 nastool 挂 pt 站点,ipv6 在外面也可以直接连回去提前下资源,自动刮削分类,还可以自动签到刷流,推送消息到微信,由于用的是投影仪看电影,性能太垃圾了,kodi 有时候播着播着就内存爆了,直接用 jellyfin 走服务端解码,播放端性能垃圾的强烈推荐 jellyfin ,目前用着感觉还可以😂
    NickX
        20
    NickX  
       221 天前
    jellyfin+jellyseerr+Prowlarr+Radar+Sonarr+qBittorrent 的路过,自己不玩 PT ,下载没资源,就不想玩了。不想折腾,想要看啥电影直接吸血雷下载。
    redbeanzzZ
        21
    redbeanzzZ  
       221 天前
    @SoyaDokio 我用了两三年了,不动他绝对不会挂
    Raynard
        22
    Raynard  
       221 天前
    @TroyChen NAStool 基础设置里有自动刮削和命名。
    xiaotianhu
        23
    xiaotianhu  
       221 天前
    NAStool+Transmission 挂 PT 就够用了,大法彩电上装个 KODI 。

    AList 看免费阿里云的好日子一去不返咯
    lyq1996
        24
    lyq1996  
       221 天前 via Android
    支持,写这么多教程不容易。我是黑裙 Alist + rclone(docker) + qbittorrent + Jellyfin 。
    niji
        25
    niji  
       220 天前 via iPhone
    有 webdav 为啥非得用 plex 这种服务端解码的呢?用本地播放器直接解码多好
    jowu598
        26
    jowu598  
       220 天前
    有没有用 gstreamer 搭建的家用 media server ,主要目前家用的 nas J4125 转码能力有点拉胯,买了个 rock5b ( RK3588 ,不支持 ffmepg )一直没有时间倒腾
    buruoyanyang
        27
    buruoyanyang  
       220 天前
    在下 Unraid+qb+emby+nextcloud (这玩意儿真的好卡啊),但是好像 emby 的 tv 版本不咋更新了还是咋地,没法 4k 播放
    Zerolouis
        28
    Zerolouis  
       220 天前 via Android
    我的方案是黑裙+qb/tr+nastool+jellyfin ,配置好 nastool 自动挂削,因为是 j3455 跑在 esxi 上面,没弄核显直通,客户端硬解。
    手机电脑用 jellyfin 客户端,电视用 xbox kodi ,不想专门弄个盒子就直接用主机了
    azusematsuri
        29
    azusematsuri  
       220 天前 via Android
    搞完之后有空搞上 promtheus+grafana ,机器、系统、qbit 、plex 都有打点工具,监控拉满
    clocean
        30
    clocean  
       220 天前
    感觉大家都有用 nastools 的?我这边是 nastools+emby+rclone+qbittorrent+jackett ,重点是我用的 VPS+OneDrive ( E5 ) 往死了薅羊毛
    clocean
        31
    clocean  
       220 天前
    贴一下图,《小姐》不错的
    vsyf
        32
    vsyf  
       220 天前
    @redbeanzzZ #21
    也就是你动挂过?
    搞 AIO 还不继续折腾我是不信的。
    y1y1
        33
    y1y1  
       220 天前
    jellyfin 装几个插件刮削效果不也挺好么,bangumi 刮削动画、metatube 刮削大姐姐、metashark 刮削豆瓣
    HonovaSV
        34
    HonovaSV  
       220 天前 via Android
    我拿吃灰的树莓派和闲置移动硬盘弄了一个,autobangumi + qbittorrent + jellyfin 一键订阅自动下载新番,只不过树莓派的性能不太行,电视用 kodi 解码观看,移动端用 jellyfin + vlc
    xiamy1314
        35
    xiamy1314  
       220 天前
    nastool+emby+qb
    redbeanzzZ
        36
    redbeanzzZ  
       220 天前
    @vsyf 软路由设置的时候肯定是挂过,内网环境穿透什么的都已经稳定使用了软路由没什么可动的。
    宿主机不会动,其他虚拟机动就没挂过网络。
    现在也确实没折腾了
    zxxoo
        37
    zxxoo  
       220 天前
    收藏一下
    andyskaura
        38
    andyskaura  
       220 天前
    看完想买个房了
    paranoiagu
        39
    paranoiagu  
       219 天前 via Android
    rclone 好像没搞成 docker ,能搞成 docker 吗?
    Achophiark
        40
    Achophiark  
       213 天前
    @jixiangqd clouddrive2 收费了吧,免费只能挂载一个
    jixiangqd
        41
    jixiangqd  
       213 天前
    @Achophiark #40 恩 一个基本够用,如果不够也可以套一层 alist 用 webdav 挂载
    Aolinver
        42
    Aolinver  
       190 天前
    Pho 必须授权所有照片才能使用这个有点无语,选择部分无法使用!用了一大圈目前群晖的 Photos 体验最好,人脸识别这块倒是没用上,可以参考这个
    krazy00529
        43
    krazy00529  
       173 天前
    优秀,同样家庭影院玩家支持一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2910 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.