你是否在家里或办公室里放着一台性能尚可、但只有 USB 接口的老打印机?当你尝试用手机、平板或不同系统的电脑打印文件时,往往会被繁琐的驱动安装、复杂的共享设置以及不稳定的网络发现搞得心烦。如果能把这台 USB 打印机直接变成网络打印机,且无需每台终端都配置驱动,体验会好很多。
CUPS Web 正是为了解决这个痛点而生的开源网页打印管理工具。它基于 CUPS 构建,通过在局域网内搭建一个简单的网页入口,让用户只需通过浏览器上传文件并选择打印机,即可将任务提交至打印队列。
简单来说,你可以利用 NAS、树莓派或闲置的小主机作为服务端,接管打印机并运行 CUPS Web。这样一来,局域网内的任何设备只要能上网,就能直接打印 PDF、照片、Word 甚至 OFD 文件,而无需安装任何客户端软件。
需要明确的是,CUPS Web 并非赋予了打印机“智能”硬件能力,其底层依然依赖 CUPS 和相应的打印驱动。它的核心价值在于 将驱动兼容性、格式转换和队列管理集中在服务端,从而解放终端设备。
对比传统共享:CUPS Web 的优势在哪里?
Linux 自带的 CUPS 虽然有管理界面,但那是为系统管理员设计的,界面硬核且配置复杂,不适合普通用户。CUPS Web 则提供了一个面向“最终使用者”的直观界面,精准解决了国内办公的几个痛点:
- 零配置终端: 手机或平板无需安装驱动,打开浏览器即可提交任务。
- 强大的格式转换: 内置 LibreOffice 解析 Word 文档,并支持国内特有的 OFD 格式。这意味着你在手机上收到一个文件,无需经过电脑中转,直接上传即可打印。
- 便捷的预览与处理: 支持多图合并为 PDF、打印前实时预览及页数估算,对于打印票据、截图等碎片化场景非常实用。
核心挑战:驱动兼容性
很多用户在部署 Docker 时容易产生误区,认为只要容器跑起来就能打印。事实上,CUPS Web 的 Web 界面只是“壳”,真正的关键在于宿主机能否认出打印机。
快速部署指南(Docker Compose)
对于 NAS 用户,使用 Docker Compose 是最高效的部署方案。它可以一次性拉起 CUPS 服务端与 Web 界面:
services:
cups:
image: hanxi/cups:latest
user: root
environment:
- CUPSADMIN=${CUPSADMIN}
- CUPSPASSWORD=${CUPSPASSWORD}
ports:
- "631:631"
devices:
- /dev/bus/usb:/dev/bus/usb
volumes:
- ./.etc:/etc/cups
restart: unless-stopped
web:
image: hanxi/cups-web:latest
user: root
environment:
- CUPS_HOST=cups:631
volumes:
- ./.data:/data
- ./.uploads:/uploads
ports:
- "1180:8080"
depends_on:
- cups
restart: unless-stopped
操作步骤: 在同目录下创建 .env 文件,定义 CUPSADMIN=admin 及相应密码,随后执行 docker-compose up -d 即可启动。
部署避坑与注意事项
关键细节 checklist:
- 开启共享: 在 CUPS 后台添加打印机后,必须将状态设为 Shared(共享),否则 Web 端无法识别。
- 及时改密: 默认账号
admin/admin风险较高,首次登录请立即修改。 - OFD 环境: Docker 镜像已内置环境;若采用二进制部署,需单独配置 Java 17 才能支持 OFD 转换。
- 磁盘清理: 服务端会存储上传原件及转换后的 PDF,建议定期清理
/uploads目录。
安全警示:严禁公网裸奔
由于打印任务往往涉及合同、发票、证件等敏感隐私文件,且 CUPS Web 默认使用 HTTP 协议,绝对不要将 1180 端口直接映射到公网。
总结:谁适合用这个方案?
适用场景: 拥有 NAS、树莓派或闲置小主机,且希望为小工作室或家庭构建一个轻量化打印中心的场景。它能有效消除“必须打开某台特定电脑才能打印”的尴尬。
不适用场景: 对 Docker 完全陌生、或需要企业级(如刷卡打印、严格审计)管控的用户。在这种情况下,购买一台自带 Wi-Fi 和官方 App 的现代网络打印机会是更经济的选择。
项目资源
免责声明:本文基于 GitHub 公开仓库与文档整理,旨在提供场景选型与部署参考。具体驱动兼容性请以硬件实际情况为准。自托管项目在部署时请务必评估网络安全,严禁将未加密服务暴露于公网。项目商用请遵循 MIT 许可证。





