使用Python本地搭建http.server文件共享服务并实现公网环境远程访问——“cpolar内网穿透”

server/2024/9/18 4:44:45/ 标签: python, http, 开发语言
http://www.w3.org/2000/svg" style="display: none;">

前言

本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言,在自己的电脑上搭建一个共享文件服务器,并通过cpolar创建的公网地址,打造一个可以随时随地远程访问的私人云盘。

数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用,对于个人用户也有很强的实用意义。也正因如此,大量数据共享软件被开发出来,云存储的概念也被重复炒作。对于爱好折腾的笔者来说,用最简单的工具找寻私人共享和存储解决方案,也是件很有趣的事。

文章目录

    • 前言
    • 1.本地文件服务器搭建
      • 1.1.Python的安装和设置
      • 1.2.cpolar的安装和注册
    • 2.本地文件服务器的发布
      • 2.1.Cpolar云端设置
      • 2.2.Cpolar本地设置
    • 3.公网访问测试
    • 4.结语

1.本地文件服务器搭建

Python作为一个相对简单的计算机语言,在世界范围内都很受欢迎,更是成为计算机技术初学者的必修课之一。说了这么多,其实python的成功,还是来源于它的简单和功能强大,就比如现在,我们可以使用几行简单代码,建立一个python http.server文件共享服务器。

1.1.Python的安装和设置

首先,我们需要下载一个python(可以直接到python的官网www.python.org下载)

https://img-blog.csdnimg.cn/img_convert/9d0a9ade3fc39bcd825669995c88fc22.png" alt="20230322092201" />

https://img-blog.csdnimg.cn/img_convert/780d39accfe89304c62143c4cd9fa78d.png" alt="20230322092202" />

下载完成后,直接双击.exe文件进行安装。

https://img-blog.csdnimg.cn/img_convert/e3018397948c36a361ca8673ed2b4cd1.png" alt="20230322092203" />

安装过程中,要记得将python加入环境变量(path)选项勾选上

https://img-blog.csdnimg.cn/img_convert/43b90dd39485374a5ed9e6d8845ce1b8.png" alt="20230322092204" />

接着创建一个文件夹,用于存放打算进行发布的文件。为方便说明,我们将这个文件夹命名为server

https://img-blog.csdnimg.cn/img_convert/b4642a896d59f8c304d46d6e8bfa8bf8.png" alt="20230322092205" />

再以管理员身份运行cmd,对python进行设置。

https://img-blog.csdnimg.cn/img_convert/cd1bdfaa1f5ab3215094fb778ce0185f.png" alt="20230322092206" />

先在cmd中输入python,只要能出现下图显示,就说明python安装成功。

https://img-blog.csdnimg.cn/img_convert/e0c2f4769024eebb8d5de2a1b6e493e7.png" alt="20230322092207" />

接着输入命令行cd E:,转入E盘,在进入打算共享的文件夹

cd server

最后输入命令,执行文件夹的端口输出共享命令。

python -m http.server 9090  (其中端口号可以自选,但必须为未被占用的,可以选择一些偏僻的端口)

命令输入后,可能会出现防火墙询问,我们点击允许访问即可。

需要注意的是,python的共享服务功能很简单也很基础,这里共享的是当前执行命令的文件夹,无法指定某个文件夹,所以我们需要先更换盘符和文件夹,才能执行共享命令。

https://img-blog.csdnimg.cn/img_convert/29bac26eafef91d30c06eb90d01932ab.png" alt="20230322092208" />

看到cmd显示上面的内容,就可以在浏览器中访问本地9090端口,地址栏输入localhost:9090,访问到python共享的文件。

https://img-blog.csdnimg.cn/img_convert/c007a7382efebd29b2f390430ae31750.png" alt="20230322092209" />

由于python的简单功能,我们不能关闭python的进程,否则就会关闭文件共享端口。

1.2.cpolar的安装和注册

在完成python的文件夹共享设置后,我们就可以安装和注册cpolar,为后面的共享文件发布做好准备。Cpolar的下载地址可以在cpolar的官网:https://www.cpolar.com/ 中找到。

