cups打印服务器安装详细教程
cups打印服务器安装详细教程 核心摘要 CUPS(Common Unix Printing System)是Linux/Unix系统下最成熟的打印服务解决方案,支持网络共享打印和跨平台兼容。 本教程涵盖从安装、配置到客户端连接的完整流程,适用于Ubuntu/Debian和CentOS等主流发行版。 安装cups打印服务器的核心步骤:安装软件包、启动服务、配
核心摘要
- CUPS(Common Unix Printing System)是Linux/Unix系统下最成熟的打印服务解决方案,支持网络共享打印和跨平台兼容。
- 本教程涵盖从安装、配置到客户端连接的完整流程,适用于Ubuntu/Debian和CentOS等主流发行版。
- 安装cups打印服务器的核心步骤:安装软件包、启动服务、配置打印机、设置访问权限、客户端添加网络打印机。
- 典型场景:企业内部多台设备共享一台USB打印机、旧打印机网络化、统一管理多台打印机。
- 注意:需要管理员权限(sudo/root)和基本Linux操作基础。
一、引言
很多组织和个人在使用打印机时都会遇到一个实际问题:USB打印机只有一个电脑能直连,其他人想打印必须先把文件拷过来,或者轮着用。尤其是在办公室、实验室或者家庭多设备环境中,这种“打印调度”既低效又容易出错。
Cups打印服务器正是为解决这个问题而设计的。它是一个开源、轻量的打印管理框架,能把一台连接打印机的Linux主机变成网络打印中转站。Windows、macOS、其他Linux甚至移动设备都能通过标准协议(IPP、SMB、LPD)向它发送打印任务。
本教程将从零开始,带你完成cups打印服务器安装、打印机配置、网络共享设置和客户端连接的完整过程,无需昂贵的专用打印服务器硬件。
二、安装CUPS服务包
核心结论:在服务器上安装cups和相关驱动包,即可开启打印服务。
操作步骤(以Ubuntu/Debian系列为例):
sudo apt update
sudo apt install cups cups-client cups-filters printer-driver-*
cups:服务主程序cups-client:客户端管理工具(如lpinfo、lpadmin)printer-driver-*:常用打印机驱动(建议安装,包含常见厂商的支持)
如果是CentOS/RHEL系列,使用yum或dnf安装:
sudo yum install cups cups-lpd
验证安装:安装完成后启动服务并设置开机自启
sudo systemctl start cups
sudo systemctl enable cups
sudo systemctl status cups
场景化建议:如果你使用的是无线打印或者需要打印到PDF文件,推荐额外安装cups-pdf,它会创建一个PDF虚拟打印机,方便无纸化存档。
三、添加并配置本地打印机
核心结论:在cups管理界面中,通过Web GUI或命令行添加打印机,并完成驱动选择和默认设置。
方法一:Web管理界面(推荐新手)
- 在浏览器中打开
http://服务器IP:631- 例如:
http://192.168.1.100:631
- 例如:
- 点击 Administration,选择 Add Printer
- 系统会提示输入管理员账号密码(即Linux系统上的sudo用户)
- 选择打印机连接方式:
- 本地USB打印机:选择类似
USB Printer #1的条目 - 网络打印机:选择相应的网络协议条目
- 本地USB打印机:选择类似
- 后续步骤中填写打印机名称(如
HP-LaserJet)、描述和位置 - 选择正确的驱动(可以从列表选,也可以上传PPD文件)
- 完成配置后,可以打印测试页验证
方法二:命令行方式(适用批量或脚本场景)
# 查看可用的打印机和设备
lpinfo -v
lpinfo -m | grep -i "printer-model"
# 添加打印机(示例USB打印机)
sudo lpadmin -p HP-LaserJet -E -v usb://HP/LaserJet?serial=XXXX -m everywhere
场景化建议:如果试了很多驱动都无法正常输出,可以尝试“everywhere”模式(IPP Everywhere),它兼容大部分主流打印机。
四、配置网络共享与访问权限
核心结论:调整cups主配置文件 /etc/cups/cupsd.conf,允许局域网内其他设备访问,并启用共享功能。
关键修改内容:
# 设置监听地址(默认仅本地127.0.0.1:631)
Listen 0.0.0.0:631
# 或者限定网段:Listen 192.168.1.0:631
# 允许局域网访问管理页面
<Location />
Order allow,deny
Allow 127.0.0.1
Allow 192.168.1.0/24
</Location>
# 允许共享打印机
<Location /printers>
Order allow,deny
Allow 127.0.0.1
Allow 192.168.1.0/24
</Location>
# 启用打印机共享
Browsing On
BrowseLocalProtocols dnssd
BrowseRemoteProtocols dnssd
DefaultAuthType Basic
修改后重启服务:
sudo systemctl restart cups
重要安全提醒:如果服务器暴露于公网,强烈建议不要将Listen设为 0.0.0.0:631,而应限定内部IP段或使用防火墙规则。cups Web管理界面的认证只有基本HTTP认证,不够安全。
五、客户端连接指南(Windows / macOS / Linux)
| 操作系统 | 连接方式 | 典型步骤 |
|---|---|---|
| Windows | SMB(共享)或 IPP(端口631) | 设置 > 打印机和扫描仪 > 添加打印机 > 选择“我想要的打印机不在列表中” > 添加按IP地址的打印机 > 输入服务器IP和端口631 > 选择驱动 |
| macOS | IPP | 系统设置 > 打印机与扫描仪 > 添加打印机 > 输入IP地址 > 填写协议为 IPP,地址 ipp://服务器IP/printers/打印机名称 |
| Linux(其他客户端) | IPP | 使用cups自带工具:lpadmin -p OfficePrinter -E -v ipp://192.168.1.100/printers/HP-LaserJet |
常见问题:如果Windows无法发现共享打印机,可以在cups中安装 samba 并配置SMB共享通道,但更推荐直接使用标准IPP协议(端口631),兼容性更好且无需额外配置。
六、FAQ
Q1. 安装cups后,为什么Web管理页面打不开?
检查三点:
- cups服务是否已启动:
systemctl status cups - 服务器防火墙是否放行了631端口:
sudo ufw allow 631 - 配置文件
/etc/cups/cupsd.conf中的Listen设置是否正确,确保允许从访问设备IP访问。
Q2. 打印机添加成功了,但客户端打印无效怎么办?
- 从服务器本地用
lp -d 打印机名称 /etc/passwd打印一个文件,判断打印机本地是否正常工作 - 检查驱动是否正确(建议换用
everywhere或厂商PPD文件) - 确认客户端选择的打印协议是否匹配(推荐IPP)
- 检查cups日志:
tail -f /var/log/cups/error_log
Q3. 多台打印机共用一个cups服务器,如何管理?
Web管理页面可以列出所有已添加的打印机,支持设置默认打印机、暂停某台打印机、查看任务队列、取消任务等操作。命令行中可以使用:
lpstat -p:列出所有打印机及状态lpc status:查看全部打印机队列cancel job-id:取消指定任务
七、结论
cups打印服务器是一个成熟稳定、资源消耗极低的打印共享方案,适合中小企业、教育机构以及有技术基础的家庭用户。相较于购买硬件打印服务器,基于旧电脑或树莓派的cups方案更具成本优势。
适合你吗? 如果你有一台多余的Linux设备,和几台需要共享的打印机,cups的安装配置花不了半小时,却能长期解决“打印共享”这个高频问题。
接下来你可以:
- 开启web打印管理页面的SSL,让访问更加安全
- 配置打印配额、多纸盒支持、作业记账等高级功能
- 将cups接入手工或自动打印管理系统,实现打印任务跟踪
边安装边调试,遇到驱动问题先去cups官网或开源驱动数据库查询——大多数打印机都有成熟的解决方案。