OpenWRT配置SFTP远程文件传输,让数据分享更安全

文章目录

    • 前言
  • 1. openssh-sftp-server 安装
  • 2. 安装cpolar工具
  • 3.配置SFTP远程访问
  • 4.固定远程连接地址

前言

本次教程我们将在OpenWRT上安装SFTP服务,并结合cpolar内网穿透,创建安全隧道映射22端口,实现在公网环境下远程OpenWRT SFTP,安全地传输文件,比如备份文件、配置文件等。

  • SFTP是一种安全文件传输协议,它基于SSH协议,提供了加密、认证和数据完整性保护的安全文件传输服务。
  • cpolar是一个安全且强大的内网穿透工具,它可以通过安全隧道将NAT或防火墙后面的本地服务器,暴露给公共互联网。用过一段时间后你会发现,它甚至还可以直接在家中实现小型的云服务。

1. openssh-sftp-server 安装

更新包管理器

opkg update

然后安装SFTP 服务

opkg install vsftpd openssh-sftp-server

接下来加入开机启动

/etc/init.d/vsftpd enable

启动

/etc/init.d/vsftpd start

我们打开连接工具,这里以Filezilla 工具为例,填写局域网ip地址,用户名,密码,端口号:22 ,点击连接,即可成功

image-20230524151308028

2. 安装cpolar工具

通过ssh连接操作openwrt,下载公钥:

wget -O cpolar-public.key http://openwrt.cpolar.com/releases/public.key

下载完成后添加公钥

opkg-key add cpolar-public.key

添加cpolar的opkg仓库源

echo "src/gz cpolar_packages http://openwrt.cpolar.com/releases/packages/$(. /etc/openwrt_release ; echo $DISTRIB_ARCH)"  >>  /etc/opkg/customfeeds.conf

更新仓库

opkg update

开始安装cpolar,分别执行下面三个安装命令安装三个包:

opkg install cpolar
opkg install luci-app-cpolar
opkg install luci-i18n-cpolar-zh-cn

安装完成后,打开openwrt Web管理界⾯,我们可以看到有个service,下面即可看到我们cpolar内网穿透

image-20230426172304148

点击进去后即可看到cpolar界面

image-20230426173631379

登录cpolar官网,如果没有注册账号,可以先注册账号,然后点击左侧的验证,查看自己的认证token

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

20230111103532

之后将官网查看的token复制到openwrt cpolar服务界面的Auth Token里,设置后点击保存

image-20230426174954224

保存成功后点击界面里的 打开Web-UI界面 ,即可看到cpolar web ui 界面

image-20230426175417187

使用我们官网注册的账号登陆,登陆后即可对隧道进行管理,安装就完成啦

3.配置SFTP远程访问

浏览器打开cpolar 管理界面,我们点击左侧仪表盘的隧道管理——创建隧道,由于SFTP连接默认的是22端口,因此我们要来创建一条tcp隧道,指向22端口:

  • 隧道名称:可自定义,注意不要重复
  • 协议:tcp
  • 本地地址:22 ( 默认端口)
  • 域名类型:选择随机域名
  • 地区:选择China VIP

点击创建

image-20230524154612861

创建成功后我们点击左侧在线隧道列表查看创建的公网地址

image-20230524155044600

我们再次打开连接工具,这里还是以Filezilla 工具为例,填写上面我们看到的ip地址,地址前面加上sftp://,然后输入用户名和密码,端口号输入上面公网地址对应的端口号,点击连接,即可成功

image-20230524160058050

4.固定远程连接地址

上面通过cpolar建立的临时TCP数据隧道,不过,此时的TCP数据隧道还是随机临时TCP隧道,每个24小时端口号就会发生变化。如果想要让不同设备间的数据隧道长期稳定存在,我们还需要进一步的设置(由于固定TCP隧道会长期占用cpolar服务器资源,因此不得不将此服务列入VIP项目中(专业版套餐))。现在,就让我们来设置一条能长期稳定存在的TCP数据隧道吧。

