自建个人音乐播放器Navidrome - 内网穿透实现在外随时访问

简介: 自建个人音乐播放器Navidrome - 内网穿透实现在外随时访问

1. 前言

不知从何时开始,我们能用的音乐软件越来越少,笔者使用小米手机很久了,自从小米手机的自带音乐播放器变成了QQ音乐,笔者手机里很多的音乐就无法再自由畅听,要求付费加会员听歌,不然就得忍受被剪切的试听版。最重要的,是不让播放自行下载的音乐!!!这就很让人头疼。为了逃避这种情况,笔者打算使用Cpolar内网穿透+ Navidrome方案,自建一个私人音乐服务器,以便能再次自由享受音乐。


2. Navidrome网站搭建

Navidrome是一个开源的音乐服务器,也可以轻松的作为web界面的独立音乐服务器使用,也就意味着我们可以在手机、平板或者其他电脑上访问。只要安装在本地电脑中,并搭配内网穿透软件cpolar,就能让我们在任何地方都能访问到家里电脑上的Navidrome网页,并享受音乐带来的放松。


需要注意的是,由于Navidrome并不依赖网页运行环境,因此其安装过程并不是通常所见的网站安装流程。


2.1 Navidrome下载和安装

2.1.1 安装并添加ffmpeg

首先,我们需要下载并安装ffmpeg,毕竟Navidrome是基于其运行的,因此需要安装一个ffmpeg(很多音乐视频软件都依托其运行)。只要访问ffmpeg官网(ffmpeg.org),就能找到下载。


接着,将ffmpeg加入path环境变量。要记得在环境变量中带上bin文件夹,这样我们就能在任意cmd窗口中调用ffmpeg.exe。

2.1.2下载并配置Navidrome

接着,我们访问Navidrome的官网(www.navidrome.org),点击官网的下载按钮,进入安装指导页面。在这个页面,我们可以看到不同系统中安装Navidrome的指导。很多开源软件都会放在github(Navidrome也不例外),因此其下载页面会转到github。

笔者使用的是windows系统,因此选择Windows版本下载。

完成Navidrome的下载后,将其解压到打算安装的位置,笔者这里将其放在D盘的program file64文件夹下方便管理。根据Navidrome的安装指导,我们还需要修改Navidrome的配置文件,让Navidrome知道应该去哪个文件夹里寻找音乐文件。



Navidrome的配置文件为navidrome.toml,通常放在navidrome.exe同一文件夹下。如果没有这个文件,可以新建一个(新建文本文件,并将后缀名改为.toml),并将如下命令行添加到这个文件中。


# This is just an example! Please see available options to customize Navidrome for your needs at
# https://www.navidrome.org/docs/usage/configuration-options/#available-options
LogLevel = 'DEBUG'
ScanSchedule = '@every 24h'
TranscodingCacheSize = '150MiB'
# IMPORTANT: Use single quotes for paths in Windows
MusicFolder = 'D:\Music'
# Set this to the path of your ffmpeg executable
FFmpegPath = ' D:\Program Files\ffmpegfull\ffmpegfull\bin\ffmpeg.exe'

在这些命令行中,有一些参数是根据实际情况进行修改的,包括MusicFolder = 'D:\Music'和FFmpegPath = ' D:\Program Files\ffmpegfull\ffmpegfull\bin\ffmpeg.exe'。




更详细的配置参数注释,可以参阅navidrome官网的注释页面:https://www.navidrome.org/docs/usage/configuration-options/


完成配置文件的编辑后,就可以在cmd窗口下,运行navidrome.exe文件(双击这个.exe文件不管用,必须在命令行窗口下运行),正式安装Navidrome。



安装过程中,可能会出现网络安全询问,我们只要选择允许访问即可。



命令行程序运行完成后,不要关闭cmd窗口,我们尝试访问navidrome网页,试试看是否安装成功。在浏览器地址栏中输入localhost:4533(4533为navidrome的默认输出端口)。只要显示出navidrome登录界面,就说明我们的设置成功。登录界面可以直接设置登录名和密码,要记得自己输入的用户信息,不然可能导致之后无法登录。


需要注意的是,这时我们的navidrome还没有加入Windows系统服务中,只要关闭了cmd窗口,就无法访问navidrome页面。因此下一步,我们要将navidrome加入Windows服务中。


2.1.3 添加Navidrome到系统服务

为了随时能访问navidrome网页,而不必时时刻刻开着cmd窗口,我们需要将navidrome加入Windows的系统服务中。根据navidrome官网的建议,可以使用Shawl、NSSM和WinSW将navidrome加入启动目录。这里笔者根据官网指引使用NSSM进行设置。


