敏感PDF不想上传陌生网站?我把Stirling-PDF装进NAS自己处理

敏感PDF不想上传陌生网站?我把Stirling-PDF装进NAS自己处理

前言

合同、身份证、财务文件这种PDF,我越来越不愿意随手丢进一个刚从搜索结果里找到的网站。

不是因为可以证明那些网站一定会"偷存文件",而是因为我根本不知道对方后台到底怎么处理、保存多久、谁能访问。对普通资料可能无所谓,但敏感文件我更希望处理环境在自己手里。

所以这次我把Stirling-PDF装进了NAS。

合并、转换、加水印、裁剪都在自己的Stirling-PDF实例里做,不需要每次换一个在线网站。家里直接走局域网;人在外面真有需求,再通过cpolar连回自己的页面。

下面从Docker Compose开始,把2223端口、本地PDF处理和远程访问这一整条链跑通。

1.这里的"S-PDF"到底是什么?

先把一个容易误解的地方说清楚:S-PDF不是一个正式的软件名,也不是行业标准术语。原稿实际上是用它来指代"Self-hosted PDF"这一类自托管PDF工具,而本文真正部署的软件是Stirling-PDF。

因此下面统一把它写成"自托管PDF工具",并以Stirling-PDF作为实际实现。

自托管的核心优势,是文档提交到你自己的Stirling-PDF实例处理,而不是交给一个陌生的公共PDF网站。它能减少第三方平台接触文件的范围,但并不等于"绝对不会泄露":账号、服务器、公网入口和网络传输仍然需要自己保护。

自托管PDF工具的关键特征

特性 说明
🔒 自己控制处理位置 文件提交到自己的服务器/电脑,而不是公共在线PDF站点。
🛡️ 降低第三方暴露面 公共PDF服务商不参与处理,但仍需保护自己的服务器、账号和公网入口。
✅ 功能完整 支持合并、拆分、压缩、加密、OCR、格式转换等常见PDF操作。
📚 开源可审计 通常基于如 PDFtk、qpdf、LibreOffice、Tesseract 等成熟开源库构建,代码透明。
🌐 私有Web 界面 提供类似在线工具的图形界面(如网页),但仅限内网或授权用户访问。

对比:在线PDF工具vs. 自建S-PDF

项目 在线PDF工具(如 Smallpdf、iLovePDF) 自建S-PDF
数据流向 上传 → 第三方服务器 → 处理 → 下载 上传 → 你的服务器 → 处理 → 下载
隐私保障 取决于具体服务商的隐私政策与实现 处理环境由自己控制,可减少对公共第三方的依赖
网络要求 必须联网 可完全离线运行
成本 取决于具体第三方服务规则 软件可自托管,仍需自己的设备、电力和维护成本
安全性 取决于具体服务商和部署 可自行配置认证、网络、日志与访问控制

对合同、证件、财务资料等不希望提交到陌生第三方网站的文件,自托管方案更值得考虑;但涉及正式合规要求时,还需要结合组织自己的安全、审计和数据管理制度。

常见的自托管/本地PDF工具

虽然没有统一叫 "S-PDF" 的软件,但以下项目可作为自建安全PDF工具的基础:

  • PDF Arranger

    轻量级桌面工具(Linux/Windows),支持合并、拆分、旋转。

  • Stirling-PDF(最接近"S-PDF"概念)

    功能强大的 自托管Web PDF工具箱,支持50+ 操作,Docker一键部署,界面媲美商业在线工具。

  • PDFsam Basic

    开源桌面应用,专注分割与合并。

  • 基于LibreOffice + OCR的自建脚本

    适合集成到企业内部系统。

本文选择Stirling-PDF,是因为它提供Web界面、Docker部署和较完整的PDF处理功能。

本文后续统一使用软件真实名称:Stirling-PDF。

自托管强调的是处理环境由自己控制,不代表文件天然"无痕"或系统天然安全。

如果经常处理敏感PDF,又不希望每次都上传到陌生网站,自托管Stirling-PDF是一条更可控的路线。

2.部署前准备

2.1 通过SSH连接极空间

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:
shell 复制代码
ssh root@IP

没有ssh的小伙伴可以参考这篇文章:

连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! - cpolar 极点云官网

2.2 确认Docker环境

先确认Docker可用:

shell 复制代码
docker -v 
systemctl status -v

没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! - cpolar 极点云官网

3.使用Docker Compose部署Stirling-PDF

本文使用Docker Compose部署Stirling-PDF。

2026版本说明 :原稿使用frooodle/s-pdf:latest,当前官方Docker文档已经改为docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest。当前标准镜像默认启用登录,并建议挂载/configs目录做持久化。下面的Compose已按当前官方方式更新。

可以先再次确认Docker版本:

shell 复制代码
docker --version

创建单独的部署目录并进入:

shell 复制代码
mkdir -p /docker/stirling-pdf
cd /docker/stirling-pdf

然后创建并编辑docker-compose.yml:

shell 复制代码
vi docker-compose.yml
yaml 复制代码
services:
  stirling-pdf:
    image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    ports:
      - '2223:8080'
    volumes:
      - ./stirling-data:/configs
      - ./logs:/logs
      - ./tessdata:/usr/share/tessdata
    restart: unless-stopped

