通过cpolar实现外网ssh远程连接linux

现在我有个想法,就是希望通过外网能够远程连接到我的开发板。这里我们就需要使用到一种技术,内网穿透。

内网穿透是一种将内部网络中的设备通过外网进行访问的技术。在linux系统中,实现内网穿透有多种方式,其中最常见的方法是使用ngrokfrp

frp为例,frp是一个专注于内网穿透的高性能的反向代理应用,支持TCPUDPHTTPHTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。

然而由于我自己并没有公网IP,因此这里采用了一款内网穿透软件cpolar,不限制流量,还可以永久免费使用。完成软件的配置后,会默认安装ssh隧道,只需要启动,就可以获取到ssh隧道,映射22端口的公网地址,比较简单。

一、内网穿透

1.1 注册免费的cpolar账号

cpolar官网地址:https://i.cpolar.com/m/55wq,官网注册账号。账号注册号之后,点击右上角用户设置,进行重置AuthToken

并保存自己的Authtoken;

20230111103532
1.2 安装cpolar客户端

下载cpolar安装脚本:

root@rk3399:/data# mkdir cpolar
root@rk3399:/data# wget https://www.cpolar.com/static/downloads/install-release-cpolar.sh 
root@rk3399:/data# mv install-release-cpolar.sh ./cpolar/
root@rk3399:/data# mv install-release-cpolar.sh ./cpolar/
root@rk3399:/data# cd cpolar/
root@rk3399:/data/cpolar# ls -l
total 24
-rw-r--r-- 1 root root 21833 Apr  5  2023 install-release-cpolar.sh
root@rk3399:/data/cpolar# chmod +x install-release-cpolar.sh

开始安装:

root@rk3399:/data/cpolar# ./install-release-cpolar.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 21833  100 21833    0     0  61849      0 --:--:-- --:--:-- --:--:-- 61849
info: Installing Cpolar 3.3.12 for aarch64
Downloading Cpolar archive: http://static.cpolar.com/downloads/releases/3.3.12/cpolar-stable-linux-arm64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6716k  100 6716k    0     0   9.7M      0 --:--:-- --:--:-- --:--:-- 9995k
info: Extract the Cpolar package to /tmp/tmp.zNY8gPayfj and prepare it for installation.
Downloading Cpolar demo config file: http://static.cpolar.com/downloads/cpolar.demo.yml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   186  100   186    0     0   4650      0 --:--:-- --:--:-- --:--:--  4650
Downloading Cpolar service config file: http://static.cpolar.com/downloads/cpolar.service
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   384  100   384    0     0  11294      0 --:--:-- --:--:-- --:--:-- 11294
Downloading Cpolar service@ config file: http://static.cpolar.com/downloads/cpolar@.service
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   380  100   380    0     0  11875      0 --:--:-- --:--:-- --:--:-- 11875
rm: cannot remove '/etc/systemd/system/cpolar.service.d/10-donot_touch_multi_conf.conf': No such file or directory
rm: cannot remove '/etc/systemd/system/cpolar@.service.d/10-donot_touch_multi_conf.conf': No such file or directory
info: Systemd service files have been installed successfully!
warning: The following are the actual parameters for the cpolar service startup.
warning: Please make sure the configuration file path is correctly set.
# /etc/systemd/system/cpolar.service
[Unit]
Description=Cpolar Service
Documentation=https://www.cpolar.com/docs
After=network.target nss-lookup.target

[Service]
User=nobody
NoNewPrivileges=true
ExecStart=/usr/local/bin/cpolar start-all -dashboard=on -daemon=on -config=/usr/local/etc/cpolar/cpolar.yml -log=/var/log/cpolar/access.log
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target

installed: /usr/local/bin/cpolar
installed link: /usr/bin/cpolar
installed: /usr/local/etc/cpolar/cpolar.yml
installed: /var/log/cpolar/
installed: /var/log/cpolar/access.log
installed: /var/log/cpolar/error.log
installed: /etc/systemd/system/cpolar.service
installed: /etc/systemd/system/cpolar@.service
removed: /tmp/tmp.zNY8gPayfj
info: Cpolar 3.3.12 is installed.
You may need to execute a command to remove dependent software: apt purge curl unzip
Please execute the command: systemctl enable cpolar; systemctl start cpolar

