FEATURED · 精选文章

树莓派+CUPS搭建网络打印服务器:驱动老旧USB打印机实现多设备共享

发布时间 / 2026/8/1 14:18:15
来源 / 创域科博编辑部
栏目 / 资讯中心
树莓派+CUPS搭建网络打印服务器:驱动老旧USB打印机实现多设备共享 1. 项目概述为什么用树莓派做打印服务器几年前我办公室那台老旧的网络打印机彻底罢工了换新设备预算又紧张。看着角落里吃灰的树莓派 3B我琢磨着能不能让它“再就业”。结果一试用树莓派配合 CUPS 搭建的打印服务器不仅让一台老掉牙的 USB 打印机成功联网还顺带解决了家里 Mac、Windows、Linux 多设备共享打印的麻烦。这个方案的核心就是把树莓派变成一个全天候在线的打印中枢任何连接到同一网络的设备都能通过它来使用打印机无论这台打印机本身是否支持网络功能。CUPS全称 Common UNIX Printing System是苹果公司开发并开源的一套打印系统如今已成为类 Unix 系统包括 Linux、macOS上打印服务的事实标准。它的强大之处在于提供了一个跨平台的网络打印协议IPP实现并且自带一个 Web 管理界面让你可以通过浏览器轻松添加、管理和配置打印机。而树莓派凭借其低功耗、24小时运行无压力、接口齐全尤其是 USB以及活跃的社区支持成为了运行 CUPS 的理想硬件平台。这个项目特别适合以下场景家里或小微办公室有一台 USB 接口的普通打印机想让多台电脑、手机都能无线打印手头有一些老旧但墨盒尚存的打印机想赋予其“第二春”或者像我一样喜欢折腾希望有一个完全可控、不依赖厂商云服务的本地打印方案。整个过程不复杂但其中关于驱动、权限和网络配置的细节决定了最终使用的顺畅度。下面我就把从硬件准备到故障排查的完整流程和踩过的坑详细拆解一遍。2. 硬件准备与系统环境搭建2.1 树莓派选型与外围设备清单并不是所有树莓派都适合做打印服务器主要考量点是功耗、接口和性能。对于这个项目我的推荐顺序是Raspberry Pi 3B/3B Raspberry Pi 4 Raspberry Pi Zero 2 W。Raspberry Pi 3B/3B这是最均衡的选择。它们自带4个USB 2.0接口可以直接连接打印机和键盘鼠标初始设置用集成的有线网络和Wi-Fi提供了连接灵活性性能足够运行 CUPS 和轻量级服务。关键是价格合适且存量巨大很多朋友手边都有闲置的。Raspberry Pi 4性能更强USB 3.0接口传输更快但功耗和发热也更高。对于打印服务来说性能过剩除非你计划在这台派上同时运行其他服务如NAS、Home Assistant。Raspberry Pi Zero 2 W极致小巧省电但只有1个 Micro-USB 接口通常需要转接才能连接打印机且需要单独购买或转接网卡。适合对体积和功耗有极致要求且打印机接口兼容的场景。你需要准备的核心外围设备清单树莓派主板一块推荐 Raspberry Pi 3B。存储一张至少 8GB 的 MicroSD 卡Class 10 或以上速度更佳。电源官方 5V/2.5A 电源或同等规格的可靠电源。供电不稳是许多奇怪问题的根源。打印机一台 USB 接口的打印机。这是服务对象。USB 连接线打印机配套的 USB-A to USB-B 方口线常见于老打印机或 USB-A to USB-C/Micro-USB 线。网络连接网线推荐最稳定或可靠的 Wi-Fi 环境。初始设置套件HDMI 线、键盘、鼠标、显示器用于第一次开机配置完成后可移除。注意在连接打印机和树莓派之前最好先单独启动树莓派完成基础系统安装。避免同时连接多个USB设备可能引发的识别问题。2.2 操作系统安装与基础配置我们选择Raspberry Pi OS Lite32位作为基础系统。它是一个无桌面环境的精简版系统资源占用少非常适合服务器角色。如果你不熟悉命令行也可以使用带桌面的版本通过图形界面操作但 Lite 版本更纯粹。安装步骤实录下载与烧录前往树莓派官网下载 Raspberry Pi Imager 工具。启动 Imager选择操作系统Raspberry Pi OS (other) - Raspberry Pi OS Lite (32-bit)。选择你的 MicroSD 卡点击“烧录”。烧录完成后工具可能会提示“烧录成功”。先不要急着拔卡预配置无头启动关键在电脑上重新挂载烧录好的 SD 卡名为boot的分区。在boot分区根目录下新建一个名为ssh的空文件无后缀。这会在树莓派首次启动时自动启用 SSH 服务允许我们远程登录。同样在boot分区新建一个名为wpa_supplicant.conf的文件如果你使用 Wi-Fi内容如下根据你的网络修改ctrl_interfaceDIR/var/run/wpa_supplicant GROUPnetdev update_config1 countryCN network{ ssid你的Wi-Fi名称 psk你的Wi-Fi密码 key_mgmtWPA-PSK }安全弹出 SD 卡插入树莓派连接网线或依赖上一步配置的Wi-Fi和电源启动。首次登录与基础设置树莓派启动需要1-2分钟。你需要知道它的IP地址。可以登录路由器管理界面查看或者使用网络扫描工具如Advanced IP Scanner。假设你查到的IP是192.168.1.100。打开终端Windows 用 PowerShell 或 CMDmacOS/Linux 用系统终端使用 SSH 连接ssh pi192.168.1.100默认密码是raspberry。首次登录会要求修改密码请务必设置一个强密码。执行系统更新这是好习惯sudo apt update sudo apt upgrade -y设置时区可选但推荐sudo raspi-config在菜单中选择Localisation Options - Change Timezone选择你的时区如 Asia/Shanghai。至此一个干净、可远程管理的树莓派基础系统就准备好了。接下来我们将安装并配置核心的打印服务。3. CUPS 服务安装与核心配置详解3.1 安装 CUPS 及相关组件CUPS 在 Raspberry Pi OS 的仓库中可以直接安装。但为了让 CUPS 的 Web 管理界面能被网络中的其他电脑访问并支持更多打印机型号我们需要额外安装一些包。执行以下命令进行安装sudo apt install cups cups-client cups-filters cups-ipp-utils printer-driver-all -ycups打印服务主程序。cups-client提供命令行管理工具如lpadmin,lpstat。cups-filters包含一系列文档格式转换过滤器是打印流程的关键。cups-ipp-utils提供 IPP 协议相关工具。printer-driver-all一个元包会安装大量常见的打印机驱动Gutenprint、Foo2ZJS、HPLIP 等极大提高打印机兼容性。虽然体积不小但为了省去后续找驱动的麻烦强烈建议安装。安装完成后CUPS 服务会自动启动但此时的配置还仅限于本地访问。3.2 配置 CUPS 允许远程管理CUPS 默认只允许从树莓派本机localhost进行管理。我们需要修改其配置文件允许从局域网内的其他计算机访问其 Web 管理界面端口631。编辑 CUPS 主配置文件sudo nano /etc/cups/cupsd.confnano是简单的文本编辑器按CtrlX然后按Y再按Enter保存退出。找到并修改以下几处关键配置监听地址找到Listen localhost:631这一行。在其下方添加一行Listen 0.0.0.0:631让 CUPS 监听所有网络接口。或者你可以将localhost改为树莓派的本机 IP如Listen 192.168.1.100:631这样更安全。访问控制找到Location /、Location /admin和Location /admin/conf这几个节Section。将每个节内部的Allow from localhost修改为Allow from all或者更精确地指定你的局域网网段例如Allow from 192.168.1.0/24。允许远程管理确保在Location /admin节内存在Require user SYSTEM或Require user OWNER SYSTEM。这允许系统用户如pi进行管理。修改后的片段示例# 监听所有网络接口 Listen 0.0.0.0:631 Location / Order allow,deny Allow from all # 或 Allow from 192.168.1.0/24 /Location Location /admin Order allow,deny Allow from all # 或 Allow from 192.168.1.0/24 Require user SYSTEM /Location将你的用户默认为pi添加到lpadmin组以获得管理权限sudo usermod -a -G lpadmin pi重启 CUPS 服务使配置生效sudo systemctl restart cups现在你可以在局域网内任何一台电脑的浏览器中输入http://树莓派IP:631例如http://192.168.1.100:631来访问 CUPS 的 Web 管理界面了。3.3 通过 Web 界面添加打印机这是最直观的配置方式。确保你的打印机 USB 线已连接到树莓派并开机。在电脑浏览器打开 CUPS 管理页面 (http://[树莓派IP]:631)点击顶部导航栏的Administration。在Printers部分点击Add Printer。系统可能会要求你输入用户名和密码。输入树莓派的用户名 (pi) 和密码。在设备列表中你应该能看到你的 USB 打印机通常显示为USB Printer #1或带有打印机型号的描述。选中它点击Continue。为打印机起一个易于识别的名字如Office_HP_LaserJet描述和位置可填可不填。勾选Share This Printer这是实现网络共享的关键。点击Continue。接下来是最关键的一步选择打印机驱动Make/Model。最佳情况CUPS 自动检测到你的打印机型号并列出推荐的驱动。选择一个最匹配的通常以品牌名开头如HP。常见情况列表中没有你的确切型号但有同一系列或品牌的通用驱动。例如对于很多惠普激光打印机选择HP LaserJet Series PCL 6或HP LaserJet Series PostScript通常能工作。棘手情况列表里完全没有你的品牌。这时需要手动寻找 PPD 文件。PPDPostScript Printer Description是描述打印机特性的文件。你可以尝试在 CUPS 提供的列表中选择Raw驱动。这意味着 CUPS 不对打印作业做任何处理直接发送给打印机。这要求打印机自身能处理原始数据如 PostScript 或 PCL对于现代喷墨打印机可能不行。前往打印机厂商官网下载对应 Linux 的驱动包里面通常包含 PPD 文件。然后回到此页面选择Provide PPD File并上传。点击Add Printer。CUPS 会设置打印机并跳转到属性页面。你可以点击Print Test Page来验证打印是否成功。实操心得驱动选择是成功与否的最大变量。如果测试页失败不要慌回到打印机管理页面点击打印机名称进入其属性页在Administration下拉菜单中选择Modify Printer可以重新选择驱动。多尝试几个通用驱动如Generic Text-Only Printer,Generic PostScript Printer有时会有奇效。4. 客户端配置与高级功能设置4.1 不同操作系统客户端连接指南打印机在 CUPS 上添加并共享后会通过 IPP 协议广播。不同系统的连接方式略有不同。macOS 这是最无缝的体验。macOS 本身就使用 CUPS。打开系统设置-打印机与扫描仪。点击添加打印机。在IP标签页下协议选择IPP。地址栏填写http://[树莓派IP]:631/printers/[打印机在CUPS中的名称]。例如http://192.168.1.100:631/printers/Office_HP_LaserJet。名称会自动填充队列通常也是同样的地址。点击添加。macOS 通常会自动选择合适的驱动如果没有你可以从列表中选择。Windows 10/11 Windows 原生支持 IPP 协议但需要手动添加。打开设置-蓝牙和其他设备-打印机和扫描仪-添加设备。如果自动搜索不到点击手动添加。选择按名称选择共享打印机。输入地址http://[树莓派IP]:631/printers/[打印机名称]。例如http://192.168.1.100:631/printers/Office_HP_LaserJet。点击下一步。Windows 会尝试从树莓派下载驱动信息。如果失败可能需要你从列表中选择一个兼容的驱动。Linux (Ubuntu/Debian 等) 与 macOS 类似CUPS 是标准组件。打开系统设置-打印机。点击添加。服务器通常会自动发现如果没有可以手动输入树莓派的 IP。从网络打印机列表中选择你的打印机然后按照向导选择驱动通常可以自动选择。iOS/iPadOS Android 移动设备也支持 IPP 打印。iOS/iPadOS在支持打印的 App 中点击分享选择打印点击选择打印机设备会自动搜索网络中的 IPP 打印机。Android需要安装支持 IPP 的打印服务插件例如IPP Print这类 App然后在 App 内添加打印机地址。4.2 解决“缺少过滤器”驱动问题这是搭建过程中最经典的错误之一尤其在使用非主流品牌打印机如热词中提到的“Pantum”或手动上传 PPD 文件时。错误信息通常类似于缺少驱动程序打印机“pantum-ms6000-series”需要的“/usr/lib/cups/filter/xxx”这个错误意味着 CUPS 知道打印机需要某个特定的过滤器程序来处理打印数据但这个过滤器在系统里没找到。排查与解决步骤确认驱动包首先回到 CUPS Web 界面查看该打印机当前使用的驱动是什么。记下驱动名称。搜索已安装的过滤器在树莓派终端中你可以搜索相关文件find /usr/lib/cups/filter -name *pantum* # 以 pantum 为例 find /usr/lib/cups/filter -name *foo* find /usr/lib/cups/filter -name *hp*如果找不到说明对应的驱动包没有安装完整。安装特定驱动包根据打印机品牌安装对应的驱动包。例如惠普sudo apt install hplip兄弟sudo apt install printer-driver-brlaser printer-driver-ptouch佳能sudo apt install printer-driver-c2050 printer-driver-c2esp三星sudo apt install printer-driver-splix对于 Pantum奔图可以尝试搜索是否有第三方驱动包或者使用printer-driver-gutenprint这个包包含很多通用驱动sudo apt install printer-driver-gutenprint重新选择驱动安装完驱动包后回到 CUPS Web 界面修改打印机设置重新选择驱动。这次应该能看到新安装的驱动选项。终极方案使用“原始队列”如果无论如何都找不到合适的驱动且打印机支持 PostScript 或 PCL可以尝试将打印机配置为“原始队列”。在添加或修改打印机时在选择驱动的地方找到并选择Raw。这样配置后CUPS 会将接收到的打印作业不做任何转换直接发送给打印机。这要求客户端必须发送打印机能够理解的原始数据格式。在 macOS 和 Windows 上你需要在添加打印机时手动选择一个与你的打印机语言兼容的驱动如 PostScript 或 PCL 驱动。4.3 权限管理与安全加固建议一个暴露在局域网内的服务安全不容忽视。使用强密码确保树莓派pi用户和其他任何用户的密码都是强密码。限制 CUPS 访问范围如前所述在/etc/cups/cupsd.conf中将Allow from all改为Allow from 192.168.1.0/24替换为你的局域网网段这样只有局域网内的设备可以访问。考虑使用 HTTPSCUPS 支持 SSL 加密。你可以为树莓派配置自签名证书并在cupsd.conf中启用Listen 0.0.0.0:443并配置 SSL 证书路径。但这对于家庭内网环境通常不是必须的。定期更新系统养成习惯定期运行sudo apt update sudo apt upgrade来获取安全更新。防火墙可选Raspberry Pi OS 默认没有启用防火墙。你可以安装并配置ufwsudo apt install ufw sudo ufw allow ssh # 允许SSH sudo ufw allow from 192.168.1.0/24 to any port 631 # 允许局域网访问CUPS sudo ufw enable5. 故障排查与性能优化实录5.1 常见问题速查表下表汇总了搭建和使用过程中最常见的问题及解决方法问题现象可能原因排查步骤与解决方案无法访问http://[IP]:6311. CUPS 服务未运行。2. 防火墙阻止了端口631。3. 配置文件中监听地址错误。1.sudo systemctl status cups查看状态用sudo systemctl start cups启动。2. 检查sudo ufw status或路由器防火墙规则。3. 检查/etc/cups/cupsd.conf中Listen指令。Web界面能打开但添加打印机时看不到USB设备1. 打印机未开机或USB线松动。2. 树莓派USB口供电不足。3. CUPS 未检测到设备。1. 检查打印机电源和连接。lsusb命令查看USB设备列表。2. 尝试更换USB口或使用带外部供电的USB Hub。3. 重启CUPSsudo systemctl restart cups。添加打印机时驱动列表为空或很少printer-driver-all等驱动包未安装完整。运行sudo apt install --reinstall printer-driver-all。打印测试页失败提示“Filter failed”或“缺少过滤器”打印机驱动不匹配或依赖的过滤器未安装。1. 参考章节 4.2 解决“缺少过滤器”问题。2. 尝试更换为更通用的驱动如Generic PostScript。3. 查看详细错误日志sudo tail -f /var/log/cups/error_log。客户端能找到打印机但提交打印任务后无反应1. 打印机未共享。2. 客户端驱动选择错误。3. 作业格式打印机不支持。1. 在CUPS Web界面确认打印机已勾选Shared。2. 在客户端重新添加打印机尝试不同驱动。3. 在CUPS中尝试将打印机设置为Raw队列并在客户端使用原生驱动。打印乱码或全是特殊字符驱动不兼容数据格式错误。1. 在客户端更换打印驱动尝试PostScript或PCL版本。2. 在CUPS端更换更匹配的驱动。打印速度慢尤其是大文件或图片树莓派处理能力有限或网络延迟。1. 确保使用有线网络连接。2. 在打印机属性中尝试关闭“高级功能”如“高质量”图片打印。3. 考虑升级到树莓派4以获得更好的USB和CPU性能。5.2 利用日志进行深度诊断当遇到摸不着头脑的问题时CUPS 的日志文件是你的最佳帮手。日志位于/var/log/cups/。实时查看错误日志打开一个终端运行sudo tail -f /var/log/cups/error_log。然后从客户端发起一个打印任务。观察终端输出的实时错误信息这些信息通常非常具体能直接指向问题根源如权限错误、找不到过滤器、通信失败等。查看访问日志/var/log/cups/access_log记录了所有对 CUPS 服务的访问请求可以帮助你确认客户端是否成功连接。日志级别如果需要更详细的信息可以修改/etc/cups/cupsd.conf中的LogLevel指令例如设置为LogLevel debug然后重启 CUPS。但注意调试日志会非常庞大仅在排查疑难杂症时使用。5.3 性能优化与维护建议关闭图形界面如果安装了如果你使用的是 Raspberry Pi OS with Desktop但只用作打印服务器可以关闭图形界面以节省资源。sudo systemctl set-default multi-user.target sudo reboot需要恢复时执行sudo systemctl set-default graphical.target并重启。使用静态IP地址为了避免路由器 DHCP 分配IP变化导致客户端连接失效最好为树莓派设置静态IP。可以通过路由器后台绑定或者在树莓派上配置静态IP修改/etc/dhcpcd.conf文件。定期清理打印队列有时打印任务会卡住。可以通过命令行清理# 取消所有打印任务 cancel -a # 或者禁用再启用打印机 cupsdisable 打印机名 cupsenable 打印机名考虑添加扫描功能如果打印机支持如果你的打印机是扫描打印一体机可以安装sane-airscan或sane-escl等软件包配合saned服务将树莓派变成网络扫描服务器。这是一个不错的扩展玩法。搭建完成并稳定运行后这台树莓派打印服务器几乎不需要任何维护。它安静、省电、可靠将一台普通的 USB 打印机变成了真正的网络打印机完美解决了多设备共享的痛点。整个过程最大的挑战往往在于驱动适配但只要耐心尝试不同的通用驱动或寻找合适的 PPD 文件绝大多数打印机都能被成功驱动。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