当前位置: 首页 > news >正文

如何使用任意浏览器远程访问本地搭建的Jellyfin影音平台

文章目录

    • 前言
    • 1. Jellyfin服务网站搭建
      • 1.1 Jellyfin下载和安装
      • 1.2 Jellyfin网页测试
    • 2.本地网页发布
      • 2.1 cpolar的安装和注册
      • 2.2 Cpolar云端设置
      • 2.3 Cpolar本地设置
    • 3.公网访问测试
    • 4. 结语

前言

本文主要分享如何使用Windows电脑本地部署Jellyfin影音服务并结合cpolar内网穿透工具,将本地服务免费发布至公网,实现远程访问,无需公网IP也不用设置路由器那么麻烦。

随着移动智能设备的普及,现在的移动流媒体需求(智能手机看视频)发展的越来越好。但当我们习惯这些需求后,忽然发现自己不知不觉间成了平台待割的韭菜。作为一颗倔强的韭菜,自然不会甘愿被割,因此可以本地自建一个私人影音媒体平台。

除了在局域网使用各种设备进行观看,也可以使用cpolar内网穿透工具,让本地自建的私人影音平台可以在公网环境被远程访问。

1. Jellyfin服务网站搭建

Jellyfin作为相对知名的影音服务器,在NAS平台广受欢迎,但笔者连韭菜都不愿意当,自然没有NAS这样的专业装备,只有一台淘汰下来的台式机,好在这台台式机配置不算低到离谱,并且jellyfin有Windows版本的服务端,让笔者能以简单的方式搭建jellyfin服务器。

1.1 Jellyfin下载和安装

首先,我们下载Jellyfin的server端,只要访问jellyfin的官方网站,点击下载按钮进入下载页面,选择服务器分项进行下载即可。当然,jellyfin也提供其他操作系统(linux、MacOS)版本的软件,只要按需下载就好。

20230412092501

20230412092502

20230412092503

jellyfin下载完成后,直接双击.exe文件,即可进入自动安装程序,在安装过程中,除了注意选择Basic Install(Recommended)以外,其他几乎都可以一路点击“Next”略过。

20230412092504

20230412092505

Jellyfin安装完成后,点击生成的快捷方式,启动jellyfin service程序。Jellyfin会在Windows的系统托盘处生成一个小图标,右键点击这个图表,就能打开jellyfin的网页安装界面。

20230412092506

首次启动jellyfin服务时,可能会出现Windows防火墙警告,我们选择允许访问即可。

20230412092507

点击open jellyfin后,软件会自动打开浏览器访问localhost:8096端口,进行jellyfin service网页设置页面。而这里的设置都是常规的语言设置、管理员账号设置、媒体库文件夹选择(可以暂时不选而跳过)、允许远程访问等。

20230412092508

20230412092509

20230412092510

20230412092511

20230412092512

完成这些设置后,就可以正式登入jellyfin网页。

1.2 Jellyfin网页测试

为方便展示,笔者完成jellyfin service网页安装后,以admin角色登录jellyfin service。只要能正确登录jellyfin主页面,就说明我们已经完成jellyfin的安装。

20230412092513

20230412092514

2.本地网页发布

完成了jellyfin service安装后,接下来就可以使用cpolar内网穿透创建一条内网穿透数据隧道,搭建连接本地jellyfin页面的公共互联网地址,让我们能在公共互联网上访问到家里(局域网)的jellyfin服务器。

2.1 cpolar的安装和注册

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

与jellyfin service的安装一样,cpolar可以直接在其官网页面进行下载。在cpolar官网页面的上部,找到下载按钮。

20230412092515

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

20230412092516

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

20230412092517

20230412092518

cpolar会为每个用户创建独立的数据隧道,并通过用户密码和token码保证每个用户的数据安全。因此我们正式使用cpolar前,需要进行用户注册。注册过程简单易行,只要在cpolar主页右上角点击用户注册,在注册页面填入必要信息,就能完成注册。

20230412092519

20230412092520

2.2 Cpolar云端设置

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

