实现不同局域网文件共享的解决方案:使用Python自带HTTP服务和端口映射

2023-11-05

1. 前言

数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用,对于个人用户也有很强的实用意义。也正因如此,大量数据共享软件被开发出来,云存储的概念也被重复炒作。对于爱好折腾的笔者来说,用最简单的工具找寻私人共享和存储解决方案,也是件很有趣的事。今天,笔者就为大家介绍,如何使用python这样的简单程序语言,在自己的电脑上搭建一个共享文件服务器,并通过cpolar创建的数据隧道,将其变为能在公共互联网上访问的私人云盘。

2. 本地文件服务器搭建

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

2.1 python的安装和设置

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

20230322092201

20230322092202

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

20230322092203

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

20230322092204

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

20230322092205

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

20230322092206

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

20230322092207

接着输入命令行转入E盘

e:

在进入打算共享的文件夹

cd server

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

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

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

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

20230322092208

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

20230322092209

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

2.2 cpolar的安装和注册

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

20230322092210

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

20230322092211

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

20230322092212

20230322092213

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

20230322092214

20230322092215

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

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

3.1 Cpolar云端设置

由于分享文件的需求可能随时发生,而笔者又不想每次要分享文件是就设置一次数据隧道,所以笔者将cpolar升级至vip版,以便保留能长期稳定存在的数据隧道(免费版cpolar创建的数据隧道每24小时会重置一次)。

升级cpolar至vip后,我们首先登录cpolar云端,在客户主界面左侧找到预留按钮,点击进入预留页面。

20230322092216

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

20230322092217

设置的信息内容为:

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

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

20230322092218

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

20230322092219

3.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

4. 公网访问测试

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

20230322092223

5. 结语

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现不同局域网文件共享的解决方案:使用Python自带HTTP服务和端口映射 的相关文章

随机推荐

  • MyISAM 和 InnoDB 讲解

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型 这两个表类型各有优劣 视具体应用而定 基本的差别为 MyISAM类型不支持事务处理等高级处理 而InnoDB类型支持 MyISAM
  • 请求转发和重定向区别

    一 转发和重定向区别详解 作为一名程序员 特别是java web开发的程序员 在使用servlet jsp的时候 我们必须要知道实现页面跳转的两种方式的区别和联系 即转发和重定向的区别 RequestDispatcher forward方法
  • openGLES3.0基本概念

    前言 学习openGL已经有一段时间了 断断续续大概2年左右 发现有些概念还是没有搞清楚 下面记录一下 有空的时候时不时的回顾一下 免得忘记 哎 上年纪了 记性越来越差了 openGLES着色语言 1 version 300 es 声明着色
  • 操作系统是如何启动起来的呢

    https mp weixin qq com s QE9OxBjoIyYjpNVt kXfMw
  • Java基础:Stack基本操作

    StackDemo java import java util Stack public class StackDemo public void showpush Stack
  • 【华为OD机试】计算误码率 (C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • 前端图片处理(一) --- Cropper.js

    Cropper js 介绍 一个纯 JavaScript 的图片裁剪操作插件库 并且是支持移动端的 安装 npm install cropperjs 引入 Cropper 对象 样式 import cropperjs dist croppe
  • linux基线检查

    bin bash version v1 0 by pensar 操作系统linux 配置规范 centos7 mkdir tmp check str1 sbin ifconfig a grep inet grep v 127 0 0 1 g
  • 数据分布图-python 高斯分布三维等高线图像

    创作不易 转载请注明出处 论文的画图的时候 发现别人的图很好看 大概长这样 折腾了半天发现可以用高斯分布模拟 可以设置rv1 rv2 rv3来控制生成的峰的个数 然后根据调整rv的mu和var来控制生成图像的形状 rvs rv rv1 rv
  • C语言基础;求和及平均值

    3 输入三个实数 求出这三个数的和以及平均值 include
  • unity-内存GC

    Unity内存 原生内存 Native Memory 和托管内存 Managed Memory 其中Native Memory大家接触的会比较少 而且可操控性也比较少 例如AssetBundle Texture Audio这些所占的内存 这
  • Qt解决中文显示乱码问题

    我相信所有用过Qt都遇到过中文乱码问题 下面列出了我经常用的几种解决方法 方法一 include QtUtf8 h include
  • 【最新】M1 Mac如何安装Python(miniforge)并搭建环境

    B站主页 https space bilibili com 1707990930 欢迎 点赞 收藏 评论 如有错误请指正 Python Java领域博主 你们的支持是我最大的动力 嗨 我是爱丽 在这篇文章中 我将告诉你如何在你的M1 Mac
  • 支持向量机和感知机的区别

    支持向量机和感知机的区别 支持向量机和感知机都是通过一个超平面来划分样本实例类别 但是不同的是支持向量机在特征向量中能够找出非线性的超平面 支持向量机找出来的超平面是最优的 且只有一个 而感知机通过误分类点定义出的代价函数找到的超平面 是不
  • 初探STM32F4(3)--WIFI模块(1)

    WIFI WIFI测试的代码架构剖析 步骤1 wifi模块的主函数流程 步骤2 剖析atk 8266 send cmd 函数 步骤3 剖析atk 8266 wifista test 函数 步骤4 剖析如何配置成TCP客户端 步骤5 作为客户
  • js常见的属性和方法总结

    js常见的属性和方法 1 JS全局属性和方法 1 1全局属性 1 2全局方法 2 布尔对象 3 Number对象 3 1Number的属性 3 2Number的方法 4 字符串对象 4 1字符串的属性 4 2字符串的方法 5 数组对象 5
  • Python 在 conda 中安装了包,但是 pycharm 中无法引用的问题解决

    一 进入 PyCharm 的设置 二 找到 Interpreter 选项 三 进入 Show All 四 点击 五 选择 Conda 里面所对应的环境即可
  • 利用gganimate可视化R-Ladies发展情况

    作者简介Introduction taoyan R语言中文社区特约作家 伪码农 R语言爱好者 爱开源 个人博客 https ytlogos github io 公众号 生信大讲堂 往期回顾 ggplot2学习笔记系列之主题 theme 设置
  • Vue 解决跨域问题

    Vue 解决跨域问题 通常在不同服务器访问过程中可能会遇到跨域问题 也就是口头上常说的策略同源问题 CORS 出现跨越一般就是判断三个地方 http协议 请求地址 端口号 三者若有一处不相同 那么就会出现跨域 解决这个问题就要配置一个代理服
  • 实现不同局域网文件共享的解决方案:使用Python自带HTTP服务和端口映射

    文章目录 1 前言 2 本地文件服务器搭建 2 1 python的安装和设置 2 2 cpolar的安装和注册 3 本地文件服务器的发布 3 1 Cpolar云端设置 3 2 Cpolar本地设置 4 公网访问测试 5 结语 1 前言 数据