内网穿透——搭建私人影音媒体平台

news2024/12/25 1:12:35

文章目录

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

1. 前言

随着移动智能设备的普及,各种各样的使用需求也被开发出来,从最早的移动听音乐、看图片(MP3时代),到之后的移动视频需求(MP4时代)到现在的移动流媒体需求(智能手机看视频)。但当我们习惯这些需求后,忽然发现自己不知不觉间成了待割的韭菜(3台设备就要加钱)。作为一颗倔强的韭菜,自然不会甘愿被割,因此打算自建一个私人影音媒体平台。现在,笔者就向大家展示,使用cpolar内网穿透+ Jellyfin,自建私人影音平台的全过程。

2. Jellyfin服务网站搭建

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

2.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网页。

2.2. Jellyfin网页测试

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

20230412092513

20230412092514

3.本地网页发布

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

3.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

3.2 Cpolar云端设置

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

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

20230412092521

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

20230412092522

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

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

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

20230412092523

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

20230412092524

3.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

4.公网访问测试

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

20230412092528

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

20230412092529

20230412092530

5. 结语

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四讲Java基本语法——数组结构(多维数组)

前言 前面几讲,我们讲了Java基本语法,初学者也能够有一定的入门。本讲,我们也是继续来讲解一下Java另一个基础语法——数组,其实在前面讲解数据类型的时候,我们也有提到数组是引用类型,那今天我们就来分析一下什么是数组,怎么用数组呢? 一、数组是什么 数组是…

软件测试用例经典方法 | 逻辑覆盖测试法及案例【文末赠书】

逻辑覆盖测试法是常用的一类白盒测试方法,其以程序内部逻辑结构为基础,通过对程序逻辑结构的遍历来实现程序测试的覆盖。逻辑覆盖测试法要求测试人员对程序的逻辑结构有清晰的了解。 逻辑覆盖测试法是一系列测试过程的总称,是使测试过程逐渐…

如何做科研--英文文献阅读

以下是截取书中的一段话,这对于所有科研工作者感觉都适用,也能让自己了解自己领域前沿的东西,应该也能提高大家英文阅读能力,一起学习共勉! “从1998年在普林斯顿大学任职,到在清华大学当教授,…

需求变化频繁的情况下,如何实施自动化测试

一.通常来说,具备以下3个主要条件才能开展自动化测试工作: 1.需求变动不频繁 自动化测试脚本变化的频率决定了自动化测试的维护成本。如果需求变动过于频繁,那么测试人员就需要根据变动的需求来不断地更新自动化测试用例,从而适应新的功能。…

024:vue中动态添加ref,通过ref更改css

第024个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

【视觉SLAM入门】6.1. (基于直接法的视觉里程计)LK光流法,代码解读, 直接法,特征点法对比,稀疏,半稠密,稠密地图

"刺卵掷地,逐蝇弃笔" 0. 数据集1. 光流法(Optical Flow)1.1. 光流1.2. LK光流法1.3 关键代码:1.4 特点 2. 直接法(Direct Methods)2.1 分类比较2.2 优缺点 前置事项: 特征点耗时,丢弃有用信息,特征缺失&…

vite 配置自动补全文件的后缀名

vite 不建议自动补全,文件的后缀名的 const Home ()>import("/views/Home.vue");文件是必须要加上 .vue 的后缀名的 如果 想要像 webpack 一样的不用写, 可以在vite.config.js中配置如下就可以了

【bug记录】RuntimeError: CUDA error: device-side assert triggered

RuntimeError: CUDA error: device-side assert triggered 我个人使用pytorch lightning时,报错RuntimeError: CUDA error: device-side assert triggered 我个人是因为分类类别数目对不上,但是在gpu上运行是不会提示错误的 解决方案:建议…

kubesphere中部署grafana实现dashboard以PDF方式导出

1,部署grafana-image-renderer 2,部署grafana GF_RENDERING_SERVER_URL http://ip:30323/render #grafana-image-renderer地址 GF_RENDERING_CALLBACK_URL http://ip:32403/ #grafana地址 GF_LOG_FILTERS rend…

【ES】笔记-Promise基本使用

笔记-基本使用 一、初始Promise1. 抽象表达:2. 具体表达:为什么要用 Promise?promise的基本流程 二、fs读取文件三、AJAX请求四、Promise封装fs模块五、util.promisify方法六、Promise封装AJAX操作 一、初始Promise 1. 抽象表达: 1. Promise 是一门新的技术(ES6 规范) 2. Pr…

关于单例模式

单例模式的目的: 单例模式的目的和其他的设计模式的目的都是一样的,都是为了降低对象之间的耦合性,增加代码的可复用性,可维护性和可扩展性。 单例模式: 单例模式是一种常用的设计模式,用简单的言语说&am…

uview ui 1.x ActonSheet项太多,设置滚动(亲测有效)

问题:ActionSheet滚动不了。 使用uview ui :u-action-sheet, 但是item太多,超出屏幕了, 查了一下文档,并没有设置滚动的地方。 官方文档:ActionSheet 操作菜单 | uView - 多平台快速开发的UI框架 - uni-a…

oracle 基础运用2

首先在电脑上安装PLSQL developer,这个是oracle图形化连接工具,然后安装win64_11gR2_client,这个是orace客户端,安装完成后可以在cmd命令行输入sqlplus命令进行验证,如图表示安装成功。 作为sys的连接应该是SySDBA或Sy…

AD中如何给过孔添加盖油

AD中如何给过孔添加盖油 画PCB时通常我们会放一些过孔,起到上下层信号转接或者地过孔的作用,当这些过孔较大较密时如果不做盖油处理,就会影响电气性能而且很不美观。如下图: 如果要盖油,点击对应的过孔,将…

大数据项目实战(完整的搭建大数据集群环境)

一,搭建大数据集群环境 (由于内容过多分为了4个博客,后面有链接分享,也可去我的主页查看) 1.1安装准备 1.1.1虚拟机安装与克隆 1.虚拟机的安装和设置以及启动虚拟机并安装操作系统 安装一台虚拟机主机名为&#x…

mysql通过.frm和.ibd 文件恢复数据库

问题背景:由于强制在服务关闭mysql导致部分数据表以及数据丢失 如下图只有.frm .ibd的文件为我的问题文件 查找不到表结构和表数据目录D:XXXX\mysql-5.7.24-winx64\data\mydata 从frm文件中恢复表结构 先把原来的数据备份一次 避免过程中出错 先备份之前数据的.fr…

大数据处理平台的架构演进:从批处理到实时流处理

文章目录 批处理架构:实时流处理架构:混合架构: 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:大数据系列 ✨文章内容:大数…

Node与Express后端架构:高性能的Web应用服务

在现代Web应用开发中,后端架构的性能和可扩展性至关重要。Node.js作为一个基于事件驱动、非阻塞I/O的平台,以及Express作为一个流行的Node.js框架,共同构建了高性能的Web应用服务。 在本文中,我们将深入探讨Node与Express后端架构…

生命盈品牌发布会在杭举行

​  生命盈品牌将举办"资本之路赚钱之道生命盈"活动,旨在探讨资本与实体经济的结合方式以及后疫情时代实体行业的发展方向。活动将于2023年8月27日下午1点在杭州滨江开元名都一楼举行。 来自全国各地的企业家,品牌创始人和媒体朋友们参加了该…

【ES6】—类与继承

一、 定义类 class People {constructor (name, age) {this.name namethis.age age}showName () {console.log(this.name)} } let p1 new People(xiaoxiao, 30) console.log(p1) // People {name: xiaoxiao, age: 30}小节: 使用class关键字声明类使用construc…