折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)

前言

最近折腾了一段时间树莓派,

最开始是想弄个群晖玩一下NAS,查了一下最少也得两千大洋,还没算硬盘(流下了贫穷的泪水o(╥﹏╥)o)。

查了下NAS的一些开源解决方案,翻出了家里闲置的树莓派4B和移动硬盘,想先自己折腾着感受一下,折腾完了发现,这套其实就够自己用的了~~

所以想买一个东西之前,一定要想好自己是否需要它,是否需要买特别好的。够用就行的

由于一开始没注意安装的是32位系统,导致无法安装只提供arm64版本的人人影视,所以开始重新安装及迁移,顺便简单记录一下流程。

开始搞

原材料:

树莓派4B 4GB版

USB3.0 移动硬盘一块

联通光纤(联通光纤有默认公网IP)

移动硬盘插到树莓派的USB3.0口上,树莓派通过网线连接到路由器,请注意网线的要使用cat5e网线或cat6网线,否则速率会有很大闲置,当然现在也不太好买到cat5e以下的网线了。

折腾的功能:

  1. openmediavault开源NAS系统(我基本上拿他当个硬盘挂载、开SMB的管理界面)
  2. plex media server串流(远程、本地播放移动硬盘中的电影)
  3. aria2远程下载(远程下载)
  4. syncthing同步(同步工具,很好用自动upnp)
  5. 单臂路由(Docker版OpenWrt,家里可以愉快的上谷歌了)
  6. 路由器光猫桥接(解决光猫性能问题,掉线重启什么的)
  7. DDNS(动态DNS,方便远程访问)

下面的安装过程可能需要用到一些特殊的上网技巧,请自备哦~

推荐个Github项目(家庭网络相关知识): https://github.com/blanboom/awesome-home-networking-cn

这里面把常见家庭网络需要的内容都进行了总结

安装64位树莓派系统

(据说只有4以后的树莓派对64位支持比较好,这个没有考证过)

由于我之前安装的是raspberry pi os 32位版,所以这回为了迁移方便仍然安装raspberry pi os的64位版,其实只当服务器用可以装Ubuntu Server

64位下载地址:

https://downloads.raspberrypi.org/raspios_arm64/images/

写本文时最新的64位系统是2020-08-24版本的:

https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-08-24/2020-08-20-raspios-buster-arm64.zip

写卡可使用balenaEtcher或者win32DiskImager

参考文章:https://www.cnblogs.com/zhenqichai/p/download-and-install-raspbian-buster-on-raspberry-pi-with-mac.html


默认状态SSH是不开启的,需要在刷好的卡的boot分区下新建一个ssh文件夹(文件也行,不带扩展名的)

建议直接通过有线连接到路由器

如果要连Wifi参考:https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

IP可以通过登录路由器看连接的设备,或者nmap扫描进行发现

默认用户名密码pi/raspberry,请及时修改密码,pi用户可以无需密码执行sudo命令


重点强调: 如果用的TF卡比较大(16G以上),初次开机多刷几次df -h命令,可以看到磁盘空间在不断增长,等稳定下来再折腾

装完了先换源: https://blog.csdn.net/luckywizard/article/details/106873999

我是这么换的:

/etc/apt/sources.list

deb https://mirrors.bfsu.edu.cn/debian buster main contrib non-free
deb https://mirrors.bfsu.edu.cn/debian-security/ buster/updates main contrib non-free
deb https://mirrors.bfsu.edu.cn/debian buster-updates main contrib non-free

/etc/apt/sources.list.d/raspi.list

deb https://mirrors.bfsu.edu.cn/raspberrypi/ buster main ui

然后执行sudo apt update&&sudo apt upgrade,完成后执行reboot重启

安装openmediavault

Github地址:https://github.com/openmediavault/openmediavault

安装脚本地址:https://github.com/OpenMediaVault-Plugin-Developers/installScript/

安装命令(需要魔法上网):

sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

