飞牛部署Roon音乐服务,结合Zerotier实现远程播放
飞牛部署Roon个人音乐服务器,结合Zerotier实现远程播放
文章目录
-
- 安装Roon Server
- 下载开心版
- 安装Roon App
- 安装Zerotier
Roon是一款功能强大的音乐管理与播放软件。它能整合用户所有音乐,导入并识别您的音乐文件以及您在TIDAL、Qobuz和KKBOX上收藏的任何音乐。还可以在所有设备上组织、浏览和播放你的所有音乐–包括文件和流媒体内容。可与1,000多种音频产品和几乎所有的iPhone、iPad和安卓手机或平板电脑配合使用,可以在多设备上播放,而且拥有发烧级的音质以及强大的DSP功能。
安装Roon Server
使用docker compose创建项目。
选择想要存储的路径,docker-compose.yml内容如下,将映射路径可自行修改为想要存储的路径。
services:
docker-roonserver:
image: steefdebruijn/docker-roonserver:latest
container_name: docker-roonserver
hostname: docker-roonserver
network_mode: host
environment:
TZ: "Asia/Shanghai"
volumes:
- /vol1/1000/docker/roonserver/roon-app:/app
- /vol1/1000/docker/roonserver/roon-data:/data
- /vol1/1000/docker/roonserver/roon-music:/music
- /vol1/1000/docker/roonserver/roon-backups:/backup
restart: always
映射路径说明
- /app:存放服务端程序
- /data:存放配置数据
- /music:存放音乐,可以映射为实际存储音乐的目录
- /backup:存放备份配置的数据
构建成功启动后会自动从官方下载Roon Server。
下载开心版
该教程只作为参考学习使用,有条件的大佬应该也不需要我提醒已经购买正版了。
开心版共有两个版本,分别为1.8和2.47,可根据需要自行选择。需要注意的是2.47版本搜索功能用不了,如果音乐很多经常需要用到搜索功能推荐使用1.8版本。
1.8下载地址:https://rutracker.net/forum/viewtopic.php?t=6263409
2.47下载地址:https://rutracker.net/forum/viewtopic.php?t=6207292
下载完成后文件内容如下,进入Linux目录,解压压缩包。
停止compose。
进入/roon-app中,删除RoonServer,替换为刚刚解压出来的RoonServer。
SSH登录上飞牛,执行如下指令修改文件所有者,增加可执行权限。
chown -R root:root /vol1/1000/Docker/roonserver/roon-app/RoonServer
chmod +x /vol1/1000/Docker/roonserver/roon-app/RoonServer/*.sh
启动compose,查看容器运行日志,看到Running则说明启动成功。
安装Roon App
以PC端为例,进入刚刚下载的开心版目录,打开Windows目录,双击安装程序,安装很简单,默认下一步就行。
安装成功后运行Roon,左下角可切换为中文,切换后点Restart Now重启程序。
点击开始。
程序会自动扫描发现局域网内运行的Roon Server,点击连接。
添加音乐文件夹,选择部署时映射的音乐存储目录/music。
添加音乐服务选择"不,谢谢"。
设置音频设备,选择启用,最后点击完成。
可以看到歌曲都已经添加进去了。
选择音频区域就可以播放,内置歌词也能正常显示(可使用MusicTagWeb刮削)。
设置-备份文件可以备份播放记录、配置等数据,建议备份到/backup目录,也可以设置计划性备份。
右下角图标可对区域设备进行设置,多个设备可组合同时播放。
安装Zerotier
首先确保你的网络有ipv6公网地址,可搜索ipv6测试网站(如 https://ipv4.test-ipv6.com)测试一下。现在宽带基本都有ipv6,如果没有多半是路由器配置问题,网上搜索一下如何开启ipv6,此处就不再赘述。
tailscale也能实现内网穿透,甚至还更好用,但是由于不支持广播无法发现Roon Server,会有各种问题。因此不建议使用。
浏览器访问Zerotier官网https://www.zerotier.com,注册登录后创建一个虚拟网络。
ipv4网段可以随意选择或者自定义,ipv6勾选第一项,下拉找到multicast项打勾,开启广播才能发现Roon Server,此功能应该默认开启的,建议还是检查一下。
SSH登录上飞牛,sudo -i输入密码切换到root用户,将以下命令中的NetwokId替换成你自己的NetworkId后执行。NetworkId可在Zerotier Central控制台查看。
docker run -d --name zerotier-one --restart=always --net=host --cap-add=NET_ADMIN --cap-add=SYS_ADMIN --device=/dev/net/tun -e ZEROTIER_JOIN_NETWORKS=替换为你的NetworkId zerotier/zerotier
容器成功运行之后到Zerotier Central控制台查看,应该能看到设备已经加入网络了,勾选设备,点击Authorize授权即可。
找到Settings -> Advanced -> Add Routes,添加路由连到你的局域网。
Destination填你的局域网网段,例如 飞牛内网ip为192.168.1.2,则填写192.168.1.0/24,Via填写飞牛分配到的虚拟ip,如10.0.0.1
切换到SSH,添加防火墙规则,首先查看一下网络接口名称。
ifconfig
找到网卡接口名称及Zerotier虚拟局域网的接口名称,如enp1s0和ztly52wcjw。
修改以下命令的接口名(enp1s0和ztly52wcjw)修改为你实际查到的接口名称之后执行。
iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
iptables -A FORWARD -i enp1s0 -o ztly52wcjw -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ztly52wcjw -o enp1s0 -j ACCEPT
下载安装Zerotier(下载地址 http://download.zerotier.com/RELEASES/),加入到你的虚拟网络,连接上就可以在外网连接回飞牛所在的局域网了。手机关闭wifi使用流量测试,如无意外已经可以使用内网ip直接访问你的飞牛了。打开Roon也能正常使用了。
更多推荐
所有评论(0)