本地搭建Koodo Reader书库结合内网穿透打造属于自己的移动图书馆
文章目录
- 前言
- 1. Koodo Reader 功能特点
- 1.1 开源免费
- 1.2 支持众多格式
- 1.3 多平台兼容
- 1.4 多端数据备份同步
- 1.5 多功能阅读体验
- 1.6 界面简洁直观
- 2. Koodo Reader安装流程
- 2.1 安装Git
- 2.2 安装Node.js
- 2.3 下载koodo reader
- 3. 安装Cpolar内网穿透
- 3.1 配置公网地址
- 3.2 配置固定公网地址
前言
当你正在异国他乡的咖啡馆里享受悠闲时光时,突然灵感如泉水般涌现,急需查阅一本珍藏的电子书。如果这时你能瞬间传送到家中的电脑前,打开那本书,是不是觉得特别酷炫?别急,这可不是科幻电影里的桥段!今天就来教你一招,用Koodo Reader和Cpolar内网穿透工具,在Windows电脑上轻松搭建一个24小时在线的私人图书馆。无论你身在何处,都能随时享受阅读的乐趣,让灵感不再错过任何一个闪现的瞬间!

1. Koodo Reader 功能特点
1.1 开源免费
Koodo Reader软件在Github上开源,拥有13.6K的star数,免费又好用

1.2 支持众多格式
Koodo Reader支持常见的电子书格式,包括EPUB、PDF、MOBI等十几种格式,满足用户在不同平台和设备上的阅读需求。你可以从网上获取到的电子书采用Koodo Reader进行浏览和阅读,无论您是想读小说、教材、论文还是漫画,Koodo Reader都能满足您的需求,再也不用担心格式兼容问题。

1.3 多平台兼容
Koodo Reader在多个操作系统上运行良好。它支持Windows 7及以上的32位和64位系统,macOS 10.11及以上的x64和ARM架构系统,以及所有的Linux发行版。此外,您还可以选择使用Web网页版来阅读电子书。无论您使用的是哪种操作系统,Koodo Reader都能为您提供出色的阅读体验。

1.4 多端数据备份同步
Koodo Reader非常注重数据的安全性和同步性。您可以通过自定义数据存储位置的方式,借助OneDrive、iCloud、Dropbox、百度网盘等云服务,实现数据在多个端之间的同步。这样,无论您在哪个设备上阅读,您的阅读进度、笔记和批注都能够随时随地同步。

1.5 多功能阅读体验
Koodo Reader内置了笔记、高亮、书签和翻译等功能,助力您进行高效的书籍阅读和学习。您可以轻松地进行标注和批注,并将关键内容快速保存和导出。这些功能将帮助您更好地理解和消化所阅读的内容。
Koodo Reader还支持文字排版,支持调整字体大小、字体系列、行距、段落间距、背景颜色、文本颜色、边距和亮度等功能。使长篇文档在移动设备上也能保持清晰的排版,避免了频繁的滚动和缩放。