参考文章:https://shumeipai.nxez.com/2020/09/22/getting-started-with-omv-on-a-raspberry-pi.html

这个脚本安装的是OMV5,相对来说插件不是很全,plex、aria2、syncthing都需要单独折腾,如果不想折腾就查下怎么装OMV4吧。

补充:

1.登录端口默认为80,建议改下端口,配置个证书,默认用户名密码为:admin/openmediavault

2.在“文件系统”栏目中可以挂载磁盘:默认挂载到/srv目录下面的文件夹中

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第1张图片

3.保护硬盘,让硬盘不用时自动关闭:

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第2张图片

plex media server串流

(在某个胖子的怂恿下我在某宝上买了永久的plex pass,嗯,真香。)

下载地址:https://www.plex.tv/zh/media-server-downloads/

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第3张图片

安装:

sudo dpkg -i  plexmediaserver*.deb

访问http://树莓派IP:32400/web进行配置

手机端、电视盒子不想花钱可以装kodi+plex插件,推荐购买Plex pass使用Plex APP+第三方播放器。

参考:https://support.plex.tv/articles/202485658-restore-a-database-backed-up-via-scheduled-tasks/进行plex库的恢复

可能遇到的问题:

Plex配置不使用服务端硬件进行解码,毕竟树莓派性能很渣:

参考:https://tieba.baidu.com/p/6468234687

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第4张图片

plex具体折腾可以看这位大哥写的《玩转Plex系列》:https://post.smzdm.com/xilie/59399/

效果:

可在浏览器、手机、电视盒子上播放,有公网IP的情况下,也可以互联网串流播放:

安装docker

后面很多内容都是使用Docker完成的

国内使用阿里云源安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

使用阿里云Docker源进行加速:

https://yq.aliyun.com/articles/653045

aria2远程下载

直接用这个镜像:

https://p3terx.com/archives/docker-aria2-pro.html

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=<你的访问Token> \ #后面AirNGinx链接要用
    -e RPC_PORT=6800 \ # 后面AriaNG用来控制aria2的端口
    -e LISTEN_PORT=6888 \ # DHT和Bitorrent的端口,一个TCP,一个UDP,固定下来方便端口映射
    -v 配置文件地址:/config \
    -v 下载目录地址:/downloads \
    p3terx/aria2-pro

管理界面用AriaNG:

https://p3terx.com/archives/aria2-frontend-ariang-tutorial.html

docker run -d \
    --name ariang \
    --restart unless-stopped \
    --log-opt max-size=1m \
    -p 6880:6880 \
    p3terx/ariang

初次访问6880端口时会提示认证失败,

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第5张图片

此时需要设置下认证Token(AriaNg设置->输入Aria2 RPC密钥,就是上面的Token->重新加载AriaNg):

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第6张图片

就可以正常下载了:

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第7张图片

Syncthing同步

下载地址: https://syncthing.net/downloads/

树莓派直接下载ARM/ARM64版的,但是实测中发现,32位版的在64位下,无法通过systemd进行启动。

测试中发现使用MobaXterm启动syncthing,会弹出一个chromium的窗口,然后一切都可以通过图形界面进行配置,包括下文中的修改外网地址(就是有点慢),

具体使用安装及使用:https://www.moewah.com/archives/1127.html

使用systemd进行自启动参考:https://docs.syncthing.net/users/autostart.html

syncthing的配置文件在用户目录的.config/syncthing下面,备份的时候备份启动用户的~/.config/syncthing,我一直用pi用户启动syncthing,所以备份/home/pi/.config/syncthing即可


建议定期将重要内容备份到云盘中,我目前使用的是百度网盘。

由于百度云盘没有arm版的客户端,所以可以使用python版的百度云客户端bypy,安装时建议安装1.6.0,有针对百度云返回MD5值不正确的临时解决方案(也不知道什么时候能正式解决)。

项目地址: https://github.com/houtianze/bypy

备份命令:

bypy syncup /srv/dev-disk-by-label-xxxx/synthing/Camera /sync/Camera --on-dup skip

