1. 适用场景

适用于 Windows 通过 Debian CUPS 使用网络打印机时出现的常见问题:

  • 小文件可以打印,大文件打印失败;
  • 打印任务提交速度很慢;
  • Windows 打印机显示“错误”;
  • CUPS 接收打印文件很慢;
  • 打印任务偶发成功、偶发失败;
  • CUPS 出现连接数不足;
  • 打印任务长时间停留在传输状态;
  • /var/spool/cups/ 中的文件增长非常慢。

2. 查看 CUPS 版本

查看 CUPS 版本:

查看所有 CUPS 相关软件包:

3. 查看 CUPS 当前配置

查看 cupsd.conf 中实际启用的配置:

检查连接数、超时、KeepAlive 和请求大小配置:

如果没有输出,一般表示这些参数没有显式配置,正在使用 CUPS 默认值。

4. 查看 CUPS 错误日志

实时查看错误日志:

查看最近 100 行:

重点关注:

如果出现:

表示 CUPS 当前客户端连接数已经达到上限,新连接会进入等待状态。

这种情况下可能出现:

  • 小文件打印也很慢;
  • 大文件长时间上传;
  • Windows 打印机最终显示错误;
  • /var/spool/cups/ 中打印数据增长非常慢。

5. 查看 CUPS 631 端口连接情况

5.1 查看当前连接总数

5.2 查看详细连接

5.3 查看连接状态统计

例如:

表示当前有 101 个已建立连接。

5.4 查看各客户端 IP 占用的连接数

用于快速判断是否某一台 Windows 占用了大量 CUPS 连接。

5.5 实时查看 CUPS 总连接数

每秒自动刷新一次。

5.6 推荐:实时查看各客户端连接数量

现场排查时建议优先使用:

显示效果类似:

该命令可以实时观察:

  • 哪个客户端 IP 占用了大量连接;
  • 某个 Windows 的连接数是否持续增加;
  • Windows Print Spooler 停止后连接是否立即下降;
  • Max clients reached 出现时主要是哪台机器造成的。

5.7 查看指定客户端连接数量

例如:

6. 调整 CUPS 最大连接数和超时

如果确认存在:

或者当前环境打印机数量较多、Windows 客户端较多,可以适当提高 CUPS 最大连接数。

编辑:

在全局配置区域增加:

不要放在:

等配置块内部。

修改前可备份:

检查配置:

如果没有任何输出,一般表示配置语法正常。

重新启动:

查看状态:

然后继续观察:

确认是否还出现:

7. 查看打印请求是否成功到达 CUPS

实时查看访问日志:

查看最近记录:

成功打印通常会出现类似:

其中:

表示打印任务已经成功提交给 CUPS。

如果 Windows 显示错误,但服务器日志已经出现:

说明任务已经到达 CUPS,应继续检查 CUPS 后续处理或 Windows 打印状态。

如果完全没有对应的 Print-Job,则优先检查:

8. 查看打印任务状态

查看全部历史任务:

查看尚未完成的任务:

查看指定打印机历史任务:

查看指定打印机未完成任务:

查看打印机当前状态:

如果:

没有输出,并且:

显示:

通常表示任务已经处理完成。

9. 查看打印文件接收速度

打印过程中实时查看:

常见打印数据文件类似:

重点观察文件大小变化。

例如:

长时间缓慢增长,说明 Windows 向 CUPS 传输打印数据非常慢。

如果正常,则应该能明显看到:

快速增长。

如果提高 MaxClients 后 spool 文件增长速度明显恢复,通常说明原来存在 CUPS 连接拥塞。

10. 判断大文件是否受到大小限制

检查配置:

如果配置了类似:

则:

超过该大小的打印任务可能被拒绝。

如不需要限制,可以使用:

修改后:

如果 CUPS access log 中出现:

需要重点检查请求大小限制。

11. 排查 Windows 客户端连接异常

如果发现某一台 Windows 长期占用几十甚至上百个 631 连接,需要检查客户端 Print Spooler。

让用户以管理员身份打开 CMD。

11.1 停止 Windows 打印服务

然后 Debian 上观察:

或者:

如果停止 spooler 后,该客户端大量连接立即消失,则可以确认这些连接来自 Windows 打印服务。

11.2 启动 Windows 打印服务

然后继续观察 CUPS 连接数量。

如果启动以后连接数又快速增长,则应重点检查该 Windows 的打印机配置。

11.3 Windows 查看 CUPS 连接

例如:

最后一列:

是进程 PID。

查询进程:

如果显示:

说明连接由 Windows Print Spooler 创建。

11.4 检查 Windows 中的网络打印机

进入:

重点检查:

  • 是否安装了大量网络打印机;
  • 是否存在已经停用的打印机;
  • 是否存在重复打印机;
  • 是否存在大量指向同一个 CUPS 服务器的 IPP 打印机。

不再使用的打印机建议删除,避免 Windows 持续查询打印机状态,占用大量 IPP 连接。

12. Windows 打印失败时查看事件日志

管理员 CMD 开启 PrintService Operational 日志:

打印失败以后查看:

也可以查看:

用于分析:

13. 常见现象快速判断

现象 优先判断
Max clients reached CUPS 最大连接数已达到上限
631 端口大量 ESTABLISHED Windows/IPP 连接过多
单个客户端占几十或上百连接 Windows Print Spooler 或打印机配置异常
Print-Job successful-ok 打印任务已经成功提交到 CUPS
lpstat -W not-completed 无输出 当前没有未完成任务
打印机显示 idle/空闲 当前没有正在处理任务
spool 文件增长非常慢 网络传输慢或 CUPS 连接拥塞
小文件成功,大文件失败 优先检查连接数、传输速度、超时
调大 MaxClients 后恢复 原 CUPS 最大连接数可能过低
HTTP 413 请求大小超过限制
Filter failed CUPS filter/驱动问题
Backend failed 打印后端或设备通信问题
Windows 报错但 CUPS 已完成 Windows IPP 状态或驱动兼容问题
大量连接在停止 spooler 后消失 Windows Print Spooler 是连接来源

14. 推荐排查顺序

遇到 Windows 网络打印异常时,建议按照下面顺序进行。

第一步:查看 CUPS 错误

重点检查:

第二步:实时查看客户端连接数量

推荐:

这是排查连接数问题最实用的命令之一。

第三步:查看打印请求是否进入 CUPS

重点看:

第四步:观察打印文件传输

判断打印数据是否快速增长。

第五步:查看未完成任务

第六步:查看打印机状态

第七步:排查异常 Windows 客户端

停止:

观察 Debian 连接是否下降。

再启动:

继续观察。

15. 快速排查命令汇总

现场可直接依次执行:

如果确认连接数不足:

参考配置:

然后:

16. 排查思路总结

建议按照以下思路判断:

总体上应优先区分问题属于:

这样可以避免一开始就盲目修改参数。