1.6 界面简洁直观
Koodo Reader 遵循极简主义设计原则,通过精心打磨的UI界面和交互方式让您享受沉浸式无干扰的阅读体验
2. Koodo Reader安装流程
2.1 安装Git
首先从github上克隆koodo reader(如果没有安装git的话,进入git官网进行下载windows版本 https://git-scm.com/downloads)Git下载网址:Git (git-scm.com)


以下操作可以一直按Next默认安装,如有需要改动可以自行更改。



Git安装成功。
2.2 安装Node.js
node.js官网地址:https://nodejs.org/zh-cn

以下操作可以一直按Next默认安装,如有需要改动可以自行更改。



Node安装完成。
2.3 下载koodo reader
回到主桌面同时按下Win键和R键,输入cmd出现黑色窗口

输入下方命令安装yarn
npm install -g yarn

执行下方命令
yarn

执行下方代码,安装koodo reader
git clone https://github.com/koodo-reader/koodo-reader.git

执行下方命令进入项目目录
cd koodo-reader
执行下方命令
yarn

执行下方命令后稍等几秒钟,自动跳到koodo reader web页面,然后就可以在你的图书库中进行下载图书看书啦!
yarn start


目前我们在本地成功部署了Koodo reader,但是如果我们想实现不在局域网下,在公网能够远程访问Koodo reader的话,我们就可以使用Cpolar内网穿透来实现公网随时随地访问了!免去了复杂得本地部署过程,只需要一个公网地址直接就可以访问。
3. 安装Cpolar内网穿透
下面是安装cpolar步骤:
Cpolar官网地址: https://www.cpolar.com
点击进入cpolar官网,点击免费使用注册一个账号,并下载最新版本的Cpolar

登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。

接下来配置一下koodo reader的公网地址,
3.1 配置公网地址
登录后,点击左侧仪表盘的隧道管理——创建隧道,
创建一个koodo reader的公网http地址隧道
-
隧道名称:可自定义命名,注意不要与已有的隧道名称重复
-
协议:选择http
-
本地地址:3000 (本地访问的地址)
-
域名类型:免费选择随机域名
-
地区:选择China VIP

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https。

使用上面的Cpolar生成的任意一个公网地址,在手机或任意设备的浏览器进行登录访问,即可成功看到 Koodo Reader界面。使用了Cpolar的公网域名,无需自己购买云服务器,即可到公网访问Koodo reader看自己下载好的书了!

小结
如果我们需要经常远程访问Koodo图书库或者其他本地部署的服务,由于刚才创建的是随机的地址,24小时会发生变化。而且它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新配置新的公网地址来访问Koodo reader,我们可以选择创建一个固定的http地址来解决这个问题。
3.2 配置固定公网地址
我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的图书库,而无需每天重复修改服务器地址。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。

保留成功后复制保留成功的二级子域名的名称。

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名啦。

最后,我们使用固定的公网https地址在任何浏览器打开访问,可以看到访问Koodo reader成功了这样一个固定且永久不变的公网地址就设置好了。

通过在Windows电脑上安装Koodo Reader,并巧妙运用Cpolar内网穿透技术,你的私人书库瞬间变身成为随身携带的移动图书馆!无论是工作学习还是休闲娱乐,再也不用担心找不到那本心爱的书籍了。赶紧试试吧,让你的阅读生活更加丰富多彩,从此告别‘书荒’的烦恼,享受随时随地的书香世界!
相关文章:
本地搭建Koodo Reader书库结合内网穿透打造属于自己的移动图书馆
文章目录 前言1. Koodo Reader 功能特点1.1 开源免费1.2 支持众多格式1.3 多平台兼容1.4 多端数据备份同步1.5 多功能阅读体验1.6 界面简洁直观 2. Koodo Reader安装流程2.1 安装Git2.2 安装Node.js2.3 下载koodo reader 3. 安装Cpolar内网穿透3.1 配置公网地址3.2 配置固定公网…...
DeepSeek R1 训练策略4个阶段解析
DeepSeek R1 训练策略解析 DeepSeek R1 训练策略解析1. 冷启动监督微调(Cold Start SFT)**该阶段的主要目标**: 2. 面向推理的强化学习(RL for Reasoning)**该阶段的主要目标**: 3. 拒绝采样和监督微调&…...
【博资考4】网安学院-硕转博考试内容
【博资考4】硕转博考试内容 - 网络安全与基础理论 写在最前面一. **21年硕转博面试内容回顾**网络、逆向、操作系统、攻防、漏洞1. **网络安全常见攻击方式及其防范措施**1.1 **DDoS攻击(分布式拒绝服务)**1.2 **SQL注入攻击**1.3 **XSS攻击(…...
30 分钟从零开始入门 CSS
HTML CSS JS 30分钟从零开始入门拿下 HTML_html教程-CSDN博客 30 分钟从零开始入门 CSS-CSDN博客 JavaScript 指南:从入门到实战开发-CSDN博客 前言 最近也是在复习,把之前没写的博客补起来,之前给大家介绍了 html,现在是 CSS 咯…...
C语言综合案例:学生成绩管理系统
C语言综合案例:学生成绩管理系统 需求 1.存储最多50名学生的信息(不使用结构体) 2.每个学生包含: 学号(字符数组)姓名(字符数组)3门课程成绩(一维数组) …...
使用python做http代理请求
有这样一个需求现在有两台A,B两台电脑组成了一个局域网,在A电脑上开发webjava应用,需要调用第三方接口做http请求,但是这个请求只能在B电脑上请求。 一种解决方案:自定义一个中间服务,在电脑B上运行一个简…...
数据库事务的基本要素(ACID)
数据库事务的基本要素(ACID) 在数据库管理系统(DBMS)中,事务(Transaction)是一个或多个数据库操作的集合,这些操作要么全部成功,要么全部失败。事务的目标是保证数据的一…...
DeepSeek R1满血+火山引擎详细教程
DeepSeek R1满血火山引擎详细教程 一、安装Cherry Studio。 Cherry Studio AI 是一款强大的多模型 AI 助手,支持 iOS、macOS 和 Windows 平台。可以快速切换多个先进的 LLM 模型,提升工作学习效率。下载地址 https://cherry-ai.com/ 认准官网,无强制注册。 这…...
大型语言模型技术对比:阿里Qwen qwq、DeepSeek R1、OpenAI o3与Grok 3
1. 引言 在人工智能(AI)领域中,大型语言模型(Large Language Models,简称LLM)近年来取得了显著的突破。从早期的GPT-3到如今的各种高级模型,这些技术不仅推动了自然语言处理(NLP&am…...
ArcGIS Pro可见性分析:精通地形视线与视域分析
在地理信息系统(GIS)的广泛应用中,可见性分析作为一项关键技术,发挥着不可替代的作用。 无论是城市规划、环境监测,还是军事侦察、景观设计,可见性分析都能提供精确的数据支持,帮助我们更好地理…...
计算机工具基础(五)——Vim
Vim MIT《Missing in CS Class(2020):Class 3》笔记 Vim是终端环境中常用的纯文本编辑器。Vim的默认配置文件位于~/.vimrc 模式 Vim有如下5种模式: 常规模式(Normal):进入Vim后的默认模式,用于阅读文件。以Esc自其他模式中退至此模式插入模…...
Android应用app实现AI电话机器人接打电话
Android应用app实现AI电话机器人接打电话 --安卓AI电话机器人 一、前言 【Dialer3.0智能拨号器】Android版手机app,由于采用蓝牙电话的方式来调用手机SIM卡发起呼叫、接听来电,并接收和处理通话的声音,通常我们以“蓝牙电话方案”来称呼它。 …...
Mobaxterm服务器常用命令(持续更新)
切换文件夹 cd path # for example, cd /gpu03/deeplearning/进入不同GPU ssh mgmt ssh gpu01 ssh gpu03寻找文件位置 find /path -name file_name #for example, find / -name lib #在根目录下搜寻名为lib文件 #for example, find /home/deeplearning -name "lib"…...
Android14窗口管理自适应投屏分辨率
环境 console:/ # cat /proc/version Linux version 6.1.57 (机密信息) (Android (10087095, pgo, bolt, lto, -mlgo, based on r487747c) clang version 17.0.2 (https://android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c09495f3b30ece3d2362), LLD 17…...
Shot Studio for macOS 发布 1.0.2
Shot Studio 是一个 macOS 的 app,专门为开发者设计,主要用于各大 app 应用商店的预览图设计。 提供了非常多的模板,也预设了很多尺寸。可以直接一键使用 在 1.0.2 这个版本中新增了: 文本渐变 图层:边框、颜色、圆…...
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP)
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP) 在自然语言处理(NLP)领域,Transformer 架构的出现彻底改变了传统的序列建模方法。它不仅成为现代 NLP 的核心,还推动了诸如 BERT、…...
Starrocks入门(二)
1、背景:考虑到Starrocks入门这篇文章,安装的是3.0.1版本的SR,参考:Starrocks入门-CSDN博客 但是官网的文档,没有对应3.0.x版本的资料,却有3.2或者3.3或者3.4或者3.1或者2.5版本的资料,不要用较…...
银河麒麟高级服务器操作系统在线调整/pro/{PID}/limits文件中nofile的软限制和硬限制参数值操作方法
银河麒麟高级服务器操作系统在线调整/pro/{PID}/limits文件中nofile的软限制和硬限制参数值操作方法 一 系统环境二 使用场景三 操作步骤 一 系统环境 [rootlocalhost ~]# nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server…...
html css js网页制作成品——HTML+CSS甜品店网页设计(5页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Open WebUI项目源码学习记录(从0开始基于纯CPU环境部署一个网页Chat服务)
感谢您点开这篇文章:D,鼠鼠我是一个代码小白,下文是学习开源项目Open WebUI过程中的一点笔记记录,希望能帮助到你~ 本人菜鸟,持续成长,能力不足有疏漏的地方欢迎一起探讨指正,比心心~…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
