告别第三方分享站!部署 PicoShare,搭建私有短链文件分发服务

PicoShare自托管实战:搭建私有短链文件分享服务,搭配cpolar外网访问

前言

日常工作里,我们总会遇到临时传文件的场景。不管是几十上百兆的文档压缩包,还是截图、设计素材,想要快速发给同事或者外部伙伴,很多人第一反应就是找第三方文件分享网站。

可实际用下来,糟心事却不少:下载限速、满屏广告,文件没过几天就自动失效。如果上传的是商业资料、个人隐私文件,数据全部托管在别人的服务器上,信息泄露的风险就悬在头顶,心里始终不踏实。

那有没有办法把文件牢牢握在自己手里?PicoShare就是这样一款轻量开源的自托管文件分享工具。它不需要部署复杂的数据库,上手部署门槛很低。上传文件之后,会自动生成简短的分享链接,还能自定义文件过期时间。所有上传的资料全部保存在我们自己的服务器本地,数据由自己全权掌控,不用再依赖第三方平台。

接下来,我们就通过Docker快速把PicoShare部署起来。再搭配cpolar内网穿透,就算服务器没有公网IP,只需一条隧道,就能把内网的文件分享服务暴露到公网。走到哪里都可以生成分享链接,拥有一个属于自己、无广告、不限速、安全可控的私有文件中转站。

image-20260828175726947

1.PicoShare是什么?

PicoShare是GitHub开源轻量自托管临时文件分享项目。简单讲:把文件上传到自建服务,自动生成简短下载链接,接收方无需注册账号,浏览器直接下载文件,全部文件存储在自己服务器本地。

工作原理

Docker容器内部运行PicoShare服务,采用SQLite单文件数据库存储元数据与上传文件;管理员通过管理口令登录后台上传文件,设置过期时间,系统生成公开短链接。访问者打开短链接直接获取文件,无需登录后台。所有数据保存在自身服务器磁盘,不经过第三方平台。

核心特性

  1. 极简权限模型:全局仅一个管理口令,知道密码才可上传、管理文件;拿到分享链接仅允许下载,无法上传修改。
  2. 轻量易部署:单容器运行,不需要额外数据库,SQLite单文件存储,低配虚拟机、NAS均可流畅运行。
  3. 文件自动过期:上传时可自定义文件有效期,到期自动删除文件,防止磁盘占满。
  4. 无广告不限速:没有强制压缩、没有广告,大文件也可以直接分发。
  5. 数据自主可控:文件全部保存在自己服务器,敏感资料不用交给第三方网盘。

典型使用场景

  • ✅ 工作临时分发文档、压缩包,摆脱第三方网盘限速
  • ✅ 内网环境快速互传文件,局域网IP端口直接访问
  • ✅ 敏感资料临时对外分享,文件到期自动销毁
  • ✅ 小团队内部临时文件中转站,无需注册账号
  • ✅ 搭配cpolar内网穿透,随时随地公网访问私有文件分享服务

2.安装前提条件

2.1ssh远程连接到飞牛

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:

在设置—>SSH中开启SSH服务:

463c5f2aa280d7887420494b8b8f852e

27abe7f94baeaebc1738b60b1ba78933

e16c7480a399e50f627439329422c5a7

2.2验证docker是否开启

使用命令:

docker -v 
systemctl status -v

也可以直接在飞牛主页查看(其他机器也是这样的哦~)

bc2a0952beed8ca143a171bb000b2b23

3.部署PicoShare

docker一键部署

使用 docker命令后台启动PicoShare网页监控容器,映射宿主机4001端口,使用命名卷持久化监控数据,并设置开机自动重启:

docker run \
  --env "PORT=4001" \
  --env "PS_SHARED_SECRET=somesecretpass" \
  --publish 4001:4001/tcp \
  --volume "${PWD}/data:/data" \
  --name picoshare \
  mtlynch/picoshare

c7bf404a5bbf5f440d714de7540210c2

验证docker状态:

docker ps

image-20260828172553116

compose版本

vi docker-compose.yml
version: "3.8"

services:
  picoshare:
    image: mtlynch/picoshare:latest
    container_name: picoshare
    environment:
      - PORT=4001
      # 修改为你自己的强密码,不要使用示例密码
      - PS_SHARED_SECRET=somesecretpass
    ports:
      - "4001:4001/tcp"
    volumes:
      # 数据持久化,存放数据库与上传文件
      - ./data:/data
    restart: unless-stopped

启动:

docker-compose up -d

部署完成后,在浏览器中输入 http://极空间IP:4001 就能看到PicoShare的界面:

53c067bd7e6a706ca0e7a3b451a6a606

4.PicoShare的基础操作

第一次要使用密码登录,点击右上角开始登录:

09c663ea7824fb5ebe708bc0411d5cda

输入登录密码,

275ae367f3014cb9a451b7b90701ddcf

PicoShare登录后的上传页面,界面清爽简洁,顶部提供Upload、Files、Guest Links导航菜单,支持选择本地文件上传,也可以直接粘贴文本内容;可通过下拉框设置文件过期销毁时间,还能填写仅管理员可见的备注信息,上传完成后即可生成对外分发的简短下载链接。

0e5293d2c2597459bd0bfa0598d7484a

PicoShare的上传操作页面,红框分别标注了选择一个文件……上传按钮以及过期时间下拉框,可选取待上传文件,设置文件30天的自动过期时长,还支持填写仅管理员可见的备注信息,配置完成后即可执行文件上传。

文件上传完成后页面提示 “上传完成!”,页面生成两类访问链接,上方为完整链接,包含文件名;下方是精简短链,两种链接均可直接发给他人,对方无需登录,浏览器打开即可下载文件;

ef135fb5248b001b70d504bc2656677c

可以上传不同格式:

e7e41580b751dd3c10e20c5094e28cbd

50171c752dd0dbcc13d9448529ae46af

PicoShare的Files文件管理页面,表格集中展示全部已上传文件,包含文件名、备注、文件大小、上传时间、过期时间,每条文件右侧可查看详情、编辑、复制分享链接,方便统一管理所有上传资源。

248d0eaeccb4d682a6219182108b17a3

部署好PicoShare之后,借助cpolar内网穿透,无需公网IP,即可把本地4001端口暴露到公网环境,生成公网访问地址,在外网环境也能登录PicoShare后台上传文件、生成分享链接,将文件链接直接发给外部人员访问下载,轻松实现跨网络的文件分发。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

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

image-20250725104019896

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

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

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

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

6.配置公网地址

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

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

image-20260828175243110

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

image-20260828175302708

访问成功。

image-20260828175420962

7.保留固定公网地址

使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

image-20250918151358733

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

image-20260828175514587

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

image-20260828175544398

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

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

点击更新

image-20260828175605302

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

image-20260828175622837

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

image-20260828175638598

总结

PicoShare是一款轻量自托管文件与文本分享工具,可本地部署实现私有文件分发,支持文件上传、粘贴文本、自定义过期时间、生成完整链接与精简短链,能够集中管理全部上传资源。通过docker‑compose可以快速完成服务部署,配置后台访问密码并做好数据持久化;

结合cpolar内网穿透,在没有公网IP的条件下即可将本地服务暴露至公网,随时随地访问PicoShare,生成对外分享链接,实现跨网络的私有文件传输,打造属于自己的文件短链分享服务。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章