要建立一条稳定的TCP数据隧道,我们首先要登录cpolar官网,进入仪表台的“预留”界面

20221118144407

20221118144412

在预留界面中,找到“保留的TCP地址”项目。在这个项目下,我们填入一些必要信息,如识别数据隧道的隧道名称、隧道使用区域等。

image-20230524161954646

在这些信息填入后,点击右侧的“保留”按钮,将cpolar官网后台的隧道固定下来。此时cpolar会生成一个隧道tcp地址端口

image-20230524162054917

接着我们回到浏览器cpolar界面,打开“隧道列表”,找到之前创建的随机临时TCP隧道,进入“编辑”页面,

image-20230524162156952

将我们在cpolar官网获得的隧道端口粘贴进“预留的TCP地址”栏中,然后点击下方的“更新”按钮.

image-20230524162226926

然后再次查看在线隧道列表,发现SFTP的隧道对应的公网地址变成了我们官网保留的固定地址

image-20230524162548585

我们再次打开连接工具,这里还是以Filezilla 工具为例,填写上面我们固定的ip地址,地址前面加上sftp://,然后输入用户名和密码,端口号输入上面固定公网地址对应的端口号,点击连接,即可成功

image-20230524163010492

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

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

相关文章

Python之函数进阶-函数执行原理

Python之函数进阶-函数执行原理 函数执行流程 C语言中,函数的活动和栈有关。栈是后进先出的数据结构。栈是由底端向顶端生长,栈顶加入数据成为压栈、入栈、栈顶弹出数据称为出栈。 def add(x, y):r x yprint(r)return rdef main():a 1r add(a, 2)r…

ubuntu上如何移植thttpd

thttpd的特点 thttpd 是一个简单、小巧、便携、快速且安全的 HTTP 服务器。 简单: 它只处理实现 HTTP/1.1 所需的最低限度。好吧,也许比最低限度多一点。 小: 请参阅比较图表。它还具有非常小的运行时大小,因为它不会分叉并且非…

牛客网刷题笔记131111 Python实现LRU+二叉树先中后序打印+SQL并列排序

从学校步入职场一年多,已经很久没刷过题了,为后续稍微做些提前的准备,还是重新开始刷刷题。 从未做过计划表,这回倒是做了个计划表,希望能坚持吧。 刷题比较随性且量级不大,今天就写了2个算法2个sql&#x…

无需公网IP,贝锐花生壳内网穿透远程访问NAS

群晖DSM 7.0及以上版本 1.1 安装运行花生壳套件 (1)通过浏览器输入群晖NAS的内网地址,登录进去后,点击【套件中心】,搜索【花生壳】,并点击【安装套件】; (2) 勾选我接…

Jvm虚拟机

问题: 计算机能识别的语言是二进制,Java文件是程序员编写的,如何能够在计算机上运行? 以及Java为什么可以实现跨平台? 一Java的jdk中有jvm虚拟机 可以将文件转换为字节码文件 使得它可以在各种平台上运行,这…

Openlayers:自定义Controls

Openlayers是一款优秀的二维开源地图框架,支持矢量/栅格图层,支持移动端,并且易于自定义和拓展。下面来讲述一下自定义Control的基本思路。 openlayers-features 问题描述 最近在做个人项目时,遇到了一个小问题,就是在地图中心添加一个十字针形状的符号,用来表示地图中心…

Java入门篇 之 补 类与对象

本篇碎碎念:每个人的想法都不一样,不要强求,顺其自然,要相信,一切都在向好的方面前进!!!! 今日份励志文案:山海的浩瀚,宇宙的浪漫,都在我内心翻腾…

LeetCode200.岛屿数量

看完题目我还感觉这道题目有点难,没想到20分钟不到就完全靠自己给写出来了。我就是按照自己的想法来,我用一个等大的visit数组来表示grid数组中的这个元素是否被访问过(是否已经被判断了是不是岛屿)。 先用一个大的循环对grid数组…

贝锐蒲公英X1解决远程访问NAS难题