https://img-blog.csdnimg.cn/img_convert/3f524cb6df16f1466ba18d954d1fdd18.png" alt="20230322092210" />

在cpolar的下载页面中,找到对应版本的cpolar安装程序,笔者使用的是Windows操作系统,因此选择Windows版下载。

https://img-blog.csdnimg.cn/img_convert/17a585cad022a1354da53e3035a99c8d.png" alt="20230322092211" />

下载完成后,将下载的文件解压,并双击其中的.msi文件,就能自动执行cpolar的安装程序,我们只要一路Next,就能完成安装。

https://img-blog.csdnimg.cn/img_convert/6a813877b0abf126f0f0e7badf42f11e.png" alt="20230322092212" />

https://img-blog.csdnimg.cn/img_convert/a9863c3688d4acc3316e12c0cc39d012.png" alt="20230322092213" />

由于cpolar会为每个用户创建独立的数据隧道,并辅以用户密码和token码保证数据安全,因此我们在使用cpolar之前,需要进行用户注册。注册过程也非常简单,只要在cpolar主页右上角点击用户注册,在注册页面填入必要信息,就能完成注册。

https://img-blog.csdnimg.cn/img_convert/df2f7e95930ccf77406464a617da4d9d.png" alt="20230322092214" />

https://img-blog.csdnimg.cn/img_convert/45401a2f6ec09c07eae66b79c220593a.png" alt="20230322092215" />

2.本地文件服务器的发布

完成了python的设置,安装并注册好cpolar,剩下的工作简单了,只要使用cpolar建立一条数据隧道,数据隧道的入口为公共互联网地址,出口连接本地的python共享文件网页。

2.1.Cpolar云端设置

由于分享文件的需求可能随时发生,而笔者又不想每次要分享文件是就设置一次数据隧道,所以笔者将cpolar升级至vip版,以便保留能长期稳定存在的数据隧道(免费版cpolar创建的数据隧道每24小时会重置一次)。
升级cpolar至vip后,我们首先登录cpolar云端,在客户主界面左侧找到预留按钮,点击进入预留页面。

https://img-blog.csdnimg.cn/img_convert/2084cea27d71e1a03787ca29455139a7.png" alt="20230322092216" />

在预留页面,能看到cpolar提供多种协议的数据隧道保留,而我们的python是网页输出,因此找到保留二级子域名栏位,并对这个栏位的信息进行设置。

https://img-blog.csdnimg.cn/img_convert/e1d0a711aa449153c17314331aa6cd00.png" alt="20230322092217" />

设置的信息内容为:

  • 地区:服务器所在区域,就近选择即可
  • 二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一
  • 描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可

完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

https://img-blog.csdnimg.cn/img_convert/86cca8c46580919a9cd5c1b9b0586f5f.png" alt="20230322092218" />

如果这条数据隧道不打算再使用,还可以点击右侧的x将其轻松删除,节约宝贵的隧道名额。

https://img-blog.csdnimg.cn/img_convert/d1d18ab3e3a64de31942a934f836fc8b.png" alt="20230322092219" />

2.2.Cpolar本地设置

完成cpolar云端的数据隧道入口保留后,我们回到cpolar本地客户端,将cpolar云端生成的数据隧道入口与本地python网页连接起来。

首先登录cpolar客户端,(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式),点击客户端主界面左侧隧道管理——创建隧道按钮,进入本地隧道创建页面(如果要创建每24小时重置地址的临时数据隧道,可直接在此进行设置,不必在cpolar官网设置空白数据隧道)。

在这个页面,同样需要进行几项信息设置,这些信息设置包括:

  1. 隧道名称:可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可
  2. 协议:由于python的共享是是网页形式,因此选择http协议
  3. 本地地址:本地地址即为本地网站的输出端口号,之前我们将python的输出端口设定在9090,因此这里也填入9090
  4. 域名类型:在这个例子中,我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选二级子域名(如果预留的是自定义域名,则勾选自定义域名),并在下一行Sub Domain栏中填入预留的二级子域名,该例子中为“pythontest”。如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址
  5. 地区:与cpolar云端预留的信息一样,我们依照实际使用地填写即可

https://img-blog.csdnimg.cn/img_convert/44b869ec00443ac551ed3c1045f3de04.png" alt="20230322092220" />

