JuiceSSH+cpolar解锁手机远程Linux新姿势,无需公网IP,固定地址稳定用

JuiceSSH+cpolar解锁手机远程Linux新姿势,无需公网IP,固定地址稳定用

文章目录

前言

JuiceSSH 是一款手机端 SSH 工具,能让用户通过手机远程连接 Linux 服务器,执行命令、管理文件,适合程序员、运维人员和需要远程操作 Linux 的学生。它界面简洁,操作方便,支持保存连接信息,还能快速切换不同服务器,移动办公很实用。

用 JuiceSSH 时感觉,它的快捷键设计挺贴心,输入命令效率不低,但连接时要确保网络稳定,不然容易断开。另外,初次配置时,端口和地址别输错,不然连不上会耽误事。

不过,JuiceSSH 在没有公网地址的情况下,只能连接同一局域网的 Linux 设备。比如回家后想远程处理公司电脑的问题,或者在外面需要查看实验室服务器的运行状态,就没法直接连接,很不方便。

而 JuiceSSH 与 cpolar 配合后,就能突破局域网限制。cpolar 能生成公网地址,把内网的 Linux 服务暴露出去,不用设置路由器端口映射,在外面用手机打开 JuiceSSH,输入公网地址就能连接,紧急情况处理起来又快又方便 📱

下面就让我们来实操一下吧:

1. Linux安装cpolar

首先,我们在Linux中安装[cpolar内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)工具

  • 使用一键脚本安装命令,该脚本适用于Ubuntu16.04/18.04/20.04及以后,Centos7/8及以后版本,树莓派最新官方镜像,及支持systemd的新式Linux操作系统,该脚本会自动判断CPU架构(i386/amd64/mips/arm/arm64等等),自动下载对应cpolar客户端,并自动部署安装。
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh |sudobash
  • 向系统添加服务
sudo systemctl enable cpolar 
  • 启动cpolar服务
sudo systemctl start cpolar 

成功启动cpolar服务后,我们浏览器上使用Linux局域网IP地址:9200端口,访问登录cpolar web UI管理界面(如果访问不了,关闭一下防火墙),如果没有账号点击免费注册创建一个账号。

2. 创建公网SSH连接地址

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

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:22
  • 域名类型:临时随机TCP端口
  • 地区:选择China VIP

点击创建

然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp连接的公网地址,这个公网地址就是我们需要用来连接的地址

3. JuiceSSH公网远程连接

在手机端,我们下载JuiceSSH,软件,下载软件可以在网上搜索下载,下载后打开软件,我们可以看到快速连接,点击快速连接

点击后,把我们上面创建的cpolar公网地址输入进去,注意,输入的时候按照:用户名@cpolar地址格式进行输入,输入完成点击确定

![]
点击确定后,提示我们需要输入用户名对应的密码,然后点击确定

加下来成功连接上了我们的Linux服务器,这里以Ubuntu系统为例子,这样一个通过手机远程ssh 访问Linux服务器的地址就设置好了

4. 固定连接SSH公网地址

要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

配置固定tcp端口地址需要将cpolar升级到专业版套餐或以上。

保留一个固定tcp地址

登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为我的世界保留一个固定tcp地址:

  • 地区:选择China vip
  • 描述:即备注,可自定义

点击保留

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

5. SSH固定地址连接测试

固定好了地址后,我们打开JuiceSSH ,使用我们固定的地址进行连接,同样输入的时候按照:用户名@cpolar地址格式进行输入,输入完成点击确定

可以看到,连接成功,一个固定的且不会变化的远程访问地址就设置好了,哪怕我们下次连接,地址也是不会发生变化

总之,JuiceSSH 结合 cpolar,让手机远程访问 Linux 变得简单高效,解决了异地操作的难题,适合需要灵活处理工作的用户,提升远程办公的便利性。