查看cpolar版本信息,如果正常显示,则安装成功:

root@rk3399:/data/cpolar# cpolar version
cpolar version 3.3.12

进行token认证:

root@rk3399:/data/cpolar# cpolar authtoken 配置第一步中获取的Authtoken
Authtoken saved to configuration file: /usr/local/etc/cpolar/cpolar.yml

配置cpolar开机自启动:

root@rk3399:/data/cpolar# systemctl enable cpolar
Created symlink /etc/systemd/system/multi-user.target.wants/cpolar.service → /etc/systemd/system/cpolar.service.

守护进程方式,启动cpolar:

root@rk3399:/data/cpolar# systemctl start cpolar

查看cpolar守护进程状态;

root@rk3399:/data/cpolar# systemctl status cpolar
● cpolar.service - Cpolar Service
     Loaded: loaded (/etc/systemd/system/cpolar.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-11-12 21:21:04 CST; 17s ago
       Docs: https://www.cpolar.com/docs
   Main PID: 6768 (cpolar)
      Tasks: 22 (limit: 4569)
     Memory: 18.1M
     CGroup: /system.slice/cpolar.service
             ├─6768 cpolar: master process
             └─6779 cpolar: worker process

Nov 12 21:21:04 rk3399 systemd[1]: Started Cpolar Service.
1.3 获取ssh隧道的公网地址

cpolar会默认安装两个样例隧道,一个是Website隧道指向http 8080端口,一个是ssh隧道,指向tcp 22端口;

PC机器浏览器访问:http://192.168.0.102:9200,登录cpolar web UI管理界面;其中192.168.0.102是我的开发板的内网IP地址。

在状态—>在线隧道列表,就可以获取到ssh隧道的公网地址;

1.4 公网ssh远程linux服务

在外网设备上执行命令,就可以ssh远程内网的linux服务;

ssh ${linux用户名}@${cpolar所生成的公网地址} -p ${cpolar生成的端口号}

其中:

  • linux用户名为开发板的用户名;
  • cpolar所生成的公网地址:不包含上图公网地址列中的协议名和后面的端口号;

比如我这里运行命令:

[root@test2 ~]# ssh zhengyang@5.tcp.vip.cpolar.cn -p 14318

注意:免费使用cpolar,所生成的公网地址是随机的,每24小时会变化,如果是需要后期长期使用,可以升级套餐,配置固定的域名地址,增大带宽,价格也不高,而且还支持21天退款保证。

参考文章

[1] cpolar入门指南

[2] 在Ubuntu搭建Web站点,并将其发布到公网访问

[3] 国产的内网穿透工具也很优秀,这10款工具推荐正在寻找的你

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Postman还能做Mock?又学了一招!

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

A Gentle Introduction to Graph Neural Networks

A Gentle Introduction to Graph Neural Networks----《图神经网络入门》 图神经网络信息传递积累 图在我们身边随处可见,现实世界中的物体通常是根据它们与其他事物的联系来定义的。一组物体以及它们之间的联系可以很自然地用图来表示。十多年来,研究人…

AWS实战(一)-创建S3 存储桶

1)登录AWS账号,选择服务—>存储—>S3。 2)查看存储桶列表 3)点击"创建存储桶"创建bucket。 4)设置跨域 点击编辑,修改跨域设置即可。

工具: PowerShell常用命令

ISE: 打开ISE编辑器 echo: 输出一行信息 mkdir: 创建一个文件夹 mkdir ./MyPlugin文件相关处理 参考: powershell新手向,新建、删除文件及对文件添加内容 参考文档 PowerShell入门教程 语法、环境| Powershell 教程

【springmvc框架一文搞定】

SpringMVC框架 1. 搭建springmvc测试项目1.1 创建maven项目1.2 导入依赖pom.xml1.3 将springmvc容器加载到tomcat中1.4 启动tomcat插件1.5 访问路径: 2. 剖析启动过程2.1 启动服务器初始化过程2.2 访问路径执行过程 3.spring-springmvc bean的管理3.1 因为功能不同&…

langchain实战-hello world

一、LangChain简介 github地址: GitHub - langchain-ai/langchain: ⚡ Building applications with LLMs through composability ⚡ LangChain是一个用于开发由语言模型支持的应用程序的框架。它使应用程序能够: 具有上下文感知能力:将语言模…