完成这些设置后,就可以点击下方的创建按钮,完成这条能够长期留存的数据隧道搭建。

数据隧道创建完成后,cpolar会自动跳转至隧道管理——隧道列表页面。在这个页面,我们可以对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击编辑按钮,对这条数据隧道的信息进行修改。

https://img-blog.csdnimg.cn/img_convert/331033cadfce18ff6aad59b3fd7dd8c6.png" alt="20230322092221" />

python的数据隧道入口(公共互联网访问地址),则可以在状态——在线隧道列表中找到。

https://img-blog.csdnimg.cn/img_convert/815a6206f856d7b70cadc55fc3af6f87.png" alt="20230322092222" />

3.公网访问测试

我们将这里的公网地址粘贴到其他设备上的浏览器中,就能看到本地电脑上由python生成的文件分享网页,并能轻松查看所分享的文件。

https://img-blog.csdnimg.cn/img_convert/100a8c91d2b6ed14f0b8b2a77f0081a6.png" alt="20230322092223" />

4.结语

至此,我们成功使用cpolar内网穿透发布了python的文件分享网页,虽然这个python文件分享网页过于简单,功能也很简陋,但能够很好的展示,网页(或软件)输出端口与cpolar数据隧道端口设定之间的关系,即网页(或软件)的输出端口,一定要与cpolar数据隧道填入的端口一致,才能准确的连接起公共互联网地址和本地网页(或软件)。


http://www.ppmy.cn/server/115737.html

相关文章

AI助理驱动的企业知识库:从数据海洋到知识金矿的转变

在当今这个信息爆炸的时代,企业面临着前所未有的数据洪流。这些数据,无论是来自市场趋势、客户反馈、内部运营还是外部研究,都蕴含着巨大的价值,但同时也带来了筛选、整合与应用的巨大挑战。如何在这片数据海洋中捞出真金白银&…

小样本学习+多模态

小样本学习多模态 小样本学习和多模态学习的结合是一种前沿的研究方向,主要作用是在利用少量的训练数据来学习多个模态(如文本、图像、音频、视频等)之间的关系或进行跨模态的任务。通过这种结合,模型能够在极少的样本情况下&…

Ubuntu Python与GitHub API 交互,获取仓库更新信息

1. 获取 GitHub 个人访问令牌 登录 GitHub ,首先使用帐户登录 GitHub 在 GitHub 页面右上角点击头像,然后选择 “Settings” 在左侧菜单栏滚动到最下方,找到并点击 “Developer settings” 在 “Developer settings” 页面中&#xff0c…

浪潮FS8500存储交换机License申请

1、提供如下信息,邮箱发送至浪潮客服邮箱:lckfpmieisystem.com 客户信息、交换机型号、序列号、SwitchWWN、扩展code、光模块的SN(光模块盒子上有) SwitchWWN:存储交换机上内置的标签,或则登录交换机#swit…

Vue 文件转base64并获取文件编码格式

一、安装依赖 npm install jschardet //获取文件编码格式用 import jschardet from jschardet //JS中引入 二、文件转base64 getBase64AndBm (file) { //file为上传文件对象,一般前端所用框架的上传组件before-upload函数可以返回return new Promise((resolve, r…

根据NVeloDocx Word模板引擎生成Word(二)

前面讲到了根据“永久免费开放的E6低代码开发平台”的NVeloDocx Word模版引擎生成Word文件的基础取数方法,包括取本表单字段以及引用字段,详见《根据NVeloDocx Word模板引擎生成Word(一)》。 针对这种基本的取数方法,…

自动化测试智能化,告别测试盲区

​声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/#1 在自动化测试的波涛汹涌中,最让我头疼的就是那些复杂如迷宫的业务逻辑了。维护成本高,一开始就把我搞得晕头转向;模拟真实用户行…

2024最新!Facebook手机版和网页版改名教程!

Facebook作为全球最大的社交平台之一,允许用户自定义名字和昵称。在Facebook更新姓名可以帮助您更好的展现账号形象。本文将为您提供详细的步骤指导,帮助您在手机APP和网页版上轻松完成Facebook改名操作。 Facebook手机版改名 打开Facebook APP并登录账号…

