我们办公室的打印机,时不时会有同事连不上。要解决这样的问题,有什么好办法吗?我目前能想到的可能性有:无线网络/AP 不稳定导致电脑连接打印机有问题,或者打印机的网络打印协议有问题。是否有好的解决、监控打印机稳定性、监控打印协议的方案或者开源代码?
你的问题很具体,很棒!为了更好地帮助你,我想确认以下几点:
- 你们使用的打印机品牌和型号是什么?
- 主要是哪些协议在使用?是 AirPrint、IPP、SMB 还是其他?
- 你们的网络环境是怎样的?是全无线连接,还是有线+无线混合?
- 你更倾向于排查工具(如日志分析、实时监控),还是希望找到稳定的解决方案(如调整网络配置、换协议)?
这样我可以帮你更有针对性地找出合适的监控工具或开源代码解决方案!
- 是 HP 的打印机
- 我分不清具体是什么打印协议,就是通过 Mac 电脑添加打印机,就能在 Mac 看到打印机了
- 电脑都是无线连接,打印机基本都插网线
- 我倾向排查,甚至最好能有监控视图可以一目了然。
好的,我会帮你查找适用于 HP 打印机的网络稳定性监控和排查工具,包括:
- 检测打印机可用性和网络连接状态的工具或脚本
- 适用于 macOS 监控打印协议(如 AirPrint、IPP)的方案
- 适合无线+有线混合网络的打印故障诊断工具
- 可视化监控打印机状态的开源项目或软件
我会尽快整理这些信息,并提供适用的开源代码或解决方案。稍等片刻!
HP打印机可用性和网络连接监测工具
- Ping/连通性监测:最基础的方法是定期对打印机IP执行
ping
检测其在线状态。为深入监测网络稳定性,可以使用开源的 SmokePing 工具持续发送ICMP包并绘制时延/丢包图形 (SmokePing - Reading the Graphs ) (SmokePing - Reading the Graphs )。SmokePing能及时显示打印机网络连接的波动情况,有助于发现间歇性的掉线问题。 - SNMP状态检查:HP网络打印机通常支持SNMP,可通过SNMP查询设备状态。开源监控插件如 Nagios 的“check_hpjd”或通用 check_snmp_printer 脚本可以查询打印机状态和耗材信息 (Printer Checks) (SNMP Printer Check - Nagios Exchange)。例如,Nagios自带的
check_hpjd
插件可检查JetDirect打印机的联机状态和提示信息 (Printer Checks)。还有社区提供的check_snmp_printer
脚本,能通过SNMP获取打印机型号、序列号、纸盒状态、耗材余量等各项指标 (SNMP Printer Check - Nagios Exchange)。这些脚本既可用于Nagios/Icinga监控,也可独立运行进行故障排查。 - Python脚本方案:如果希望自定义监测,可采用开源Python脚本。例如GitHub上的 Printer-Monitoring 项目提供了一个Python 3脚本,通过SNMP定期查询HP等打印机的各类OID信息,并将结果上报服务器或通过邮件告警 (GitHub - alfonsrv/printer-monitoring: Printer Monitoring and Reporting via SNMP and Python ) (GitHub - alfonsrv/printer-monitoring: Printer Monitoring and Reporting via SNMP and Python )。该脚本支持多种打印机型号(配置文件内置HP LaserJet系列等OID映射),可检测打印机在线状态、计数器及耗材水平 (GitHub - alfonsrv/printer-monitoring: Printer Monitoring and Reporting via SNMP and Python )。管理员可将脚本加入计划任务,实现对打印机可用性和网络连接的自动监控。
macOS下打印协议(AirPrint/IPP)监控方案
- CUPS自带工具:macOS内部使用CUPS打印系统,提供了一些命令行工具可用于监控打印协议。例如,
ippfind
可以在本地网络中发现所有IPP打印机及其URI (printing - Can’t find the names of IPP print queues - Unix & Linux Stack Exchange);ipptool
则能向指定打印机发送IPP请求并检测响应,以验证打印服务是否正常 (ipptool(1))。管理员可以编写脚本调用这些工具定期扫描打印机(通过AirPrint公布的IPP服务)是否可达。 - Bonjour浏览和监视:AirPrint依赖Bonjour/mDNS进行打印机发现。macOS下可以使用内置的
dns-sd
命令(或开源的 Bonjour Browser 工具)浏览_ipp._tcp
等服务,实时查看打印机的广播信息是否正常出现。如果打印机的AirPrint广播偶尔消失,可能提示网络发现问题。 - 抓包分析 (Wireshark):Wireshark是开源的网络协议分析工具,可用于深入监控AirPrint/IPP流量 (A Little Printing Please – Packet Capture | Weberblog.net)。通过在Mac上抓取网络数据,过滤
tcp.port == 631
(IPP端口)或MDNS协议的数据,可以观察打印请求和打印机广播情况 (A Little Printing Please – Packet Capture | Weberblog.net)。例如,当iPhone/iPad通过AirPrint打印时,会先通过UDP 5353发送mDNS查询,再通过IPP (TCP 631)发送打印作业 (A Little Printing Please – Packet Capture | Weberblog.net)。利用Wireshark可以验证这些协议交互是否正常,帮助诊断Mac与HP打印机之间由于协议问题导致的间歇性无法打印。
混合无线/有线网络的打印故障诊断工具
- 网络扫描与连通性检查:在混合Wi-Fi和以太网环境下,首先需要确保无线子网和有线子网之间路由畅通。使用 Angry IP Scanner 这样的开源网络扫描工具,可以从无线和有线两侧扫描打印机IP,确认不同网络段都能发现打印机 (Documentation - Angry IP Scanner)。类似地,利用 Nmap 扫描打印机常用端口(如9100, 631, 161),检查各端口在两种网络下是否开放,以排除防火墙或隔离导致的访问问题。
- 抓包与流量监控:对于复杂的网络问题,Wireshark同样适用。可分别在无线网和有线网接口抓包,看看打印机的通信(例如ARP、mDNS广播、TCP连接)在哪一段出现中断。这有助于判断问题出在无线侧还是有线侧,以及是否存在组播广播无法跨网段的问题。若发现mDNS组播在无线/有线间无法互通,可考虑配置 Avahi 等mDNS中继(开源方案)来桥接AirPrint广播,从网络层面解决无线与有线隔离的问题。
- 官方诊断工具:虽然问题要求优先开源方案,但值得一提的是HP提供的免费诊断工具 HP Print and Scan Doctor(Windows平台)可以自动检测打印机网络问题。不过在macOS/Linux环境下没有等价的官方工具,因此以上提及的开源网络扫描和协议分析工具是主要手段。
打印机状态可视化监控的开源项目
- LibreNMS:一款开源网络监控系统,支持通过SNMP自动发现并监控包括HP在内的各厂商网络打印机。LibreNMS能采集打印机状态、计数器及耗材余量,并提供网页仪表板实时展示这些信息,还可设置掉线/耗材警报 (LibreNMS not properly reporting printer toner levels - Help)。许多常见打印机(HP、Canon、Epson等)都有现成支持,安装后即可在图形界面中查看打印机在线状态和历史数据曲线。
- Zabbix:流行的开源监控平台。通过导入社区提供的打印机模板,Zabbix可以监控网络打印机的在线状态、错误状态和耗材水平 ( Printers monitoring and integration with Zabbix)。例如,有用户制作了HP LaserJet系列的SNMP模板,将打印机各项OID加入监控项,实现网页仪表盘上的状态展示和邮件告警。Zabbix自带图表功能,可直观呈现打印机运行状态随时间的变化。
- 自建Grafana仪表盘:对于有一定开发能力的团队,可以使用 Grafana 配合SNMP数据源搭建自定义打印机监控看板。通过Telegraf或Prometheus SNMP Exporter采集HP打印机的状态和计数器,再存入时序数据库(如 InfluxDB),即可在Grafana上绘制打印机在线/离线状态、作业量统计、耗材用量趋势等图表,实现高度定制的可视化监控(社区也有现成的打印机概览Dashboard可供参考 (Printers Overview | Grafana Labs))。
- Home Assistant:一款开源家庭自动化平台,也常被用于监控设备状态。有人编写了Home Assistant的HP打印机SNMP监控方案,通过SNMP传感器获取打印机页数计数、错误代码、在线/offline等信息,并在界面上以卡片形式显示 (HP Printer over SNMP - Share your Projects! - Home Assistant Community) (HP Printer over SNMP - Share your Projects! - Home Assistant Community)。这种方案利用Home Assistant直观的UI,实现打印机状态的可视化监控和本地通知。
以上方案均为开源,可根据实际需求选择。其中网络连通性监测可从简单的ping/SNMP着手,macOS环境下充分利用CUPS及抓包工具排查协议问题,而完整的可视化监控则可采用如LibreNMS、Zabbix这类成熟开源软件构建。每种工具均提供了对应的代码仓库或下载链接 (GitHub - alfonsrv/printer-monitoring: Printer Monitoring and Reporting via SNMP and Python ) (SNMP Printer Check - Nagios Exchange),方便进一步了解和部署。