本篇文章知识点来源[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

Read more

【C++】第十七节—二叉搜索树(概念+性能分析+增删查+实现+使用场景)

【C++】第十七节—二叉搜索树(概念+性能分析+增删查+实现+使用场景)

好久不见,我是云边有个稻草人 《C++》本文所属专栏—持续更新中—欢迎订阅 目录 一、二叉搜索树的概念 二、二叉搜索树的性能分析 三、二叉搜索树的插入 SearchBinaryTree.h test.cpp 四、⼆叉搜索树的查找 【只有一个3】 【有多个3】  五、⼆叉搜索树的删除 六、二叉搜索树的实现代码 SearchBinaryTree.h test.cpp  七、二叉搜索树key和key/value使用场景 7.1 key搜索场景 7.2 key/value搜索场景 7.3 key/value⼆叉搜索树代码实现 .h .cpp 正文开始—— 一、二叉搜索树的概念 ⼆叉搜索树⼜

By Ne0inhk
C++ 游戏开发:从零到英雄的进阶之旅

C++ 游戏开发:从零到英雄的进阶之旅

在当今数字化时代,游戏开发已然成为极具吸引力与挑战性的领域。C++ 作为游戏开发中极为常用的语言之一,凭借其高性能和强大功能,长久以来都是游戏开发者的心头好。若你对游戏开发满怀热忱,却不知如何起步,这篇博客就将为你揭开 C++ 游戏开发的神秘面纱,引领你踏上从新手到高手的进阶之路。 一、为什么选择 C++ 进行游戏开发? 在游戏开发的广袤天地里,编程语言的抉择至关重要。C++ 以其独有的优势,成为众多开发者的不二之选: (一)高性能 游戏开发过程中需要处理海量的实时计算任务,涵盖图形渲染、物理模拟以及用户输入响应等关键环节。C++ 具备直接访问硬件的能力,能够极为高效地利用系统资源,切实保障游戏运行的流畅性。以处理复杂的 3D 场景渲染为例,C++ 能够快速对大量的顶点数据、纹理信息进行处理和计算,精准地将虚拟的 3D 世界呈现在玩家眼前,其性能优势在这种场景下展现得淋漓尽致。 (二)强大的功能 C++ 全力支持面向对象编程(OOP),这使得开发者能够通过类和对象来有条不紊地组织代码。比如在开发一款角色扮演游戏时,我们可以创建 “角色” 类,

By Ne0inhk
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

文章目录 * 前言 * C++的类型转换 * 四种命名的强制类型转换操作符 * static_cast * reinterpret_cast * const_cast * dynamic_cast * RTTI(这个了解一下就行了) * C++的IO流 * C++文件的IO流 * stringstream 前言 在 C++ 编程体系中,类型转换与 IO 流是支撑程序数据处理与交互的两大核心环节。类型转换关乎数据在不同类型间的安全传递与运算适配,而 IO 流则负责程序与外部设备(如键盘、屏幕、文件)之间的数据输入与输出,二者共同构成了 C++ 程序实现功能、交互信息的基础框架。 C 语言中的类型转换方式虽简洁,却存在可视性差、难以追踪的问题,容易在复杂程序中引发潜在的逻辑错误。为解决这一痛点,C++ 引入了四种命名明确的强制类型转换操作符 ——static_cast、reinterpret_

By Ne0inhk
C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战 💡 学习目标:掌握 C++ 标准库中条件变量的使用方法,理解条件变量与互斥锁的协同工作机制,能够解决多线程间的等待-通知问题。 💡 学习重点:std::condition_variable 的核心接口、wait() 与 notify_one()/notify_all() 的配合使用、生产者-消费者模型的实现。 49.1 条件变量的引入场景 在多线程编程中,我们经常会遇到线程需要等待某个条件满足后再执行的场景。 比如生产者线程生产数据后,消费者线程才能消费;队列不为空时,消费者才能从中取数据。 如果仅用互斥锁实现,消费者线程只能不断轮询检查条件,这会造成 CPU 资源的浪费。 ⚠️ 注意事项:单纯的轮询会导致 CPU 空转,降低程序运行效率,条件变量就是为解决这类问题而生的。 举个简单的轮询反例,消费者不断检查队列是否有数据: #include<iostream>

By Ne0inhk