下载好NSSM压缩包后,解压并在win64文件夹中找到.exe安装文件,笔者使用的是64位版本Windows,因此选择win64安装包。



由于NSSM是绿色程序,不必进行安装,因此直接在cmd中运行即可。即在win64文件夹的搜索栏中输入cmd,在此路径下打开cmd程序,接着输入,命令


nssm install


就能打开nssm的图形化界面。




在nssm的图形化界面中,找到Path栏位,将navidrome.exe输入其中(通过Path栏位后的“…”按钮选择路径),并在下方的service name输入名称进行分辨。再点击install service确定添加服务。



最后,我们打开服务页面(可以在搜索栏中直接输入“服务”,并在搜索结果中打开),启动在Nssm中设置好的服务项目(这个例子中,是笔者设置的navid服务项)。




2.2. Navidrome网页测试

在Windows服务中添加Navidrome后,就能不启动cmd窗口,也能打开Navidrome网页。同样的,为了测试Navidrome是否能正常运行,我们在浏览器地址栏中输入localhost:4533,尝试打开Navidrome的主页面。只要能正常显示,就说明我们已经成功的在本地电脑上安装好了Navidrome音乐网站。




3. 本地网页发布

经过以上步骤,我们成功安装了Navidrome音乐网站服务器,接下来我们就可以使用cpolar内网穿透,创建连接本地Navidrome页面的公共互联网地址,让我们能在公共互联网上访问到局域网电脑上的Navidrome网页。


cpolar官网:https://www.cpolar.com/


3.1 cpolar的安装和注册

完成Navidrome音乐网站在本地电脑上的安装后,就可以转入cpolar的安装。相比Navidrome音乐网站,cpolar的安装要简单很多。我们直接访问cpolar的官网页面,并找到下载按钮。



笔者使用的是Windows操作系统,因此选择Windows版本进行下载。



Cpolar下载完成后,将下载的文件解压,双击解压后的.msi文件执行自动安装程序,一路“Next”就能完成安装。



cpolar会为为每个独立用户创建专属的数据隧道,并以用户密码和token码保证每位用户的数据安全。因此在使用cpolar之前,需要进行用户注册。


新注册的程序非常简单,只要在cpolar主页右上角点击“用户注册”,在注册页面填入必要信息,就能完成注册。

3.2 Cpolar云端设置

由于cpolar内网穿透免费版的数据隧道每24小时重置一次。笔者不想每天进行Navidrome音乐网页的连接设置,因此笔者将cpolar升级至vip版,获得能长期稳定存在的内网穿透数据隧道。


要创建能够长期稳定存在的内网穿透隧道,需要分为两步走。首先登录cpolar的官网,并在用户主页面左侧找到预留按钮,并点击进入cpolar的数据隧道预留页面。在这里为本地Navidrome网页生成一个公共互联网地址(也可以看做数据隧道的入口),此时这个地址没有连接本地的软件输出端口,因此也可以看做是空白数据隧道。



在预留页面,可以看到很多种可保留的数据隧道,因为Navidrome是web音乐服务器,因此我们选择保留二级子域名栏位。



在“保留二级子域名”栏位,必须进行几项信息的简单设置,创建独一无二的公共互联网地址,这些需要设置的信息为:


地区:服务器所在区域,就近选择即可;

二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一;

描述:可以看做该数据隧道的描述,只要能与其他隧道区分开即可。

完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。



当然,如果这条数据隧道不打算再使用,还可以点击右侧的“x”将其轻松删除,节约宝贵的隧道名额。



3.3 Cpolar本地设置

在cpolar云端设置并保留空白隧道后,我们回到本地的cpolar客户端,将云端生成的空白数据隧道与本地的测试页面连接起来。


在本地打开并登录cpolar客户端(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式)。



点击客户端主界面左侧隧道管理项下的创建隧道按钮,进入本地隧道创建页面(如果要创建没24小时重置地址的临时数据隧道,可直接在此进行设置,不必再cpolar官网设置空白数据隧道)。


在这个页面,同样需要进行几项信息设置,这些信息设置包括:


1. 隧道名称 :可以看做cpolar本地的隧道信息注释,只要方便分辨即可;

2. 协议 :由于Navidrome音乐服务是网页形式,因此选择http协议;

3. 本地地址 :本地地址即为本地网站的输出端口号,而Navidrome默认输出端口为4533,因此这里也填入4533;

4. 域名类型 :由于笔者已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名)

5. Sub Domain:填入预留的二级子域名,该例子中为“Navidromeweb”(注:如果创建的是临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址);

6. 地区 :与cpolar云端预留的信息一样,我们依照实际使用地填写即可;


