Roon 搭配 Surge Mac 使用 Roon ARC

Roon 搭配 Surge Mac 使用 Roon ARC

Roon 和 Roon ARC

Roon 是干什么的?

Roon is a music management software that brings all your digital music and hardware into one place, allowing you to direct music in a multi-room environment as you please. It is the brain which tells your music what to do and where to do it – the policeman directing the traffic.

现在 Roon 就是我的 HIFI 中枢,可以轻松管理我的曲库。2023年推出的 Roon 2.0 带来了 Roon ARC,让使用者可以在外也可以访问家里的曲库,做到随时随地聆听高品质音乐。

困扰

购入 Roon 后一直放在了 NAS 上使用体验还算可以,但最近实在是受不了国内直连Roon/Tidal/Qobuz等服务缓慢甚至连不上的状况。因为我 NAS 要跑 PT,Surge 官方又不建议接管 BT 下载软件 就不能走 Mac mini 的 Surge 网关。

我的解决方案

最终我决定将 Roon Core 放到 Mac mini 上,这样的好处是显而易见的。

  • 代理。Roon 内置的配置备份服务是 Dropbox,肯定不能直接用。Roon 还支持接入 Qobuz/Tidal/KKBOX 这些国外串流音乐服务来补充曲库。所以该走代理的走代理是个不错的选择。
  • 端口转发。Roon ARC 需要利用端口转发来实现外网访问曲库,而 Sugre 网关不能进行端口转发,此类问题在 Surge 社区非常常见1 2 3。不巧的是我的路由器也遇到了这个问题,只能靠 socat 来实现先转发到 Mac 然后再转发到对应设备来 workaround。但直接将服务部署在网关就可以省去这一步。

使用前提

  • 公网 IP。是的你必须要一个公网 IPv4。IPv6 行吗?如果不走 Surge 网关那其实是可以的,但是 Surge 截止目前还未提供 DHCPv6 功能,所以是无法接管 IPv6 的。开启 IPv6 RA 很可能导致接管失败。
  • 端口转发。别相信它的什么 UPnP,直接按照界面显示的去配置端口转发即可。
  • 如果你所在的地区很难获取公网 IP,那可以使用 Surge Ponte 功能连接内网。有空了再写这部分。

Surge 如何分流

Roon 需要获取到 Roon Core 所在的真实 IP 然后上报给服务器,Roon ARC 再从服务端获取 IP,直接连接到 Roon Core。

所以我们需要将 Roon Core 获取 IP 的服务直连。这是段艰辛的历程。

最早的时候,Roon 使用了 这几个单独的域名来实现获取用户真实 IP source 。那个时候简简单单将这两个域名走直连就可以上报用户真实 IP 从而开启 Roon ARC 了。

DOMAIN,roonmobile.roonlabs.net,DIRECT
DOMAIN,porttest.roonlabs.net,DIRECT

后来有段时间开始突然失效了,抓包后发现 Roon 弃用了这两个域名来检测 IP。统一使用和其他服务相同的域名 api.roonlabs.net 来实现 IP 获取。MitM 后得到 https://api.roonlabs.net/porttest/1/myip 这是 Roon 最新获取用户 IP 的链接。那为了不影响其他的服务,就可以解密 HTTPS 后进行正则匹配。

# Please add api.roonlabs.net to the MITM Hostname.
URL-REGEX,^https?://api.roonlabs.net/porttest/1/myip,DIRECT

然后有一天发现又用不了了,抓包发现请求变成了 https://172.67.14.113/porttest/1/myip 这种 IP 形式。行吧这也简单我改。

# Please add api.roonlabs.net to the MITM Hostname.
URL-REGEX,^https?://.+/porttest/1/myip

改完后怎么还是用不了。?日志一抓,好家伙禁 MitM 了。那真没辙只能整个走直连吧。好在直连延时还是可以的。

DOMAIN,api.roonlabs.net,DIRECT,extended-matching

总结

只要你的 Roon 显示 Ready 说明你的 Roon ARC 就可以用了。直连的那个域名也不影响 Qobuz 等流媒体的源走代理,依然可以美美流畅的在外听歌了。

Sebastian Luo

我做了DNA测试 我100%是人

You might also like