dependencies和devDependencies详解、区别

1. dependenciesdependencies字段用于列出项目运行时必需的模块。当你将一个模块添加到dependencies时,意味着这个模块对于你的项目在生产环境下的正常运行是必不可少的。例如,如果你正在构建一个使用Express的Web服务器,那么Express应该被添…

基于springboot的校园志愿者管理系统的设计与实现 (含源码+sql+视频导入教程+论文+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的校园志愿者管理系统2拥有两个角色:管理员和志愿者 管理员:志愿者管理、类型管理、活动管理、报名管理、通知管理、心得管理、公告管理等 志愿者&a…

期望极大算法(Expectation Maximization Algorithm,EM)

定义 输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z| θ \theta θ),条件分布PP(Z,Y| θ \theta θ); 输出:模型参数 θ \theta θ (1)选择参数的初值 θ ( 0 ) , 开始迭代 ; \theta^{(0)},开始迭代; θ(0),开始迭代; (2)E步:记 θ ( i ) 为第 i 次迭代参数 \theta^{(i)}为第…

Spring-Bean 生命周期

Spring 是一个强大的 Java 框架,广泛应用于企业级应用开发中。Spring 框架的核心是它的依赖注入机制(DI),而 Bean 是 DI 的基本单位。在 Spring 中,Bean 的生命周期从创建到销毁,涉及多个阶段和机制 一、S…

【计网】计算机网络基础

当自律变成一种本能的习惯, 你就会享受到它的快乐。 --- 村上春树 --- 初识计算机网络 1 初识协议1.1 协议分层1.2 OSI七层模型1.3 TCP / IP协议 2 初识局域网2.1 什么是局域网2.2 MAC地址2.3 局域网通信 3 简单认识IP地址 1 初识协议 1.1 协议分层 首先&#…

视频融合共享平台LntonAIServer视频分析平台噪声监测优势

LntonAIServer的视频质量诊断功能中的噪声检测是一项关键技术,旨在帮助用户及时发现并解决视频流中的噪声问题,确保视频监控系统的稳定性和可靠性。 在视频监控系统中,噪声问题常常影响到视频画面的清晰度和可用性。噪声可能由多种因素引起&a…

Android 设计模式

设计模式六大原则 单一职责原则(Single Responsibility Principle, SRP) 每个类应该仅有一个引起它变化的原因。 这意味着一个类只应该专注完成一项任务或功能。 举例 考虑一个 User 类,用于表示用户信息,例如用户名和密码。如…

【LeetCode每日一题】——912.排序数组

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 优先队列 二【题目难度】 中等 三【题目编号】 912.排序数组 四【题目描述】 给你一个整数…

彻底解读云呼叫中心系统,企业客户服务必备

在瞬息万变的现代商业环境中,客户服务的重要性日益凸显,云呼叫中心系统作为其前沿的代表,正成为众多企业追逐的新宠。本文旨在全面解读云呼叫中心系统,帮助企业和读者更好地理解其运作模式、技术优势及未来发展趋势。 一、云呼叫中…

DoubletFinder去除双细胞分析学习

在单细胞RNA测序过程中,有时两个或多个细胞可能在制备过程中意外结合成一个单一的"假细胞",称为双峰细胞或双倍体。这些双峰细胞可能会扭曲数据分析和解释,因此,需要使用一些方法对它们进行识别和剔除。其中DoubletFind…

iPhone的安全模式如何操作

iPhone安全模式的进入方法 简介 iPhone的安全模式是一个特殊的系统状态,主要用于在设备出现问题时进行故障排除。在此模式下,第三方应用程序和服务通常会被禁用,只允许系统自带的应用运行,从而帮助用户定位和解决问题。以下是详…

一维数组 list 呢 ,怎么转换成 (批次 句子长度 特征值 )三维向量 python pytorch lstm 编程 人工智能

一、介绍 对于一维数组,如果你想将其转换成适合深度学习模型(如 LSTM)输入的格式,你需要考虑将其扩展为三维张量。这通常涉及到批次大小(batch size)、序列长度(sequence length)和…