完成这些设置后,就可以点击页面下方的创建按钮,就能将cpolar云端的空白数据隧道与本地的Navidrome音乐站连接起来,也就为我们提供了可以在公共互联网访问本地Navidrome音乐站的数据隧道,cpolar也会自动跳转至“隧道管理”项下的“隧道列表”页面。



在“隧道管理”项下的“隧道列表”页面,可以对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,最这条数据隧道的信息进行修改。


4. 公网访问测试

我们可以点击左侧状态项下的在线隧道列表按钮,找到这个页面的公共互联网地址,将这个地址粘贴到浏览器中,就能看到本地Navidrome音乐站页面,建立属于自己的私人音乐站。




5. 结语

到这里,我们就完成了使用Cpolar+Navidrome,搭建私人音乐站的工作,虽然看着步骤很多很杂,但那主要是为大家详细展示每个步骤,实际操作起来只要十多分钟即可。不知大家发现没有,Navidrome音乐服务器搭建过程中,并没有涉及对apache、MySQL这些常见的网页运行环境的配置,而是全程安装Navidrome本身,这无疑大大降低了Navidrome音乐站的搭建难度,,并可以自有播放已下载的音乐。


相关文章
|
网络协议 安全 Shell
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
1869 0
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
|
网络协议 Linux 网络安全
如何用阿里云实现内网穿透?如何在外网访问家里内网设备?
使用NPS自建内网穿透服务器教程,带WEB管理
34595 12
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
117976 0
|
10月前
|
应用服务中间件 nginx Docker
Docker:WARNING: Published ports are discarded when using host network mode 解决方法
Docker在使用 `host`网络模式时会忽略端口映射,因为此模式下容器已经直接暴露在主机网络上。通过理解并合理选择网络模式,可以有效解决 `WARNING: Published ports are discarded when using host network mode`的警告。根据具体需求,选择适合的网络模式,以便在保证性能的同时确保灵活性和安全性。希望本文提供的方法和分析能帮助您在使用Docker时更好地处理网络配置问题。
1880 12
|
11月前
|
机器学习/深度学习 Serverless 定位技术
深入理解多重共线性:基本原理、影响、检验与修正策略
本文将深入探讨多重共线性的本质,阐述其重要性,并提供有效处理多重共线性的方法,同时避免数据科学家常犯的陷阱。
529 3
阿里云服务器带宽价格参考:选择1M、3M、5M、10M宽带价格解析
阿里云服务器1M、3M、5M、10M宽带需要多少钱?单说阿里云服务器宽带多少钱,而不确定云服务器实例规格及cpu和内存配置的话,是没办法具体说多少钱的,因为云服务器的价格受很多因素影响。本文将详细解析阿里云服务器在选择1M、3M、5M、10M不同带宽下的价格差异,以供大家参考。
阿里云服务器带宽价格参考:选择1M、3M、5M、10M宽带价格解析
|
JavaScript 前端开发 关系型数据库
Vue 开源项目:一款实用的个人音乐流媒体服务器,轻松打造属于自己的音乐天堂!!!
Vue 开源项目:一款实用的个人音乐流媒体服务器,轻松打造属于自己的音乐天堂!!!
|
弹性计算 安全 Ubuntu
1Panel安装:阿里云服务器安装1Panel面板教程,超详细图文流程
阿里云服务器安装1Panel面板教程:首先远程连接ECS,执行安装命令。随后设置1Panel安装目录(默认`/opt`)、端口(默认20410)、安全入口、面板用户及密码。安装后需在安全组中开通20410端口。最后,通过`服务器IP:端口/安全入口`格式访问面板。更多细节参见完整教程。
|
网络协议 Windows
纯IPv4环境访问IPv6网站
在纯IPv4环境中访问IPv6网站,可以通过Teredo协议。适用于Windows 10 19043.928版。操作包括:检查Teredo状态、设置为不可用或企业客户端、指定服务器(如teredo.iks-jena.de)、配置端口(可选),然后验证通过ping IPv6地址(如6.ipw.cn)来确认功能是否正常。
7582 0
|
NoSQL 关系型数据库 MySQL
探索Sun-Panel:一站式服务器、NAS导航面板、Homepage、浏览器首页
Sun-Panel是一款开源的浏览器导航页解决方案,旨在提供一种可私有化部署的综合体验,融合服务器、NAS管理和首页功能。与市面其他未开源的导航插件不同,Sun-Panel允许用户自定义JS和CSS,支持Docker部署(包括Arm系统)和多账号隔离。通过docker-compose进行简单部署,用户可选择SQLite或配置MySQL、Redis。默认账号为admin@sun.cc,密码12345678。该项目提供了一个更简洁、高效的网页管理工具,以适应数字化时代的需求。
1858 5
探索Sun-Panel:一站式服务器、NAS导航面板、Homepage、浏览器首页