IPP 是什么
IPP(Internet Printing Protocol,RFC 8011)用 HTTP 语义描述打印这件事:客户端提交打印作业、查询队列状态、读取打印机能力,都通过 631 端口上的标准操作完成(Print-Job、Get-Printer-Attributes 等)。CUPS 是 Linux/macOS 上的事实标准实现,AirPrint 与 Mopria 也建立在它之上;由于底层就是 HTTP,很多打印机直接在 631 上提供 Web 管理页。
基本信息
| 服务 | ipp(TCP 631);ipps 为 TLS 形态 |
|---|---|
| 协议 | TCP(IANA 同时登记 UDP 631) |
| 规范 | RFC 8011(IPP/1.1) |
| 实现 | CUPS、AirPrint、Mopria、多数网络打印机 |
| 安全等级 | 办公网内,管理页仅限管理网段 |
典型使用场景
- driverless 打印:用 IPP Everywhere 免驱添加打印机,省去驱动分发
- 企业统一队列:把打印作业集中到 CUPS 或打印服务器再分发
- 移动打印:手机与平板通过 AirPrint/Mopria 发现并使用打印机
- 排障:用 curl 直接调 IPP 接口,比在客户端翻日志更快定位
- 安全盘点:确认打印机 Web 管理页是否可匿名访问、是否仍有默认口令
命令行打印与队列检查
命令行打印与队列检查
lpadmin -p Office -E -v ipp://printer.example.com/ipp/print -m everywhere
lp -d Office /path/doc.pdf
lpstat -l -p Office # 打印机状态与是否接受任务
lpstat -o # 当前排队作业
curl -s http://printer.example.com:631/ | head -n 20CUPS 监听与权限控制
CUPS 监听与权限控制
# /etc/cups/cupsd.conf 关键项
# Listen localhost:631 # 仅本机管理
# <Location /> Require user @SYSTEM # 管理操作需认证
sudo systemctl restart cups
sudo ss -tlnp | grep ':631' # 确认监听地址打印协议端口对照
| 端口 | 协议 | 特点 |
|---|---|---|
| 631/tcp | IPP / ipps | 标准作业与状态接口,可用 curl 调试 |
| 9100/tcp | RAW / JetDirect | 直接投递字节流,无反馈 |
| 515/tcp | LPD | 老式行式打印协议,仍在用 |
| 5353/udp | mDNS | AirPrint 等发现机制 |
| 445/tcp | SMB 共享打印 | Windows 共享打印机走这里 |
故障定位:IPP 本质是 HTTP,可直接用 curl 调接口;打印机返回 4xx/5xx 时先看 Print-Job 响应里的状态消息,再核对驱动,最后再查网络与端口。
部分打印机允许匿名提交作业或使用弱认证的 Web 管理口,管理页还能改网络与固件配置;接入前核对认证设置与固件更新策略,别让打印机成为内网跳板。
加固与运维建议
- 打印服务器与管理界面只对办公网段开放,管理登录要求认证
- 开启打印作业审计,便于追溯异常作业与耗材异常
- 定期核对固件更新,打印机固件漏洞常被用于内网横向
- 按部门划分队列与配额,避免误打大文件阻塞整条队列
服务端排查顺序:先确认 631 与发现所需的 5353 是否可达,再看队列是否暂停或拒绝任务,最后才查驱动;顺序颠倒容易在驱动上反复折腾。