BES2700H开发不完全手册

BES2700H开发不完全手册 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送语音信号处理降噪算法,ANC AEC ENC EQ BF BES蓝牙耳机音频资料 1 成功编译 2 代码 3 开放文档

餐饮业数字化革命:抖音小程序团购功能的开发与优化

本文将聚焦于餐饮业数字化的前沿,着眼于抖音小程序团购功能的开发与优化,探讨如何借助这一功能实现餐饮业的蓬勃发展。 一、数字化浪潮下的餐饮业 传统餐饮业面临的挑战在于如何更好地适应快节奏生活和消费者多元化需求。数字化浪潮为餐饮业提供了解决方…

[Linux] ssh远程访问及控制

一、ssh介绍 1.1 SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用于实现远程登录、远程复制等功能的字符接口。SSH 协议包括用户在登录时输入的用户密码、双方之间的通信。 加密数据传输,SSH 是一种建立在应用层和传输层上…

第06章 面向对象编程(基础)

一 面向对象编程概述 1.1 程序设计的思路 面向对象,是软件开发中的一类编程风格、开发范式。除了面向对象,还有面向过程、指令式编程和函数式编程。在所有的编程范式中,我们接触最多的还是面向过程和面向对象两种。 类比:史书类…

manim更新

manim升级18.0 # 1 更新pip,推荐轮子下载 python -m pip install --upgrade pip 推荐方式下载轮子安装 首先尝试在中断更新pip,通过命令python -m pip install --upgrade pip 可能遇到以下情况 记录最新的pip轮子名 记录下上面pip的名称,去…

得帆信息携手深信服,联合打造高安全PaaS超融合一体化解决方案

上海得帆信息技术有限公司(以下简称“得帆”)和深信服科技股份有限公司(以下简称“深信服”)携手推出融合安全性、稳定性、高效性于一体的全新PaaS超融合解决方案。 用户痛点分析 全面推进企业数字化与信息化的趋势下,…

深入探讨Linux中的文本文件查看命令

目录 前言1 cat命令2 less命令3 more命令4 head命令5 tail命令6 总结 前言 在Linux系统中,文本文件是日常工作中不可或缺的一部分,无论是配置文件、日志文件还是代码文件,都需要用到文本文件查看命令。在本文中,我们将深入研究一…

块设备的工作模式

块设备的mknod 还是会创建在 /dev 路径下面,这一点和字符设备一样。/dev 路径下面是 devtmpfs 文件系统。这是块设备遇到的第一个文件系统。我们会为这个块设备文件,分配一个特殊的 inode,这一点和字符设备也是一样的。只不过字符设备走 S_IS…

pcl opencv关于flann的冲突:flann_algorithm_t等

问题如下: 引起问题的点: 解决方法:先include pcl后include opencv; 其他解决方式是在环境变量中将pcl置于opencv前面,但是这里如果是先include opencv,后include pcl问题得不到解决;

java实现冒泡排序

冒泡排序是一种简单的排序算法&#xff0c;以下是Java实现示例代码&#xff1a; public static void bubbleSort(int[] array) {int n array.length;for (int i 0; i < n - 1; i) {for (int j 0; j < n - i - 1; j) {// 如果前面的元素比后面的元素大&#xff0c;就交…

【JVM】Java内存溢出分析(堆溢出、栈溢出、方法区溢出、直接内存溢出)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

ros 使用turtlesim包报错

ros 使用turtlesim包报错 rosrun] Couldn’t find executable named turtlesim_node below /opt/ros/noetic/share/turtlesim 先说一下前提&#xff0c;我的命名空间是demo03-ws&#xff0c;创建了一个功能包叫rename01_node,下面编写了一个launch文件&#xff0c;如下 希望…

2023nacos源码解读第3集——nacos-client核心功能之微服务调用和配置管理测试

文章目录 1、测试项目2、项目注意事项3、 测试核心功能3.1 测试服务调用与负载均衡3.2 测试配置监听 4、参考文档 1、测试项目 项目地址 nacos-service-a nacos-service-b 2、项目注意事项 项目初始化可以使用aliyun spring initializer ,以更方便的使用springcloud alibaba…