配置和使用 CUPS 打印服务器

Red Hat Enterprise Linux 9

将您的系统配置为 CUPS 服务器,并管理打印机、打印队列和您的打印环境

Red Hat Customer Content Services

摘要

通用 Unix 打印系统(CUPS)管理 Red Hat Enterprise Linux 上的打印。用户在其主机上的 CUPS 中配置打印机,以打印。另外,您可以在 CUPS 中共享打印机以将主机用作打印服务器。
CUPS 支持打印到:
  • AirPrint™ 和 IPP Everywhere™ 打印机
  • 网络和带有打印机应用程序的本地 USB 打印机
  • 网络和带有旧的基于 PostScript 打印机描述(PPD)驱动程序的本地 USB 打印机

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 登录到 Jira 网站。
  2. 在顶部导航栏中点 Create
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您的改进建议。包括到文档相关部分的链接。
  5. 点对话框底部的 Create

第 1 章 安装和配置 CUPS

您可以使用 CUPS 从本地主机打印。您还可以使用此主机在网络中共享打印机,并充当打印服务器。

流程

  1. 安装 cups 软件包:

    # dnf install cups
  2. 如果您将 CUPS 配置为打印服务器,请编辑 /etc/cups/cupsd.conf 文件,并进行以下更改:

    1. 如果要远程配置 CUPS 或将这个主机用作打印服务器,请配置服务侦听的 IP 地址和端口:

      Listen 192.0.2.1:631
      Listen [2001:db8:1::1]:631

      默认情况下,CUPS 仅侦听 localhost 接口(127.0.0.1::1)。在方括号中指定 IPv6 地址。

      重要

      不要将 CUPS 配置为侦听允许从不可信网络(如互联网)访问的接口。

    2. 通过在 <Location /> 指令中允许相应的 IP 范围来配置哪些 IP 范围可以访问该服务:

      <Location />
        Allow from 192.0.2.0/24
        Allow from [2001:db8:1::1]/32
        Order allow,deny
      </Location>
    3. <Location /admin> 指令中,配置哪些 IP 地址和范围可以访问 CUPS 管理服务:

      <Location /admin>
        Allow from 192.0.2.15/32
        Allow from [2001:db8:1::22]/128
        Order allow,deny
      </Location>

      使用这些设置时,只有 IP 地址为 192.0.2.152001:db8:1::22 的主机才能访问管理服务。

    4. 可选:配置允许访问 web 界面中配置和日志文件的 IP 地址和范围:

      <Location /admin/conf>
        Allow from 192.0.2.15/32
        Allow from [2001:db8:1::22]/128
        ...
      </Location>
      
      <Location /admin/log>
        Allow from 192.0.2.15/32
        Allow from [2001:db8:1::22]/128
        ...
      </Location>
  3. 如果您运行 firewalld 服务并希望配置对 CUPS 的远程访问,请在 firewalld 中打开 CUPS 端口:

    # firewall-cmd --permanent --add-port=631/tcp
    # firewall-cmd --reload

    如果您在有多个接口的主机上运行 CUPS,请考虑限制对所需网络的访问。

  4. 启用并启动 cups 服务:

    # systemctl enable --now cups

验证

  • 使用浏览器并访问 http://<hostname>:631。如果您可以连接到 Web 界面,则 CUPS 工作正常。

    请注意,某些功能(如 Administration 选项卡)需要身份验证和 HTTPS 连接。默认情况下,CUPS 使用自签名证书进行 HTTPS 访问,因此当您验证时连接是不安全的。

第 2 章 在 CUPS 服务器上配置 TLS 加密

CUPS 支持 TLS 加密的连接,默认情况下,该服务为所有需要身份验证的请求强制实施加密连接。如果没有配置证书,CUPS 会创建一个私钥和自签名证书。只有在从本地主机本身访问 CUPS 时,这才足够。对于通过网络的安全连接,请使用由证书颁发机构(CA)签名的服务器证书。

警告