接下来,我们先登录cpolar的官网,并在用户主页面左侧找到预留按钮,并点击进入cpolar的数据隧道预留页面。在这里生成一个公共互联网地址(也可以看做数据隧道的入口),由于此时这个地址没有连接本地的jellyfin网页输出端口,因此也可以看做是一条空白的数据隧道。

20230412092521

在预留页面,可以看到很多种可保留的数据隧道,这里我们选择“保留二级子域名”栏位。

20230412092522

保留二级子域名栏位,需要进行几项信息的简单设置,即:

  • 地区:服务器所在区域,就近选择即可
  • 二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一
  • 描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可

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

20230412092523

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

20230412092524

2.3 Cpolar本地设置

完成cpolar云端设置并保留了空白数据隧道后,我们返回本地电脑的cpolar客户端,将云端生成的空白数据隧道与本地jellyfin service页面连接起来。

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

20230412092525

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

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

1. 隧道名称:可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可
2. 协议:由于的测试页面是网页,因此选择http协议
3. 本地地址 :本地地址即为本地网站的输出端口号,之前我们访问本地jellyfin网页时端口号为8096,因此这里也填入8096
4. 域名类型 :由于我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名)
5. Sub Domain:填入预留的二级子域名,该例子中为“jellyfinweb”(如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址)
6. 地区:与cpolar云端预留的信息一样,我们依照实际使用地填写即可

20230412092526

完成以上设置后,即可点击页面下方的创建按钮,将cpolar云端的空白数据隧道与本地的支付测试页面连接起来,完成cpolar云端地址与本地jellyfin网页的连接。

cpolar云端地址与本地jellyfin服务器网页的连接完成后,cpolar客户端会自动跳转到“隧道管理”项下的“隧道列表”页面中,对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,最这条数据隧道的信息进行修改。

20230412092527

3.公网访问测试

最后,我们点击左侧状态项下的在线隧道列表按钮,就能找到jellyfin service的公共互联网地址。

20230412092528

将这个地址粘贴到浏览器中,就能看到本地jellyfin的web页面,也就成功建立专属自己的私人影音平台。

20230412092529

20230412092530

4. 结语

当然,能用作搭建私人影音平台的软件和网页源文件有很多,jellyfin并不是唯一选择,但使用其他软件和源文件搭建私人影音平台的流程大同小异,最重要的是,就算韭菜也有拒绝被收割的时候。在大部分情况下,我们仍然能依靠自己动手,做到丰衣足食。

相关文章:

  • java-内部类 2
  • 安徽保安员精选模拟试题(含答案)
  • 程序员画图工具?那必然是你了!!【送源码】
  • 在mybatis 中如何防止 IN里面的参数过多?
  • Vite使用unplugin-auto-import实现vue3中的自动导入
  • jingxiang制作
  • springcloud第4季 分布式事务seata作用服务搭建
  • vite配置之获取.env.[mode]下的数据
  • linux 安装sftp及使用sftp上传和下载
  • NVIDIA发布Nemotron-4 340B 用于生成高质量的合成数据
  • GitHub项目里的api
  • Excel小技巧| 批量多列多行转为一列
  • 系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)
  • 外观缺陷检测原理
  • vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Java Agent 学习笔记
  • javascript 哈希表
  • javascript从右向左截取指定位数字符的3种方法
  • LintCode 31. partitionArray 数组划分
  • ubuntu 下nginx安装 并支持https协议
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 安卓应用性能调试和优化经验分享
  • 百度地图API标注+时间轴组件
  • 二维平面内的碰撞检测【一】
  • 观察者模式实现非直接耦合
  • 前端路由实现-history
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 学习JavaScript数据结构与算法 — 树
  • 一道面试题引发的“血案”
  • 优化 Vue 项目编译文件大小
  • 终端用户监控:真实用户监控还是模拟监控?
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ######## golang各章节终篇索引 ########
  • #{} 和 ${}区别
  • #{}和${}的区别?
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • %@ page import=%的用法
  • (003)SlickEdit Unity的补全
  • (3)llvm ir转换过程
  • (a /b)*c的值
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)球球大作战
  • (三)c52学习之旅-点亮LED灯
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)C#调用WebService 基础
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .NET 8.0 中有哪些新的变化?