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

news2024/9/22 19:19:29

前言

本文主要介绍如何在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下载)

20230322092201

20230322092202

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

20230322092203

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

20230322092204

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

20230322092205

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

20230322092206

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

20230322092207

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

cd server

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

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

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

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

20230322092208

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

20230322092209

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

1.2.cpolar的安装和注册

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

20230322092210

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

20230322092211

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

20230322092212

20230322092213

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

20230322092214

20230322092215

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

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

2.1.Cpolar云端设置

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

20230322092216

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

20230322092217

设置的信息内容为:

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

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

20230322092218

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

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云端预留的信息一样,我们依照实际使用地填写即可

20230322092220

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

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

20230322092221

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

20230322092222

3.公网访问测试

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

20230322092223

4.结语

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

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

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

相关文章

Spring Boot项目更改项目名称

背景:新项目开始前,往往需要初始化功能,拿到基础版本后更改项目对应的名称等信息。 更改步骤如下: 1、修改目录名称。 打开本地项目,右键修改项目名称。 2、修改maven项目的pom依赖 修改parent及modules项目名称&…

C++语法知识点合集:7.string类

文章目录 一、标准库中的string类1.string类2.auto和范围for3.string类的常用接口说明 二、string类的模拟实现1. 经典的string类问题2.浅拷贝3.深拷贝 一、标准库中的string类 1.string类 string是表示字符串的字符串类该类的接口与常规容器的接口基本相同,再添加…

鸿蒙 HarmonyOS 下拉控件

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您有一定的帮助请&#x1f…

Verilog和Matlab实现RGB888互转YUV444

文章目录 一、色彩空间1.1 RGB色彩空间1.2 CMYK色彩空间1.3 YUV色彩空间 二、色彩空间转换公式2.1 RGB转CMYK2.2 CMYK转RGB2.3 RGB888转YUV4442.4 YUV444转RGB888 三、MATLAB实现RGB888转YUV4443.1 matlab代码3.2 matlab结果 四、Verilog实现RGB888转YUV444 一、色彩空间 色彩空…

python_openCV_计算图片中的区域的黑色比例

希望对原始图片进行处理,然后计算图片上的黑色和白色的占比 上图, 原始图片 import numpy as np import cv2 import matplotlib.pyplot as pltdef cal_black(img_file):#功能: 计算图片中的区域的黑色比例#取图片中不同的位置进行计算,然后计算器数值#----------------p…

如何使用事件流相关操作

文章目录 1. 概念介绍2. 使用方法StreamControllerStreamBuilder 3. 示例代码 我们在上一章回中介绍了管理Stream事件流相关的内容,本章回中将介绍如何使用Stream事件流输入输出数据 。闲话休提,言归正传,让我们一起Talk Flutter吧。 1. 概念…

【VSCode v1.93.0】手动配置远程remote-ssh

开发环境 VS Code版本:1.93.0 (Windows) Ubuntu版本:20.04 使用VS Code 插件remote-ssh远程访问Ubuntu服务器中的代码,若Ubuntu无法联网,在连接的时候会报错: Could not establish connection to "xxxx": F…

前端玩Postgres数据库:Ai大法一把梭

大家好,我是程序员凌览。 前段时间分享如何白嫖一台服务器 👉🏼👉🏼白嫖不是梦,三分钟搞定一台服务器。 本文分享如何在平台Vercel白嫖服务器的同时蹭个postgres数据库。 创建数据库 切换到Storage&…

828华为云征文|基于Flexus云服务器X实例的应用场景-部署自己的博客系统

🔴大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 先看这里 写在前面效果图部署拾壹博客系统项目架构项目特点详细介绍部署博客系统更改redis的信息打包后端上传jar到服务器中打包前端项目 总结 写在前面 华为云828云服务器活…

【加密社】如何根据.dat文件恢复密钥

加密社 看了这篇指南,你将了解助记词和密钥地址(qianbao)背后的基本原理。 以及,如何找回你的大饼密钥。 Not your key, not your coin 如果你不掌握自己加密货币钱包的私钥,那么你实际上并不能完全控制你的资产 在当今…

每日OJ_牛客_走迷宫(简单bfs)

目录 牛客_走迷宫(简单bfs) 解析代码: 牛客_走迷宫(简单bfs) 走迷宫__牛客网 解析代码: 采用一个二维数组,不断的接受迷宫地图(因为有多个地图),获取到迷宫地图后,采…

智能匹配新高度:相亲交友系统如何运用AI技术提升用户体验

在数字化时代,相亲交友系统正逐渐融入人工智能(AI)技术,以提升用户体验和匹配效率。AI的引入不仅改变了传统的交友方式,还为用户带来了更加个性化和精准的交友体验。以下是一篇关于如何运用AI技术提升相亲交友系统用户…

第L8周:机器学习|K-means聚类算法

本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 | 接辅导、项目定制 🚀 文章来源:K同学的学习圈子深度学习 聚类算法的定义: 聚类就是将一个庞杂数据集中具有相似特征的数据自动归类到一…

YOLOV5入门教学-common.py文件

在 YOLOv5 框架中,common.py 文件是一个核心组件,负责定义深度学习模型的基础模块和常用操作。无论是卷积层、激活函数、特征融合还是其他复杂的模型结构,common.py 都提供了灵活且高效的实现。在这篇文章中,我们将深入解析 commo…

【科普知识】一体化电机掉电后“位置精准复位“机制与规律

在工业自动化、机器人技术及精密控制领域,电机作为核心执行元件,其稳定运行和精确控制对于整个系统的性能至关重要。 然而,电机在运行过程中可能会遭遇突然断电的情况,这会导致电机失去驱动力并停止在当前位置,甚至在…

基于YOLOv10的垃圾检测系统

基于YOLOv10的垃圾检测系统 (价格90) 包含 [CardBoard, Glass, Metal, Paper, Plastic] 5个类 [纸板, 玻璃, 金属, 纸张, 塑料] 通过PYQT构建UI界面,包含图片检测,视频检测,摄像头实时检测。 (该系统可以根据数据训练出的…

Minimax-秋招正式批-面经(计网)

6. websocket和http区别 websocket知识点总结_防火墙 websocket-CSDN博客 相同点 都是基于TCP协议,都是可靠性传输协议都是应用层协议 不同点 HTTP 类型: 请求-响应式的无状态协议,半双工通信,同一时刻只能一个方向上有动作通…

变阻箱和负载箱的区别

变阻箱和负载箱是两种常见的电力设备,它们在电力系统中起着重要的作用。虽然它们都是用来调节电流的,但是它们的工作原理和用途有很大的区别。 首先,我们来看看变阻箱。变阻箱是一种可以改变电阻值的设备,它的主要作用是调节电流…

el-table使用type=“expand”根据数据条件隐藏展开按钮

一&#xff1a;添加className <el-table :data"tableData" border :loading"loading" :row-class-name"getRowClass" expand-change"expandchange"><el-table-column type"expand"><template #default"…

基于51单片机的智能小车转向控制系统设计与实现

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…