保存后启动容器:

shell 复制代码
docker-compose up -d

部署完成后,在浏览器访问http://极空间IP:2223即可进入Stirling-PDF:

4.初始化并测试Stirling-PDF

当前标准Docker镜像默认启用登录。首次登录使用默认账号admin、密码stirling:

默认密码只用于首次初始化,登录后应立即修改。公网开放前务必确认登录认证仍然开启。

首次登录后会要求修改默认密码,建议立即设置独立强密码。

修改后重新登录。

完成首次初始化后即可进入工具页面。

原稿先测试了文件转换为PDF。

Stirling-PDF还提供多种PDF处理和编辑工具。

原稿继续测试了添加水印。

还可以裁剪PDF页面。

如果只在局域网内使用,到这里已经够了。如果还希望手机或异地电脑访问,就需要额外配置远程入口。

原稿使用cpolar把Stirling-PDF的2223端口映射到公网。

远程访问意味着服务会从局域网扩展到公网,因此重点不只是"能不能打开",还包括HTTPS、登录认证和账号安全。

本文继续使用cpolar提供公网入口:

  • 把本地Stirling-PDF Web服务映射到公网地址;

  • 可通过HTTPS公网入口访问,无需自行配置路由器端口转发;

  • 可按需配置固定域名等功能;

  • Stirling-PDF自身登录认证仍然要保留。

    bash 复制代码
    cpolar http 2223  # 本文宿主机端口为 2223

5.安装cpolar,让Stirling-PDF支持远程访问

5.1 cpolar在这里负责什么?

本文使用cpolar把本机2223端口上的Stirling-PDF映射到公网,方便从外部浏览器访问。

5.2 安装cpolar

执行安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后检查cpolar服务状态:

shell 复制代码
sudo systemctl status cpolar

cpolar启动后,通过IP:9200进入Web管理界面并登录账号:

登录后即可创建和管理隧道。

6.把Stirling-PDF的2223端口映射到公网

进入"隧道管理 → 创建隧道":

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

创建完成后,在"在线隧道列表"中查看公网地址,再用手机流量或其他网络环境测试访问。

如果能够正常进入Stirling-PDF登录页面,说明公网访问已经打通。

公网安全提醒:自托管能减少把文件交给公共第三方PDF网站的需要,但一旦把自己的Stirling-PDF开放到公网,安全责任也转移到了自己手里。至少要保留登录认证、使用强密码和HTTPS,不要把默认账号密码长期保留。

7.长期使用时再配置固定二级子域名

如果准备长期远程使用,可以继续配置固定二级子域名。

进入"预留",选择保留二级子域名,地区按原稿选择China Top,名称可以自定义。原稿示例使用s-pdf。

随后回到"隧道管理 → 隧道列表",找到前面创建的Stirling-PDF隧道并点击编辑。

把刚刚保留成功的二级子域名配置到当前隧道:

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

点击更新

更新后重新打开"在线隧道列表",确认随机地址已经切换为固定二级子域名。

最后从外部设备测试固定地址。如果仍然能够进入Stirling-PDF并正常登录,就说明固定公网入口已经配置完成。

总结

改完这套以后,我最满意的不是"终于有个免费的PDF工具",而是以后碰到敏感文件时,不需要临时找一个完全不了解的网站。

Stirling-PDF跑在自己的NAS里,合并、转换、水印、裁剪都从浏览器完成。家里直接访问2223;真要在外面处理,再通过固定公网入口连回来。

但这并不代表自建以后就可以什么都不管。公网访问一开,默认密码、登录认证、HTTPS和服务器本身的安全都变成自己的责任。

所以这篇更合适的结论不是"自建才是真安全",而是:如果你更在意文件交给谁处理,自托管给了你更多控制权。

相关推荐
liuchangng1 小时前
React 19 + Vite 6 实战:从教材 PDF 到 866 词间隔重复单词 App
前端·react.js·pdf·vite·开源项目
指针向南21 小时前
PDF 转 HTML 免费5种方法,体积0.5%到368%
图像处理·人工智能·计算机视觉·pdf
工具派2 天前
PDF签名贴上去为什么发虚?尺寸、DPI与坐标的边界实测
java·python·pdf
DFT计算杂谈2 天前
GSAS-II X 射线衍射(XRD)数据转换为对分布函数(PDF,Pair Distribution Function)
算法·机器学习·pdf
五花马印务2 天前
个人技术文集 / 专著印前文件规范:PDF 导出、字体嵌入、出血与色彩管理
pdf·职称评审·个人出书
wuyk5553 天前
PyQt6-第10讲-PDF工具箱
python·microsoft·pdf·pyqt
开开心心就好3 天前
免安装PDF盖章工具,透明度和位置可调
运维·服务器·前端·javascript·pdf·ocr·1024程序员节
惠惠软件4 天前
PDF加盖骑缝章标注工具,PDF 文档上批量添加骑缝章或盖章的小工具
数据库·pdf·办公文件
一枕槐安4874 天前
多模态RAG实战:PDF图文混合文档检索问答本地跑通
langchain·pdf·milvus·ai应用开发·多模态rag