使用Python本地搭建http.server文件共享服务并实现公网环境远程访问——“cpolar内网穿透”
前言
本文主要介绍如何在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下载)


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

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

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

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

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

接着输入命令行cd E:,转入E盘,在进入打算共享的文件夹
cd server
最后输入命令,执行文件夹的端口输出共享命令。
python -m http.server 9090 (其中端口号可以自选,但必须为未被占用的,可以选择一些偏僻的端口)
命令输入后,可能会出现防火墙询问,我们点击允许访问即可。
需要注意的是,python的共享服务功能很简单也很基础,这里共享的是当前执行命令的文件夹,无法指定某个文件夹,所以我们需要先更换盘符和文件夹,才能执行共享命令。

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

由于python的简单功能,我们不能关闭python的进程,否则就会关闭文件共享端口。
1.2.cpolar的安装和注册
在完成python的文件夹共享设置后,我们就可以安装和注册cpolar,为后面的共享文件发布做好准备。Cpolar的下载地址可以在cpolar的官网:https://www.cpolar.com/ 中找到。

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

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


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


2.本地文件服务器的发布
完成了python的设置,安装并注册好cpolar,剩下的工作简单了,只要使用cpolar建立一条数据隧道,数据隧道的入口为公共互联网地址,出口连接本地的python共享文件网页。
2.1.Cpolar云端设置
由于分享文件的需求可能随时发生,而笔者又不想每次要分享文件是就设置一次数据隧道,所以笔者将cpolar升级至vip版,以便保留能长期稳定存在的数据隧道(免费版cpolar创建的数据隧道每24小时会重置一次)。
升级cpolar至vip后,我们首先登录cpolar云端,在客户主界面左侧找到预留按钮,点击进入预留页面。

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

设置的信息内容为:
地区:服务器所在区域,就近选择即可二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可
完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

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

2.2.Cpolar本地设置
完成cpolar云端的数据隧道入口保留后,我们回到cpolar本地客户端,将cpolar云端生成的数据隧道入口与本地python网页连接起来。
首先登录cpolar客户端,(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式),点击客户端主界面左侧隧道管理——创建隧道按钮,进入本地隧道创建页面(如果要创建每24小时重置地址的临时数据隧道,可直接在此进行设置,不必在cpolar官网设置空白数据隧道)。
在这个页面,同样需要进行几项信息设置,这些信息设置包括:
隧道名称:可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可协议:由于python的共享是是网页形式,因此选择http协议本地地址:本地地址即为本地网站的输出端口号,之前我们将python的输出端口设定在9090,因此这里也填入9090域名类型:在这个例子中,我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选二级子域名(如果预留的是自定义域名,则勾选自定义域名),并在下一行Sub Domain栏中填入预留的二级子域名,该例子中为“pythontest”。如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址地区:与cpolar云端预留的信息一样,我们依照实际使用地填写即可

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

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

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