如果没有加密或使用自签名证书,则中间人(MITM)攻击可以披露,例如:

  • 使用 Web 界面配置 CUPS 时管理员的凭证
  • 在通过网络发送打印作业时的机密数据

先决条件

  • CUPS 已配置
  • 您创建了一个私钥,CA 为其发布了一个服务器证书。
  • 如果需要中间证书来验证服务器证书,请将中间证书附加到服务器证书中。
  • 私钥不受密码保护,因为 CUPS 在服务读取密钥时不提供输入密码的选项。
  • 证书中的规范名称(CN)或主题替代名称(SAN)字段与以下之一匹配:

    • CUPS 服务器的完全限定域名(FQDN)
    • DNS 解析为服务器 IP 地址的别名
  • 私钥和服务器证书文件使用 Privacy Enhanced Mail (PEM)格式。
  • 客户端信任 CA 证书。
  • 如果服务器运行 RHEL 9.2 或更高版本,并且启用了 FIPS 模式,客户端必须支持 Extended Master Secret (EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅 强制 TLS 扩展"Extended Master Secret" 知识库文章。

流程

  1. 编辑 /etc/cups/cups-files.conf 文件,并添加以下设置来禁用自签名证书的自动创建:

    CreateSelfSignedCerts no
  2. 删除自签名证书和私钥:

    # rm /etc/cups/ssl/<hostname>.crt /etc/cups/ssl/<hostname>.key
  3. 可选:显示服务器的 FQDN:

    # hostname -f
    server.example.com
  4. 可选:显示证书的 CN 和 SAN 字段:

    # openssl x509 -text -in /etc/cups/ssl/server.example.com.crt
    Certificate:
      Data:
        ...
        Subject: CN = server.example.com
        ...
        X509v3 extensions:
          ...
          X509v3 Subject Alternative Name:
            DNS:server.example.com
      ...
  5. 如果服务器证书中的 CN 或 SAN 字段包含与服务器的 FQDN 不同的别名,请将 ServerAlias 参数添加到 /etc/cups/cupsd.conf 文件中:

    ServerAlias alternative_name.example.com

    在这种情况下,使用替代名称而不是流程其余部分中的 FQDN。

  6. 将私钥和服务器证书存储在 /etc/cups/ssl/ 目录中,例如:

    # mv /root/server.key /etc/cups/ssl/server.example.com.key
    # mv /root/server.crt /etc/cups/ssl/server.example.com.crt
    重要

    CUPS 要求您将私钥命名私钥 <fqdn>.key 和服务器证书文件 < fqdn>.crt。如果使用别名,则必须命名文件 <alias>.key<alias>.crt

  7. 在私钥上设置安全权限,使只有 root 用户能够读取此文件:

    # chown root:root /etc/cups/ssl/server.example.com.key
    # chmod 600 /etc/cups/ssl/server.example.com.key

    因为证书是客户端和服务器之间在建立安全连接之前通信的一部分,所以,任何客户端都可以检索证书,而不需要身份验证。因此,您不需要对服务器证书文件设置严格的权限。

  8. 恢复 SELinux 上下文:

    # restorecon -Rv /etc/cups/ssl/
  9. 默认情况下,CUPS 仅在任务需要身份验证时才强制实施加密连接,例如在 web 界面中对 /admin 页面执行管理任务时。

    要为整个 CUPS 服务器强制实施加密,请将 Encryption Required 添加到 /etc/cups/cupsd.conf 文件中的所有 <Location> 指令中,例如:

    <Location />
      ...
      Encryption Required
    </Location>
  10. 重启 CUPS:

    # systemctl restart cups

验证

  1. 使用浏览器并访问 https://<hostname>:631/admin/。如果连接成功,您可以在 CUPS 中正确配置 TLS 加密。
  2. 如果需要为整个服务器配置该加密,请访问 http://<hostname>:631/。本例中,CUPS 返回一个 Upgrade Required 错误。

故障排除

  • 显示 cups 服务的 systemd 日志条目:

    # journalctl -u cups

    在使用 HTTPS 协议无法连接到 Web 界面后,如果日志包含 Unable to encrypt connection: Error while reading file 错误,请验证私钥和服务器证书文件的名称。

第 3 章 在 web 界面中授予管理权限,以管理 CUPS 服务器

默认情况下,sysrootwheel 组的成员可以在 web 界面中执行管理任务。但是,某些其他服务也使用这些组。例如,默认情况下,wheel 组的成员可以使用 sudo 来执行具有 root 权限的命令。为了避免 CUPS 管理员在其他服务中获得意外权限,请对 CUPS 管理员使用专用组。

先决条件

  • CUPS 已配置
  • 您要使用的客户端的 IP 地址具有访问 Web 界面中管理区域的权限。

流程

  1. 为 CUPS 管理员创建一个组:

    # groupadd cups-admins
  2. 将应在 web 界面中管理服务的用户添加到 cups-admins 组:

    # usermod -a -G cups-admins <username>
  3. 更新 /etc/cups/cups-files.conf 文件中 SystemGroup 参数的值,并附加 cups-admin 组:

    SystemGroup sys root wheel cups-admins

    如果只有 cups-admin 组应该具有管理访问权限,请从参数中删除其他组名称。

  4. 重启 CUPS:

    # systemctl restart cups

验证

  1. 使用浏览器并访问 https://<hostname_or_ip_address>:631/admin/

    注意

    只有在使用 HTTPS 协议时,才能访问 Web UI 中的管理区域。

  2. 开始执行管理任务。例如,单击 Add printer
  3. Web 界面会提示输入用户名和密码。要继续操作,请使用 cups-admins 组成员的用户的凭证进行身份验证。

    如果身份验证成功,此用户可以执行管理任务。

第 4 章 带有打印机驱动程序的软件包概述

Red Hat Enterprise Linux (RHEL)为 CUPS 提供不同的带有打印机驱动程序的软件包。以下是这些软件包的一般概述,及其它们包含哪些供应商的驱动程序:

表 4.1. 驱动程序软件包列表

软件包名称打印机的驱动程序

cups

Zebra, Dymo

c2esp

Kodak

foomatic

Brother, Canon, Epson, Gestetner, HP, Infotec, Kyocera, Lanier, Lexmark, NRG, Ricoh, Samsung, Savin, Sharp, Toshiba, Xerox 等

gutenprint-cups

Brother, Canon, Epson, Fujitsu, HP, Infotec, Kyocera, Lanier, NRG, Oki, Minolta, Ricoh, Samsung, Savin, Xerox 等

hplip

HP

pnm2ppa

HP

splix

Samsung、Xerox 等

请注意,一些软件包可以包含同一打印机厂商或型号的驱动程序,但具有不同的功能。

安装所需的软件包后,您可以在 CUPS Web 界面中或使用 lpinfo -m 命令显示驱动程序列表。

第 5 章 确定打印机是否支持无驱动程序打印

CUPS 支持无驱动程序打印,这意味着您可以打印,而无需为打印机型号提供任何特定于硬件的软件。因此,打印机必须告知客户端其功能,并使用以下标准之一:

  • AirPrint™
  • IPP Everywhere™
  • Mopria®
  • Wi-Fi Direct Print Services

您可以使用 ipptool 工具找出打印机是否支持无驱动程序打印。

先决条件

  • 打印机或远程打印服务器支持互联网打印协议(IPP)。
  • 主机可以连接到打印机或远程打印服务器的 IPP 端口。默认 IPP 端口为 631。

流程

  • 查询 ipp-versions-supporteddocument-format-supported 属性,并确保 get-printer-attributes 测试通过:

    • 对于远程打印机,请输入:

      # ipptool -tv ipp://<ip_address_or_hostname>:631/ipp/print get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes"
      Get printer attributes using get-printer-attributes      [PASS]
          ipp-versions-supported (1setOf keyword) = ...
          document-format-supported (1setOf mimeMediaType) = ...
    • 对于远程打印服务器上的队列,请输入:

      # ipptool -tv ipp://<ip_address_or_hostname>:631/printers/<queue_name> get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes"
      Get printer attributes using get-printer-attributes      [PASS]
          ipp-versions-supported (1setOf keyword) = ...
          document-format-supported (1setOf mimeMediaType) = ...

    要确保无驱动程序打印正常工作,请在输出中验证:

    • get-printer-attributes 测试返回 PASS
    • 打印机支持的 IPP 版本是 2.0 或更高版本。
    • 格式列表包含以下内容之一:

      • application/pdf
      • image/urf
      • image/pwg-raster
    • 对于彩色打印机,输出包含上述格式之一,以及image/jpeg

第 6 章 使用 Web 界面向 CUPS 添加打印机

在用户可以通过 CUPS 打印之前,您必须添加打印机。您可以使用网络打印机和直接附加到 CUPS 主机的打印机,例如通过 USB。

您可以使用 CUPS 无驱动程序功能或使用 PostScript 打印机描述(PPD)文件添加打印机。

注意

CUPS 更喜欢无驱动程序打印,使用驱动程序已被弃用。

Red Hat Enterprise Linux (RHEL)不提供名称服务切换多播 DNS 插件(nss-mdns),该插件通过查询 mDNS 响应程序来解析请求。因此,使用 mDNS 的本地无驱动程序打印机的自动发现和安装在 RHEL 中不提供。要临时解决这个问题,请手动安装单个打印机,或使用 cups-browsed 来自动安装在远程打印服务器上可用的大量的打印队列。

先决条件

流程

  1. 使用浏览器并访问 https://<hostname>:631/admin/

    您必须使用 HTTPS 协议连接到 Web 界面。否则,因为安全的原因,CUPS 会防止您在以后的步骤中进行身份验证。

  2. 单击 Add printer
  3. 如果您还没有验证,CUPS 会提示输入管理用户的凭证。输入授权用户的用户名和密码。
  4. 如果您决定不使用无驱动程序打印,并且要添加的打印机被自动检测到,请选择它,然后单击 Continue
  5. 如果没有检测到打印机:

    1. 选择打印机支持的协议。

      cups 选择打印协议

      如果您的打印机支持无驱动程序打印,且您想要使用此功能,请选择 ippipps 协议。

    2. Continue
    3. 输入打印机的 URL 或远程打印服务器上的队列。

      cups 添加打印机 url
    4. Continue
  6. 输入名称,描述和位置是可选的。如果您使用 CUPS 作为打印服务器,而其他客户端应该能够通过这个打印机上的 CUPS 打印,请选择" Share this printer

    cups 添加打印机详情
  7. Make 列表中选择打印机制造商。如果打印机制造商不在列表中,请选择 Generic 或为打印机上传一个 PPD 文件。

    cups 添加打印机 make
  8. Continue
  9. 选择打印机型号:

    • 如果打印机支持无驱动程序打印,请选择 IPP Everywhere。请注意,如果您之前在本地安装了特定于打印机的驱动程序,则列表可能还包含 <printer_name> - IPP Everywhere 等条目。
    • 如果打印机不支持无驱动程序打印,请选择型号或为打印机上传 PPD 文件。
    cups 添加打印机型号
  10. Add Printer
  11. Set printer options 页面上的设置和标签页取决于驱动程序以及打印机支持的功能。使用此页面设置默认选项,比如用于纸张大小。

    cups 添加打印机默认值
  12. Set default options

验证

  1. 在 Web 界面中打开 Printers 选项卡。
  2. 单击打印机的名称。
  3. Maintenance 列表中,选择 Print test page

    CUPS 打印测试页

故障排除

第 7 章 使用 lpadmin 工具向 CUPS 添加打印机

在用户可以通过 CUPS 打印之前,您必须添加打印机。您可以使用网络打印机和直接附加到 CUPS 主机的打印机,例如通过 USB。

您可以使用 CUPS 无驱动程序功能或使用 PostScript 打印机描述(PPD)文件添加打印机。

注意

CUPS 更喜欢无驱动程序打印,使用驱动程序已被弃用。

Red Hat Enterprise Linux (RHEL)不提供名称服务切换多播 DNS 插件(nss-mdns),该插件通过查询 mDNS 响应程序来解析请求。因此,使用 mDNS 的本地无驱动程序打印机的自动发现和安装在 RHEL 中不提供。要临时解决这个问题,请手动安装单个打印机,或使用 cups-browsed 来自动安装在远程打印服务器上可用的大量的打印队列。

先决条件

流程

  • 在 CUPS 中添加打印机:

    • 要添加无驱动程序支持的打印机,请输入:

      # lpadmin -p Demo-printer -E -v ipp://192.0.2.200/ipp/print -m everywhere

      如果 -m anywhere 选项不适用于您的打印机,请尝试 -m driverless:<uri>,例如:-m driverless:ipp://192.0.2.200/ipp/print

    • 要从无驱动程序支持的远程打印服务器添加队列,请输入:

      # lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -m everywhere

      如果 -m anywhere 选项不适用于您的打印机,请尝试 -m driverless:<uri>,例如:-m driverless:ipp://192.0.2.200/printers/example-queue

    • 要在文件中添加有驱动程序的打印机,请输入:

      # lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -P /root/example.ppd
    • 要从从文件中包含驱动程序的远程打印服务器添加队列,请输入:

      # lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -P /root/example.ppd
    • 要添加在本地驱动程序数据库中有驱动程序的打印机:

      1. 列出数据库中的驱动程序:

        # lpinfo -m
        ...
        drv:///sample.drv/generpcl.ppd Generic PCL Laser Printer
        ...
      2. 将带有 URI 的打印机添加到数据库中的驱动程序中:

        # lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -m drv:///sample.drv/generpcl.ppd

    这些命令使用以下选项:

    • -p <printer_name> :在 CUPS 中设置打印机的名称。
    • -E :启用打印机,CUPS 接受它的作业。请注意,您必须在 -p 之后指定这个选项。详情请查看手册页中的选项描述。
    • -v <uri> :将 URI 设置为打印机或远程打印服务器队列。
    • -m <driver_uri>: 根据提供的从本地驱动程序数据库获取的驱动程序 URI 来设置 PPD 文件。
    • -P <PPD_file> :设置 PPD 文件的路径。

验证

  1. 显示可用的打印机:

    # lpstat -p
    printer Demo-printer is idle. enabled since Fri 23 Jun 2023 09:36:40 AM CEST
  2. 打印测试页:

    # lp -d Demo-printer /usr/share/cups/data/default-testpage.pdf

第 8 章 使用 Web 界面对 CUPS 打印机执行维护和管理任务

打印机管理员有时需要对打印服务器执行不同的任务。例如:

  • 维护任务,如在技术人员修复打印机时临时暂停打印机
  • 管理任务,如更改打印机的默认设置

您可以使用 CUPS Web 界面执行这些任务。

先决条件

流程

  1. 使用浏览器并访问 https://<hostname>:631/printers/

    您必须使用 HTTPS 协议连接到 Web 界面。否则,因为安全的原因,CUPS 会防止您在以后的步骤中进行身份验证。

  2. 点击您要配置的打印机的名称。
  3. 根据您要执行维护还是管理任务,从对应的列表中选择所需的操作:

    CUPS 打印机操作
  4. 如果您还没有验证,CUPS 会提示输入管理用户的凭证。输入授权用户的用户名和密码。
  5. 执行任务。

第 9 章 使用 Samba 打印到使用 Kerberos 验证的 Windows 打印服务器

使用 samba-krb5-printing 包装器,登录到 Red Hat Enterprise Linux (RHEL)的活动目录(AD)用户可以使用 Kerberos 向活动目录(AD)进行身份验证,然后打印到将打印作业转发到 Windows 打印服务器的本地 CUPS 打印服务器。

此配置的好处在于,RHEL 上 CUPS 管理员不需要在配置中存储固定的用户名和密码。CUPS 使用发送打印作业的用户的 Kerberos ticket 验证 AD。

注意

红帽支持只支持从本地系统将打印作业提交到 CUPS,不支持在 Samba 打印服务器上重新共享打印机。

先决条件

  • 要添加到本地 CUPS 实例中的打印机在 AD 打印服务器上是共享的。
  • 您将 RHEL 主机作为 AD 的成员加入。
  • CUPS 安装在 RHEL 上,并且 cups 服务正在运行。
  • 打印机的 PostScript 打印机描述(PPD)文件存储在 /usr/share/cups/model/ 目录中。

流程

  1. 安装 samba-krb5-printingsamba-clientkrb5-workstation 软件包:

    # dnf install samba-krb5-printing samba-client krb5-workstation
  2. 可选: 作为域管理员授权并显示 Windows 打印服务器上共享的打印机列表:

    # smbclient -L win_print_srv.ad.example.com -U administrator@AD_KERBEROS_REALM --use-kerberos=required
    
    	Sharename       Type      Comment
    	---------       ----      -------
    	...
    	Example         Printer   Example
    	...
  3. 可选:显示 CUPS 模型列表以识别打印机的 PPD 名称:

    lpinfo -m
    ...
    samsung.ppd Samsung M267x 287x Series PXL
    ...

    在下一步中添加打印机时,需要 PPD 文件的名称。

  4. 在 CUPS 中添加打印机:

    # lpadmin -p "example_printer" -v smb://win_print_srv.ad.example.com/Example -m samsung.ppd -o auth-info-required=negotiate -E

    该命令使用以下选项:

    • -p printer_name 在 CUPS 中设置打印机的名称。
    • -v URI_to_Windows_printer 将 URI 设置为 Windows 打印机。使用以下格式:smb://host_name/printer_share_name.
    • -m PPD_file 设置打印机使用的 PPD 文件。
    • -o auth-info-required=negotiate 配置 CUPS ,以在将打印作业转发到远程服务器时使用 Kerberos 身份验证。
    • -e 启用打印机,CUPS 接受打印机的作业。

验证

  1. 以 AD 域用户身份登录到 RHEL 主机。
  2. 以 AD 域用户身份进行身份验证:

    # kinit domain_user_name@AD_KERBEROS_REALM
  3. 将文件输出到您添加到本地 CUPS 打印服务器的打印机:

    # lp -d example_printer file

第 10 章 使用 cups-browsed 从本地远程打印服务器集成打印机

cups-browsed 服务使用 DNS 服务发现(DNS-SD)和 CUPS 浏览来使全部或过滤的共享远程打印机子集在本地 CUPS 服务中自动可用。

例如,管理员可以在 workstation 上使用此功能,使只有来自可信打印服务器的打印机在应用程序的打印对话框中可用。如果打印服务器共享大量打印机,也可以将 cups-browsed 配置为按某些标准过滤浏览的打印机,以减少列出的打印机的数量。

注意

如果应用程序中的打印对话框使用其它机制(如 DNS-SD)来列出远程打印机,则 cups-browsed 没有影响。cups-browsed 服务也不会阻止用户手动访问未列出的打印机。

先决条件

  • CUPS 服务在本地主机上已配置
  • 一个远程 CUPS 打印服务器存在,且以下条件适用于这个服务器:

    • 服务器侦听可从客户端访问的接口。
    • /etc/cups/cups.conf 文件中服务器的 <Location /> 指令中的 Allow from 参数允许从客户端的 IP 地址访问。
    • 服务器共享打印机。
    • 防火墙规则允许从客户端访问服务器上的 CUPS 端口。

流程

  1. 编辑 /etc/cups/cups-browsed.conf 文件并进行以下更改:

    1. 为您要轮询的每个远程 CUPS 服务器添加 BrowsePoll 参数:

      BrowsePoll remote_cups_server.example.com
      BrowsePoll 192.0.2.100:1631

      如果远程 CUPS 服务器侦听与 631 不同的端口,请将 :<port> 附加到主机名或 IP 地址。

    2. 可选:配置过滤器来限制本地 CUPS 服务中显示的打印机。例如,要过滤名称包含 sales_ 的队列,请添加:

      BrowseFilter name sales_

      您可以根据不同的字段名称进行过滤,对过滤取反,并匹配确切的值。详情请查看 cups-browsed.conf (5) 手册页中的参数描述和示例。

    3. 可选:更改轮询间隔和超时来限制浏览周期数:

      BrowseInterval 1200
      BrowseTimeout 6000

      以相同的比例增加 BrowseIntervalBrowseTimeout,以避免打印机从浏览列表中消失的情况。这意味着,将 BrowseInterval 的值乘以 5 或更高的整数,并将这个结果值用于 BrowseTimeout

      默认情况下,cups-browsed 每 60 秒轮询远程服务器,超时为 300 秒。但是,在有多个队列的打印服务器上,这些默认值可能会花费很多资源。

  2. 启用并启动 cups-browsed 服务:

    # systemctl enable --now cups-browsed

验证

  • 列出可用的打印机:

    # lpstat -v
    device for Demo-printer: implicitclass://Demo-printer/
    ...

    如果打印机的输出包含 implicitclass,则cups-browsed 管理 CUPS 中的打印机。

其他资源

  • cups-browsed.conf(5) 手册页

第 11 章 访问 systemd 日志中的 CUPS 日志

默认情况下,CUPS 将日志消息存储在 systemd 日志中。这包括:

  • 错误消息
  • 访问日志条目
  • 页面日志条目

先决条件

流程

  • 显示日志条目:

    • 要显示所有日志条目,请输入:

      # journalctl -u cups
    • 要显示特定打印作业的日志条目,请输入:

      # journalctl -u cups JID=<print_job_id>
    • 要显示特定时间段内的日志条目,请输入:

      # journalectl -u cups --since=<YYYY-MM-DD> --until=<YYYY-MM-DD>

      YYYY 替换为年,MM 替换为月,DD 替换为天。

其他资源

  • journalctl(1) 手册页

第 12 章 配置 CUPS 以把日志存储在文件中而不是 systemd 日志中

默认情况下,CUPS 将日志消息存储在 systemd 日志中。或者,您可以配置 CUPS ,来将日志消息存储在文件中。

先决条件

流程

  1. 编辑 /etc/cups/cups-files.conf 文件,并将 AccessLogErrorLogPageLog 参数设置为您要存储这些日志文件的路径:

    AccessLog /var/log/cups/access_log
    ErrorLog /var/log/cups/error_log
    PageLog /var/log/cups/page_log
  2. 如果您将 CUPS 配置为将日志存储在 /var/log/cups/ 以外的目录中,请在该目录上设置 cupsd_log_t SELinux 上下文,例如:

    # semanage fcontext -a -t cupsd_log_t "/var/log/printing(/.*)?"
    # restorecon -Rv /var/log/printing/
  3. 重启 cups 服务:

    # systemctl restart cups

验证

  1. 显示日志文件:

    # cat /var/log/cups/access_log
    # cat /var/log/cups/error_log
    # cat /var/log/cups/page_log
  2. 如果您将 CUPS 配置为将日志存储在 /var/log/cups/ 以外的目录中,请验证日志目录中的 SELinux 上下文是否为 cupsd_log_t:

    # ls -ldZ /var/log/printing/
    drwxr-xr-x. 2 lp sys unconfined_u:object_r:cupsd_log_t:s0 6 Jun 20 15:55 /var/log/printing/

第 13 章 访问 CUPS 文档

CUPS 对安装在 CUPS 服务器上的服务文档提供基于浏览器的访问。本文档包括:

  • 管理文档,如用于命令行打印机管理和核算
  • 手册页
  • 编程文档,如管理 API
  • 参考
  • Specifications

先决条件

流程

  1. 使用浏览器并访问 http://<hostname_or_ip_address>:631/help/:

    cups 帮助
  2. 展开 Online Help Documents 中的条目,然后选择您要阅读的文档。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.