文章目录

    • 安装Roon Server
    • 下载开心版
    • 安装Roon App
    • 安装Zerotier

Roon是一款功能强大的音乐管理与播放软件。它能整合用户所有音乐,导入并识别您的音乐文件以及您在TIDAL、Qobuz和KKBOX上收藏的任何音乐。还可以在所有设备上组织、浏览和播放你的所有音乐–包括文件和流媒体内容。可与1,000多种音频产品和几乎所有的iPhone、iPad和安卓手机或平板电脑配合使用,可以在多设备上播放,而且拥有发烧级的音质以及强大的DSP功能。

安装Roon Server

使用docker compose创建项目。

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目录,解压压缩包。

进入Linux目录
解压压缩包
停止compose。

停止compose
进入/roon-app中,删除RoonServer,替换为刚刚解压出来的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则说明启动成功。

启动compose
查看容器运行日志

安装Roon App

以PC端为例,进入刚刚下载的开心版目录,打开Windows目录,双击安装程序,安装很简单,默认下一步就行。

双击启动安装程序
安装成功后运行Roon,左下角可切换为中文,切换后点Restart Now重启程序。

欢迎页

点击开始。

点击开始

程序会自动扫描发现局域网内运行的Roon Server,点击连接。

连接Roon Server
添加音乐文件夹,选择部署时映射的音乐存储目录/music。

添加音乐文件夹
添加音乐服务选择"不,谢谢"。

不添加音乐服务

设置音频设备,选择启用,最后点击完成。

启用音频设备

可以看到歌曲都已经添加进去了。

首页

选择音频区域就可以播放,内置歌词也能正常显示(可使用MusicTagWeb刮削)。

播放界面

设置-备份文件可以备份播放记录、配置等数据,建议备份到/backup目录,也可以设置计划性备份。

备份设置

右下角图标可对区域设备进行设置,多个设备可组合同时播放。

区域设备

安装Zerotier

首先确保你的网络有ipv6公网地址,可搜索ipv6测试网站(如 https://ipv4.test-ipv6.com)测试一下。现在宽带基本都有ipv6,如果没有多半是路由器配置问题,网上搜索一下如何开启ipv6,此处就不再赘述。

tailscale也能实现内网穿透,甚至还更好用,但是由于不支持广播无法发现Roon Server,会有各种问题。因此不建议使用。

浏览器访问Zerotier官网https://www.zerotier.com,注册登录后创建一个虚拟网络。

zerotier central

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也能正常使用了。

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