最近折腾了一段时间树莓派,
最开始是想弄个群晖玩一下NAS,查了一下最少也得两千大洋,还没算硬盘(流下了贫穷的泪水o(╥﹏╥)o)。
查了下NAS的一些开源解决方案,翻出了家里闲置的树莓派4B和移动硬盘,想先自己折腾着感受一下,折腾完了发现,这套其实就够自己用的了~~
所以想买一个东西之前,一定要想好自己是否需要它,是否需要买特别好的。够用就行的
由于一开始没注意安装的是32位系统,导致无法安装只提供arm64版本的人人影视,所以开始重新安装及迁移,顺便简单记录一下流程。
原材料:
树莓派4B 4GB版
USB3.0 移动硬盘一块
联通光纤(联通光纤有默认公网IP)
移动硬盘插到树莓派的USB3.0口上,树莓派通过网线连接到路由器,请注意网线的要使用cat5e网线或cat6网线,否则速率会有很大闲置,当然现在也不太好买到cat5e以下的网线了。
折腾的功能:
下面的安装过程可能需要用到一些特殊的上网技巧,请自备哦~
推荐个Github项目(家庭网络相关知识): https://github.com/blanboom/awesome-home-networking-cn
这里面把常见家庭网络需要的内容都进行了总结
(据说只有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
重启
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目录下面的文件夹中
3.保护硬盘,让硬盘不用时自动关闭:
(在某个胖子的怂恿下我在某宝上买了永久的plex pass,嗯,真香。)
下载地址:https://www.plex.tv/zh/media-server-downloads/
安装:
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
plex具体折腾可以看这位大哥写的《玩转Plex系列》:https://post.smzdm.com/xilie/59399/
效果:
可在浏览器、手机、电视盒子上播放,有公网IP的情况下,也可以互联网串流播放:
后面很多内容都是使用Docker完成的
国内使用阿里云源安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
使用阿里云Docker源进行加速:
https://yq.aliyun.com/articles/653045
直接用这个镜像:
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端口时会提示认证失败,
此时需要设置下认证Token(AriaNg设置->输入Aria2 RPC密钥,就是上面的Token->重新加载AriaNg):
就可以正常下载了:
下载地址: 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进行定期备份。
单臂路由是这么个原理:
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即可
2021.04.04补充:其实可以直接找运营商帮你改
在光猫 NAT 性能不足的情况下,可将光猫修改为桥接模式(只做光电转换),使用路由器拨号,提高性能。
实际上我刚部署完上面的内容时,同步+串流看电影+下载,光猫恨不得一天重启三次,所以无奈之下才做的光猫转桥接
我家的光猫是烽火的HG6543C
具体光猫桥接参考:
注:改桥接之前,先登录光猫把拨号的账号密码记下来,后面路由器拨号要用。其实生成的backpresettings.conf里面有base64后的拨号用户名和密码。
其实就是普通用户界面没有开放桥接的配置,于是乎先备份出来配置文件,然后按照桥接的配置进行修改,最后再恢复回去就可以了。
这样可以省下很多方法中的修改地区到通用,然后再管理员登录修改的步骤。
最后进入路由器配置,将上网设置从“自动获取IP”,改为“宽带上网设置”或者“PPPOE拨号”,就完成了整个桥接过程
有两种方法:
PS: 联通光纤测试中是无法使用80端口和SMB的445端口,这块请避开,并且开放到公网的服务尽量使用HTTPS,以防被劫持。
DDNS 也是大部分家用路由器都会拥有的一个常见功能。由于家庭宽带的公网 IP 是不固定的,每次重启路由器,都可能获取到一个新的 IP 地址。通过 DDNS,能够通过一个固定的域名来从外部访问家庭网络中的设备。
具体操作参考:https://zhuanlan.zhihu.com/p/46580280
一般路由器都会带的,TP-LINK路由器在“应用管理”的DDNS应用中,域名为tpddns.cn的二级域名,如果觉得这个域名不好看,可以自己申请个域名,然后CNAME到分配的DDNS域名上即可~
断断续续的写了好久,因为已经做过一遍了,所以很是不想再记了,不过好歹是写完了~~