最后可以在百度网盘的“我的应用数据”目录的bypy子目录中找到备份的文件,可以结合crontab进行定期备份。

OpenWrt Docker版单臂路由

单臂路由是这么个原理:

Docker镜像地址:

https://hub.docker.com/r/sulinggg/openwrt

配置方法:

https://mlapp.cn/376.html

文章写的已经很完善了,只需要注意一点:

如果修改完网关以后上不去网,进入“网络”->“接口”->eth0修改->“物理设置”->取消掉“桥接接口”->“保存&应用”,应该就能上去了

具体功能可以看“服务”菜单,各种功能都很全的哦~~

题外话: 如果按照上面提到的文章修改完DHCP服务下发的网关地址之后,请记得不要关闭树莓派,否则

有关plex内网无法正常播放(重点): 一旦改完DNS到openwrt之后,会发现内网里plex无法正常播放了,这是因为内网环境下播放所用的plex.direct域名会返回一个内网IP地址(废话一句),符合dns rebinding的特征,被当做攻击过滤掉了,解决办法就是进入“网络”-》“DHCP/DNS”在下面的域名白名单中加入plex.direct即可

折腾闲置树莓派(自用NAS/Plex串流/Syncthing同步/aria2远程下载/单臂路由)_第8张图片

光猫路由桥接

2021.04.04补充:其实可以直接找运营商帮你改

在光猫 NAT 性能不足的情况下,可将光猫修改为桥接模式(只做光电转换),使用路由器拨号,提高性能。

实际上我刚部署完上面的内容时,同步+串流看电影+下载,光猫恨不得一天重启三次,所以无奈之下才做的光猫转桥接

我家的光猫是烽火的HG6543C

具体光猫桥接参考:

  1. https://www.jianshu.com/p/5df16681bcf4 文中1-3步到执行完gendefsettings的部分,生成backpresettings.conf配置文件后,一定要把配置文件备份一下,以防万一!!
  2. https://guanggai.org/forum.php?mod=viewthread&tid=459&extra=&authorid=2&page=1 纯桥接模式的改法修改生成的配置文件
  3. 按照1中方法,使用loaddefsettings 将配置文件还原回去

注:改桥接之前,先登录光猫把拨号的账号密码记下来,后面路由器拨号要用。其实生成的backpresettings.conf里面有base64后的拨号用户名和密码。

其实就是普通用户界面没有开放桥接的配置,于是乎先备份出来配置文件,然后按照桥接的配置进行修改,最后再恢复回去就可以了。

这样可以省下很多方法中的修改地区到通用,然后再管理员登录修改的步骤。

最后进入路由器配置,将上网设置从“自动获取IP”,改为“宽带上网设置”或者“PPPOE拨号”,就完成了整个桥接过程

有关开放到公网上

有两种方法:

  1. 将树莓派对应IP地址设置为DMZ服务器,直接完全开放到公网上,有安全风险,但是操作方便
  2. 将使用的端口依次进行端口映射,只开放明确需要的端口

PS: 联通光纤测试中是无法使用80端口和SMB的445端口,这块请避开,并且开放到公网的服务尽量使用HTTPS,以防被劫持。

DDNS

DDNS 也是大部分家用路由器都会拥有的一个常见功能。由于家庭宽带的公网 IP 是不固定的,每次重启路由器,都可能获取到一个新的 IP 地址。通过 DDNS,能够通过一个固定的域名来从外部访问家庭网络中的设备。

具体操作参考:https://zhuanlan.zhihu.com/p/46580280

一般路由器都会带的,TP-LINK路由器在“应用管理”的DDNS应用中,域名为tpddns.cn的二级域名,如果觉得这个域名不好看,可以自己申请个域名,然后CNAME到分配的DDNS域名上即可~

结尾

断断续续的写了好久,因为已经做过一遍了,所以很是不想再记了,不过好歹是写完了~~

你可能感兴趣的:(树莓派,家用网络,树莓派,家用网络)