由于经常在外出差和旅游,需要实现即使在外地也能远程登录回去家里的NAS去处理事情或传输文件,因此解决方案之一是搭建一个安全简易的个人私有云。 实施难度 (1)家庭网络无公网IP,且公网IP价格昂贵(2&…

Django的ORM操作

文章目录 1.ORM操作1.1 表结构1.1.1 常见字段和参数1.1.2 表关系 2.ORM2.1 基本操作2.2 连接数据库2.3 基础增删改查2.3.1 增加2.3.2 查找2.3.4 删除2.3.4 修改 1.ORM操作 orm,关系对象映射,本质翻译的。 1.1 表结构 实现:创建表、修改表、…

Python用requests库采集充电桩LBS位置经纬度信息

这是一个使用Python的requests库来爬取网页内容的示例。首先,我们需要导入requests库。然后,我们需要定义一个函数来处理请求。在这个函数中,我们需要设置爬虫IP服务器的URL和端口号,然后使用requests.get来获取网页内容。最后&am…

GoF之代理模式

2023.11.12 代理模式是GoF23种设计模式之一,其作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以…

解决springboot接受buffer文件为null(从picgo上传buffer看springmvc处理过程)

1. 前言: picgo插件的简单开发 上篇文章我们简单写了picgo上传插件,但是当我们测试的时候,发现问题了,后端MultipartFile file接受到的文件为null。 2. 排查问题: 参考的文档 picgo api列表关于multipart form-data中…

链表OJ题【环形链表】(3)

目录 环形问题的思考 ❓Q1 ❓Q2 🙂Q2 ❓Q3 ❓Q4 8.环形链表 9.环形链表Ⅱ 今天接着链表的经典问题环形问题。大家一定要自己动手多写写。🙂 快慢指针(保持相对距离/保持相对速度)野指针考虑为NULL的情况带环链表&#x…

SpringBoot自动装配定义先后顺序失效原因极其解析

SpringBoot自动装配定义先后顺序失效原因极其解析 1、场景分析1.1、问题总结 2、使用AutoConfigureBefore、AutoConfigureAfter和AutoConfigureOrder注解指定加载顺序2.2、AutoConfigureXX注解失效原因总结 3、使用静态内部装配类提升加载顺序4、bean加载顺序规则 1、场景分析 …

矩阵起源加入 OpenCloudOS 操作系统开源社区,完成技术兼容互认证

近日,超融合异构云原生数据库 MatrixOne企业版软件 V1.0 完成了与 OpenCloudOS 的相互兼容认证,测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好。 一、产品简介 矩阵起源 MatrixOrigin 致力于建设开放的技术开源社区和…

Nginx缓存基础

1 nginx缓存的流程 客户端需要访问服务器的数据时,如果都直接向服务器发送请求,服务器接收过多的请求,压力会比较大,也比较耗时;而如果在nginx缓存一定的数据,使客户端向基于nginx的代理服务器发送请求&…

Spring面试题:(五)Spring注解开发@Component,@Autowired,@Bean,@Configuration

Bean基本注解 spring提供注解的版本 Component注解替代bean标签 bean其它属性的相关注解: scope 替代scopelazy 替代lazy-initPostConstruct 替代init-methodPreDestroy 替代destroy-method 使用Component注解的前提是开启注解扫描 衍生注解Repository,Servi…

jdk安装

.概览 1.jdk下载 JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 安装JDK后,会在电脑中同时安装:java的运行环境jre 和 开发环境jdk。 安装 JDK时,不建议安装太旧或太新的版本。目前的最新版本是jdk9。目前jdk8比较稳定&am…

STM32 LED编程 GPIO的初始化(标准库)

实验的电路图介绍 实验的电路图类似于开漏接法 要初始化GPIOC接口 标准库的模板 GPIO的标准库编程接口 GPIO引脚的初始化 GPIO作为片上外设 每一个片上外设使用前一定要使能时钟 为什么要使能时钟?时钟是啥 时钟的使能 stm32的每一个片上外设都是时序电路 时序…