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

算法学习远程访问:借助 cpolar 内网穿透服务使用 Hello-Algo

文章目录

    • **前言**
    • 1.关于 hello-algo
    • 2.安装 Docker 和 Docker compose
    • 3.本地部署 hello-algo
    • 4. hello-algo 本地访问
    • 5.cpolar 内网穿透工具安装
    • 6.创建远程连接公网地址
    • 7.固定 Uptime Kuma 公网地址
        • Hello-Algo 与 cpolar 的协同应用,为算法学习者打造了一个灵活、高效、跨场景的学习解决方案。通过这一方案,学习者不仅可以享受模块化、可视化的算法学习体验,还能突破设备和网络的限制,实现随时随地的学习和复习。无论是系统学习还是碎片化学习,这一方案都能提供稳定可靠的支持,帮助学习者更高效地掌握算法知识。随着在线教育的发展,这种本地化部署与远程访问相结合的学习模式将成为越来越多学习者的选择,重新定义移动学习的可能性和便利性。

前言

在算法学习过程中,许多学习者面临着一个共同的挑战:如何在不同设备和场景下保持学习的连续性和高效性。传统的学习方式往往受限于固定的电脑环境,学习者需要在特定设备上安装开发环境、配置依赖库,这不仅耗时费力,还难以实现学习进度的同步。当需要在外出时复习算法知识或编写代码时,这种限制尤为明显,可能导致学习中断或效率低下。

Hello-Algo作为一款开源的算法学习平台,通过模块化设计和交互式可视化,为学习者提供了直观、高效的学习体验。它将复杂的算法概念转化为生动的动画演示和可交互的代码示例,帮助学习者快速理解和掌握核心知识。而cpolar 内网穿透服务的加入,则彻底打破了设备和场景的限制,使学习者可以通过公网访问本地部署的 Hello-Algo 服务,在任何设备上继续学习进度,实现 “代码随身学” 的目标。

本方案的核心优势在于模块化学习跨场景访问的完美结合。Hello-Algo 将算法知识分解为独立的模块,学习者可以根据自己的节奏选择性学习;cpolar 则提供了安全稳定的公网访问通道,确保学习者可以在手机、平板或其他电脑上无缝访问自己的学习环境,无需重复配置。这种组合不仅适合在校学生系统学习算法,也适用于职场人士利用碎片时间提升技能。

从实际应用来看,这一方案为算法学习者带来了诸多便利。例如,学生可以在课堂上通过电脑学习算法原理,课后通过手机复习和巩固;程序员可以在通勤途中通过平板查看代码示例,为工作中的问题寻找解决方案;教师则可以搭建共享的 Hello-Algo 环境,为学生提供个性化的学习指导。此外,Hello-Algo 支持多种编程语言和离线学习模式,可以根据学习者的需求灵活调整,进一步提升了学习的灵活性和效率。

接下来,我们将详细介绍如何在本地部署 Hello-Algo 服务,以及如何通过 cpolar 实现公网访问,帮助你构建一个突破设备与场景限制的算法学习环境,让学习随时随地进行。

image-20241015105746189

1.关于 hello-algo

Hello-Algo 是一个旨在帮助编程爱好者系统地学习数据结构和算法的开源项目。它通过多种创新的方式,为学习者提供了一个直观、互动的学习平台。从基本的数据结构到复杂的算法,涵盖各种经典算法问题,每种都有详细的原理和应用场景介绍。而且还有动画展示数据结构的变化过程和算法执行的步骤,能帮助初学者更好的理解抽象概念。

Github 地址:https://github.com/krahets/hello-algo?spm=a2c6h.12873639.article-detail.7.67bd542bZUgP9b

它不仅提供了丰富的动画图解,让抽象的概念变得生动易懂,还涵盖了 12 种编程语言的代码实现,包括 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C 和 Zig,满足了不同学习者的需求。

Animation example

以其动画图解的直观性、多语言代码示例的丰富性、社区互动的互助性以及本地一键部署的便捷性为特点,提供了一个全面、互动且易于访问的算法和数据结构学习平台。这些特点不仅使得复杂算法概念的理解和记忆变得更加容易,也极大地促进了学习者之间的交流和知识共享,同时允许用户在自己的环境中实践和探索算法,从而深化学习体验。

Running code example

2.安装 Docker 和 Docker compose

本教程操作环境为 Linux Ubuntu 系统,在开始之前,我们需要先安装 Docker。

在终端中执行下方命令安装 docker:

curl -fsSL https://get.docker.com -o get-docker.sh

然后再启动 docker

sudo sh get-docker.sh

最后我们在 docker 容器中运行下 hello world 看一下是否安装成功。

sudo docker container run hello-world

可以看到出现了 hello world,说明我们已经安装 docker 成功,就可以进行下一步了

image-20241008151101668

此时 Docker 已经安装完了,我们进行下一步。

3.本地部署 hello-algo

本项目提供了一键安装脚本,前提是需要安装 git 可以使用以下命令一键安装。

git clone https://github.com/krahets/hello-algo.git

image-20241015140632831

现在就已经安装成功了,输入下方命令进入到 hello-algo 里面

cd hello-algo

现在输入下方命令来启动 hello-algo

sudo docker compose up -d

image-20241015155923663

启动完成后我们可以输入下方命令查看一下端口号

sudo docker ps

image-20241015152015136

现在就已经全部都安装成功了,可以通过打开 web 浏览器输入 localhost:8000 来浏览 Hello-algo 了。

4. hello-algo 本地访问

image-20241015160306700

进入到 hell-algo 了,能看到页面非常的清晰,想学习哪个章节可以随意点击,并且可以调换白天 or 黑夜模式,语言也是可以选择的。

image-20241015152737200

小结

