当前位置: 首页 > news >正文

无需公网IP的文件交互:FileCodeBox容器化部署技术解析

文章目录

    • 前言
    • 1.Docker部署
    • 2.简单使用演示
    • 3. 安装cpolar内网穿透
    • 4. 配置公网地址
    • 5. 配置固定公网地址

前言

在数字化办公需求日益增长的今天,文件传输已成为职场协作的高频刚需。传统共享方式却饱受诟病:"需要安装哪些臃肿客户端?免费版本的传输速度慢得令人抓狂!反复弹出的广告让人怀疑软件安全性!"今天,我将带您了解一款颠覆性文件交互方案——FileCodeBox(智能文件中转站)。

这款开源文件传输平台以极简交互设计和军工级安全防护为核心,重新定义了数据交互标准。其最大的技术亮点在于创新性的部署模式:无需公网IP或云端服务器,通过Docker容器技术即可完成系统部署,结合cpolar内网穿透工具即可实现跨地域访问。现在让我们以Ubuntu操作系统为载体,逐步揭开这个智能文件传输系统的部署奥秘。1737426223403

【视频教程】

1分钟搭建个人文件快递柜

1.Docker部署

本例使用Ubuntu 22.04进行演示,使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

安装好Docker后,打开终端执行这行命令即可一键安装:

sudo docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta

若国内用户无法安装可以暂时使用下面命令:

sudo docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox dc.065065.xyz/lanol/filecodebox:beta

image-20250121103301733

2.简单使用演示

容器启动后,我们在Ubuntu中使用浏览器访问 http://localhost:12345 即可打开FileCodeBox的前端Web页面:

image-20250121103452720

而后端地址是:/#/admin

后台密码:FileCodeBox2023,登录后台后可以修改。

image-20250121103645723

image-20250121103707850

在管理后台,我们还可以对存储方式,上传间隔时间,文件大小,保存时间,错误限制等设置进行修改:

image-20250121103746661

我这里简单修改了一下文件大小限制为500M,修改后点击保存设置即可。

image-20250121104136410

此时,我们回到前端界面,点击发送文件:

image-20250121104036898

可以看到文件限制大小更改为了500M,默认为10M:

image-20250121104227563

上传一张照片或其他文件后,点击安全寄送,可以看到右上角有提示上传成功与取件码提示:

image-20250121104327641

如果提示消失过快,也可以点击右侧发件记录中文件右侧的眼睛图标,查看相关信息:

image-20250121104500823

image-20250121104541861

点击眼睛图标左侧的标志,可以复制这个分享文件的链接,在局域网内发给其他人后,使用取件码即可下载文件:

image-20250121104729395

3. 安装cpolar内网穿透

不过我们目前只能在本地局域网内访问刚刚部署的FileCodeBox来分享与下载文件,如果想不在同一局域网内时,也能在外部网络环境使用手机、平板、电脑等设备远程访问与使用它,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现远程访问的需求。无需公网IP,也不用准备云服务器那么麻烦。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

4. 配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: FileCodeBox,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:12345
  • 域名类型:随机域名
  • 地区:选择China Top

点击创建:

image-20250121105651112

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。

image-20250121110634116

如图所示,现在就已经成功实现使用公网地址异地远程访问本地部署的FileCodeBox来分享与下载文件啦!

image-20250121110814017

如果需要使用这个公网地址登录后台,也是在#后添加/admin,输入后台密码即可:

image-20250121111035875

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用FileCodeBox,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

5. 配置固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是myfilebox,大家可以自定义。填写备注信息,点击保留。

image-20250121111512260
保留成功后复制保留的二级子域名地址:
image-20250121111533030

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道FileCodeBox,点击右侧的编辑

image-20250121111657822

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250121111751249

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250121111910917

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的FileCodeBox页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250121112035175

了解更多项目详情大家可以访问作者github主页进行查看:https://github.com/vastsa/FileCodeBox

本教程完整演示了如何在Ubuntu系统中,通过容器化部署与内网穿透技术构建自主可控的文件传输系统。这种突破传统部署范式的实践,不仅简化了网络配置复杂度,更验证了开源技术在安全性和灵活性方面的双重优势。当处理敏感文档或进行远程协作时,该方案能有效规避第三方平台的潜在风险,同时保障传输过程的端到端加密。对于开发者而言,FileCodeBox的模块化架构仍有许多可拓展的创新方向,欢迎在评论区分享您的应用场景。如需进一步探讨技术细节或获取定制化配置建议,请随时在技术社区发起讨论。您的每一个反馈都将助力开源生态持续优化。

http://www.dtcms.com/a/269168.html

相关文章:

  • AI编程才刚起步,对成熟的软件工程师并未带来质变
  • Java 内存分析工具 Arthas
  • Cookie的HttpOnly属性:作用、配置与前后端分工
  • 用U盘启动制作centos系统最常见报错,系统卡住无法继续问题(手把手)
  • 用于构建多模态情绪识别与推理(MERR)数据集的自动化工具
  • 2025年全国青少年信息素养大赛图形化(Scratch)编程小学高年级组初赛样题答案+解析
  • 【Netty高级】Netty的技术内幕
  • 设计模式—专栏简介
  • Baumer工业相机堡盟工业相机如何通过DeepOCR模型识别判断数值和字符串的范围和相似度(C#)
  • Spring AOP 设计解密:代理对象生成、拦截器链调度与注解适配全流程源码解析
  • 學習網頁製作
  • 应用俄文OCR技术,为跨语言交流与数字化管理提供更强大的支持
  • 【前端UI】【ShadCN UI】一个干净、语义化、可拓展、完全可控的“代码级组件模板库”
  • 选择排序算法详解(含Python实现)
  • python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
  • 指尖上的魔法:优雅高效的Linux命令手册
  • GitHub 趋势日报 (2025年07月06日)
  • PyTorch 详细安装教程及核心API使用指南
  • Chatbox➕知识库➕Mcp = 机器学习私人语音助手
  • 分层Agent
  • turborepo 如何解决git管理包过大的问题
  • 二、Docker安装部署教程
  • 20250707-4-Kubernetes 集群部署、配置和验证-kubeconfig_笔记
  • 人工智能赋能极端气候事件管理:重构风险预警与应急响应体系
  • 汽车功能安全系统阶段开发【技术安全需求TSR】4
  • 多维度数据资产测绘技术在安全管控平台中的应用实践
  • RKAndroid11-系统设置新增开关选项
  • 1. http 有哪些版本,你是用的哪个版本,怎么查看
  • 构建分布式高防架构实现业务零中断
  • 2025最新如何解决VSCode远程连接开发机失败/解决方案大全