4.结语
至此,我们成功使用cpolar内网穿透发布了python的文件分享网页,虽然这个python文件分享网页过于简单,功能也很简陋,但能够很好的展示,网页(或软件)输出端口与cpolar数据隧道端口设定之间的关系,即网页(或软件)的输出端口,一定要与cpolar数据隧道填入的端口一致,才能准确的连接起公共互联网地址和本地网页(或软件)。
相关文章:
使用Python本地搭建http.server文件共享服务并实现公网环境远程访问——“cpolar内网穿透”
前言 本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言,在自己的电脑上搭建一个共享文件服务器,并通过cpolar创建的公网地址,打造一个可以随时随地远程访问的私人云盘。 数据共享作为和连接作为互联网的基础应用ÿ…...
STM32——Flash闪存
以上部分,主存储器:程序存储器; 启动程序代码:系统存储器; 用户选择字节:选项字节 以下是闪存的管理员,用于擦除和读写的地址 C8T6一共64K,主存储器为64页 以下是整体框图&#x…...
python科学计算:NumPy 数组的高级操作
1 数组的形状变换 NumPy 提供了多种方法来改变数组的形状。这些方法不会改变数组的内容,而是重新组织数据的排列方式。 1.1 reshape() 函数 reshape() 是最常用的形状变换函数,它可以改变数组的形状,前提是变换后的总元素数量与原数组一致…...
【补-网络安全】日常运维(二)终端端口占用排查
文章目录 一、利用ipconfig、netstat 命令行统计二 、策略封禁IP 引言:检查频繁,第一步我们梳理完资产,第二步应该对资产终端进行一个排查,诊断把脉,了解清楚系统的端口占用及开放情况 一、利用ipconfig、netstat 命令行统计 1.先用ipconfig定位该终端的IP地址 2.明确IP地址后…...
设计模式之适配器模式:软件世界的桥梁建筑师
一、什么是适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式(Structural Pattern),通过将类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。其核心思想是通过一个…...
Java 入门指南:Java 并发编程 —— Fork/Join 框架 实现任务的拆分与合并
Fork/Join Fork/Join 是Java并发编程中的一个框架,用于解决大型任务的并行执行问题。它于 Java 7中引入,旨在简化对多核处理器上可并行执行任务的开发。 Fork/Join 框架基于分治(divide and conquer)的设计思想。它将大型任务划…...
token过期时间分平台(web和app)设置方法
token分平台设置方法 本文介绍了Spring下的登录和鉴权机制的主要方法以及 token认证的主要流程,并介绍在spring中web端和APP端设置不同token过期时间的实现方法。主要基于SpringBootspringSecurityJWT框架实现。 一、应用场景 同一系统的跨平台操作,基于…...
[000-01-008].Seata案例应用
业务说明:这里我们创建三个服务,一个订单服务,一个库存服务,一个账户服务。当用户下单时,会在订单服务中创建一个订单,然后通过远程调用库存服务来扣减下单商品的库存;再通过远程调用账户服务来…...
超详细!!!electron-vite-vue开发桌面应用之创建新窗口以及主进程和子进程的通信监听(十二)
云风网 云风笔记 云风知识库 一、新建打开窗口 1、在electron/main.ts中加入主进程打开窗口逻辑代码 import { ipcMain } from "electron"; ipcMain.handle("open-win", (_, arg) > {const childWindow new BrowserWindow({webPreferences: {preloa…...
java编辑器——IntelliJ IDEA
java编辑器有两种选择——IntelliJ IDEA和VsCode。其中IntelliJ IDEA现在是企业用的比较多的,是专门为java设计的,而VsCode则是通过插件来实现Java编辑的。 1.IntelliJ IDEA 官网下载链接:https://www.jetbrains.com/idea/ 注意选择社区版…...
经验笔记:SSL证书
SSL证书经验笔记 1. 什么是SSL证书? SSL(Secure Sockets Layer)证书是一种数字证书,用于在客户端(如浏览器)和服务器之间建立加密连接,以确保数据传输的安全性。随着互联网的发展,…...
设计模式之装饰器模式:让对象功能扩展更优雅的艺术
一、什么是装饰器模式 装饰器模式(Decorator Pattern)是一种结构型设计模式(Structural Pattern),它允许用户通过一种灵活的方式来动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比使用…...
Anchor Alignment Metric来优化目标检测的标签分配和损失函数。
文章目录 背景假设情况任务和目标TaskAligned方法的应用1. **计算Anchor Alignment Metric**2. **动态样本分配**3. **调整损失函数** 示例总结 背景 假设我们在进行目标检测任务,并且使用了YOLOv8模型。我们希望通过TaskAligned方法来优化Anchor与目标的匹配程度&…...
C++---由优先级队列认识仿函数
文章目录 一、优先级队列是什么? 二、如何使用优先级队列 1、优先级队列容器用法 2、为什么容器本身无序? 三、什么是仿函数? 1. 什么是仿函数? 2. 仿函数的优势 四、仿函数如何使用? 1、重载operator()函数 2、运用第…...
Client访问Server访问慢的原因
1. 网络层面的问题 网络延迟:客户端与服务器之间的地理距离较远(跨ISP、路径次优),导致高网络延迟(如高 RTT 值)。使用 ping 或 traceroute 工具可以帮助定位网络延迟的来源 - mtr: 结合了ping和traceroute功能&#…...
用RPC Performance Inspector 优化你的区块链
目录 什么是RPC? RPC Performance Inspector 是做什么的? 为什么需要这个工具? 如何使用它? 适合谁用? 如何使用? 什么是RPC? RPC Performance Inspector 是一个专门用于测试和分析RPC性能…...
linux如何查看内存条是ddr几代
在 Linux 系统中,可以通过以下几种方法查看内存条的类型和代数(如 DDR3、DDR4 等): 1. 使用 dmidecode 命令 dmidecode 是一个工具,它可以从系统的 DMI 表(也称为 SMBIOS 表)中提取硬件信息&a…...
LeetCode 3153.所有数对中数位差之和:计数
【LetMeFly】3153.所有数对中数位差之和:计数 力扣题目链接:https://leetcode.cn/problems/sum-of-digit-differences-of-all-pairs/ 车尔尼有一个数组 nums ,它只包含 正 整数,所有正整数的数位长度都 相同 。 两个整数的 数位…...
Spring Boot 整合 Sentinel 实现流量控制
在微服务架构中,流量控制是保障系统稳定性和高可用性的关键技术之一。阿里巴巴开源的 Sentinel 是一款面向分布式系统的流量防护组件,旨在从流量控制、熔断降级、系统负载保护等多个维度保障服务的稳定性。本文将详细介绍如何在 Spring Boot 项目中整合 …...
Elasticsearch倒排索引
什么是倒排索引 倒排索引(Inverted Index)是一种将文档中的每个单词映射到包含该单词的文档列表上的数据结构 倒排索引的构建过程 文档1: “我爱吃苹果” 文档2: “我爱吃香蕉” 文档3: “我喜欢苹果和香蕉” 文档分词:将文档中的文本内容…...
LLM API安全攻防实战:从提示词注入到自动化测试方案
1. 项目概述:被忽视的LLM API安全前线最近在帮几个团队做上线前的安全审计,发现一个挺有意思的现象:大家对于传统API的鉴权、限流、SQL注入这些常规检查已经形成了肌肉记忆,但一旦涉及到LLM(大语言模型)的A…...
top50 BF16算力(TFLOPS) 显卡排行榜 天梯图
排名显卡型号BF16算力(TFLOPS)售价(元)单TFLOPS价格(元)1B200(SXM)45002200000488.892H200(SXM)19801200000606.063MI300X1307750000573.834H100 SXM519501100000564.105RTX PRO 6000 Blackwell1150780000678.266H100 PCIe 80GB1560850000544.877RTX 50906803400050.008A100 80…...
环境光遮蔽(Ambient Occlusion):揭秘那个让虚拟世界“有重量感“的阴影魔法
一、一个让我"开窍"的老木匠故事 我有个朋友是传统家具的修复师,他给我讲过一个让我至今难忘的故事。他说他刚入行时跟着一位 70 多岁的老木匠师父学习——师父让他做的第一件事不是雕花、不是榫卯——而是"看阴影"——这个看似奇怪的训练改变了…...
SSH工具对比:新手用户和熟练运维,选型逻辑有什么不同
结论 新手用户和熟练运维在选择 SSH 工具时,关注点往往完全不同。 新手更在意的是:能不能顺利连接、界面是否直观、文件和配置是否容易找到、网站出问题时能不能快速定位。 而熟练运维更在意的是:连接效率、命令自由度、多服务器管理能力、原…...
MBTI性格测试
简介 MBTI(Myers‑Briggs Type Indicator,迈尔斯‑布里格斯类型指标)是基于荣格心理类型理论发展出的性格类型工具,由凯瑟琳库克布里格斯及其女儿伊莎贝尔布里格斯迈尔斯创建。它通过四对偏好维度将个体的认知与行为倾向归纳为 16…...
Python PIL 画矩形框
基础代码 from PIL import Image, ImageDraw# 打开图片 img Image.open(your_image.jpg)# 创建绘图对象 draw ImageDraw.Draw(img)# 矩形坐标 (x1, y1, x2, y2) coords (23, 21, 69, 76)# 画矩形框(红色,线宽2) draw.rectangle(coords, ou…...
百度文心一言开发者如何通过Taotoken低成本接入多模型API
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 百度文心一言开发者如何通过Taotoken低成本接入多模型API 对于已经熟悉并正在使用百度文心一言等国产大模型API的开发者而言&#…...
告别硬编码!在UE5.1里用蓝图动态配置MySQL连接参数(控件蓝图实战)
动态配置MySQL连接:UE5.1控件蓝图的工程化实践在游戏开发中,数据库连接往往是项目架构中不可或缺的一环。传统硬编码方式虽然简单直接,却带来了维护困难、安全性差、灵活性低等一系列问题。本文将深入探讨如何在UE5.1中构建一个完全动态化的M…...
告别SVN恐惧症:美术策划也能轻松上手的Unity PlasticSCM极简入门(附团队项目拉取实战)
告别SVN恐惧症:美术策划也能轻松上手的Unity PlasticSCM极简入门(附团队项目拉取实战) 在游戏开发团队中,版本控制系统是协作的基石,但传统工具如SVN往往让非技术成员望而生畏。当美术资源频繁更新、策划案不断迭代时&…...
企业云盘签章技术方案:从数字签名原理到工程落地
背景 电子签章在企业云盘中的落地,不只是一个"上传盖章图片"的功能实现。本质上,它是一套涉及数字签名、PKI基础设施、文档完整性校验的综合性技术方案。本文从技术选型角度,说清楚企业云盘内置签章需要解决哪些问题、主流实现方案…...