上面在本地 Linux 中使用 Docker 成功部署了 hello-algo,并局域网访问成功。整体来说 hello-algo 是一款非常不错的免费算法学习工具,它提供了完备的功能,并且具有非常好的实用性和易用性,并且也非常容易安装部署。

如果想不在同一个局域网时远程访问本地部署的 hello-algo 学习算法,可以创建一个公网地址,这里我使用的是 cpolar 内网穿透,通过 cpolar 转发本地端口映射的 http 公网地址,我们可以很容易实现远程访问,无需自己注册域名购买云服务器,可节省大量费用。

5.cpolar 内网穿透工具安装

下面是安装 cpolar 步骤:

Cpolar 官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看 cpolar 服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar 安装和成功启动服务后,在浏览器上输入 ubuntu 主机 IP 加 9200 端口即:【http://localhost:9200】访问 Cpolar 管理界面,使用 Cpolar 官网注册的账号登录,登录后即可看到 cpolar web 配置界面,接下来在 web 界面配置即可:

image-20240801133735424

6.创建远程连接公网地址

登录 cpolar web UI 管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:helloalgo 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:https://localhost:8000
  • 域名类型:随机域名
  • 地区:选择 China Top

image-20241015153210604

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241015153312036

如下图所示,成功实现使用公网地址异地远程访问本地部署的 hello-algo

image-20241015153403850

使用上面的 cpolar https 公网地址,在任意设备的浏览器进行访问,即可成功看到我们 hello-algo 管理界面,这样一个利用公网地址可以进行远程访问的隧道就创建好了,无需自己购买云服务器,使用 cpolar 创建隧道即可发布到公网进行远程访问,新域名登录,可能需要重新登陆!

7.固定 Uptime Kuma 公网地址

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将 cpolar 套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn 已备案】

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

点击左侧的预留,选择保留二级子域名,地区选择 china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241015153547548

保留成功后复制保留的二级子域名地址:

image-20241015153623345

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

image-20241015153755703

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20241015153732507

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

image-20241015154030929

最后,我们使用固定的公网地址访问 hello-algo 管理界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

image-20241015154055696

接下来就可以随时随地进行公网访问管理 hello-algo 了,还把公网地址分享给身边的人。自己用的话,无需云服务器,还可以实现异地远程访问!以上就是如何在 Linux Ubuntu 系统 Docker 本地安装 hello-algo 的全部过程。

Hello-Algo 与 cpolar 的协同应用,为算法学习者打造了一个灵活、高效、跨场景的学习解决方案。通过这一方案,学习者不仅可以享受模块化、可视化的算法学习体验,还能突破设备和网络的限制,实现随时随地的学习和复习。无论是系统学习还是碎片化学习,这一方案都能提供稳定可靠的支持,帮助学习者更高效地掌握算法知识。随着在线教育的发展,这种本地化部署与远程访问相结合的学习模式将成为越来越多学习者的选择,重新定义移动学习的可能性和便利性。

本篇文章知识点来源[cpolar 官网][https://www.cpolar.com]

  1. cpolar 博客:配置二级子域名: https://www.cpolar.com/blog/configure-the-secondary-subdomain-name
  2. cpolar 博客:配置自定义域名: https://www.cpolar.com/blog/configure-your-own-domain-name
  3. cpolar 博客:配置固定 TCP 端口地址: https://www.cpolar.com/blog/configure-fixed-tcp-port-address
  4. cpolar 博客:配置固定 FTP 地址: https://www.cpolar.com/blog/configure-fixed-ftp-address
http://www.lryc.cn/news/621672.html

相关文章:

  • 以下是对智能电梯控制系统功能及系统云端平台设计要点的详细分析,结合用户提供的梯控系统网络架构设计和系统软硬件组成,分点论述并补充关键要点:
  • JavaScript 核心基础:类型检测、DOM 操作与事件处理
  • C++——分布式
  • 力扣 —— 二分查找
  • 【JAVA 基础入门】运算符详细介绍
  • 【软件设计模式】工厂方法与抽象工厂
  • 【办公类110-01】20250813 园园通新生分班(python+uibot)
  • 微信小程序 拖拽签章
  • GitHub 热榜项目 - 日榜(2025-08-15)
  • Redis核心架构
  • Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与学习体验增强中的应用(399)
  • electron之win/mac通知免打扰
  • 基本电子元件:碳膜电阻器
  • iOS App TF 上架多工具协作实战,一次高效的应用内测分发流程
  • iOS 性能监控实战,多工具协作完成全方位分析
  • 高并发场景下限流算法对比与实践指南
  • Day59--图论--47. 参加科学大会(卡码网),94. 城市间货物运输 I(卡码网)
  • 《人形机器人的觉醒:技术革命与碳基未来》——电子皮肤技术路线:压阻式电子皮肤及Stanford可拉伸纳米线网格
  • CSS Houdini 与 React 19 调度器:打造极致流畅的网页体验
  • Backblaze 2025 Q2硬盘故障率报告解读
  • 【机器人-基础知识】ROS1和ROS2对比
  • ABAQUS多边形骨料ITZ混凝土细观受压开裂论文复现
  • 云原生俱乐部-杂谈2
  • Linux入门(十九)定时备份数据库
  • Scrapy + Django爬虫可视化项目实战(二) 详细版
  • gnu arm toolchain中的arm-none-eabi-gdb.exe的使用方法?
  • 力扣hot100 | 普通数组 | 53. 最大子数组和、56. 合并区间、189. 轮转数组、238. 除自身以外数组的乘积、41. 缺失的第一个正数
  • ITM(仪器跟踪宏单元)是什么?
  • 崩溃大陆2 送修改器 PC/手机双端(Crashlands2)免安装中文版
  • C#WPF实战出真汁07--【系统设置】--菜品类型设置