FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • 编辑日志
  • FreeBSD 中文文章翻译项目
  • 参与 FreeBSD
  • 提交者指南
  • 构建你自己的 FreeBSD 更新服务器
  • 使用 FreeBSD 开发产品
  • FreeBSD 上的打印服务器(CUPS)
  • FreeBSD 虚拟内存系统设计要素
  • BSD 简介
  • 桥接过滤器
  • 字体与 FreeBSD
  • 面向 FreeBSD 和 UNIX® 的新用户的简介
  • FreeBSD 和固态硬盘
  • FreeBSD 许可政策
  • 面向 Linux® 用户的 FreeBSD 快速入门指南
  • FreeBSD 发布工程
  • FreeBSD 状态报告流程
  • FreeBSD 对闰秒的支持
  • FreeBSD 邮件列表常见问题
  • 如何从 FreeBSD-questions 邮件列表中获得最佳结果
  • 在台机上实现 UFS 日志功能
  • 对 FreeBSD 中 IPsec 功能的独立验证
  • NanoBSD 简介
  • LDAP 身份验证
  • FreeBSD 中的 Linux® 仿真
  • 旧版 FreeBSD 发布工程
  • 镜像 FreeBSD
  • 可插拔认证模块(PAM)
  • Port 导师指南
  • BSD 中的实用 rc.d 脚本编程
  • 问题报告处理指南
  • 在没有远程控制台的情况下远程安装 FreeBSD 操作系统
  • 串口和 UART 教程
  • vinum 卷管理器
  • 使用 FreeBSD 源代码树中的语言服务器进行开发
  • IPsec VPN
  • 为什么要为开源项目选用类 BSD 许可证?
  • 编写 GEOM 类
  • 编写 FreeBSD 问题报告
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 摘要
  • 1. 了解通用 UNIX 打印系统(CUPS)
  • 2. 安装 CUPS 打印服务器
  • 3. 配置 CUPS 打印服务器
  • 4. 配置 CUPS 打印服务器上的打印机
  • 5. 配置 CUPS 客户端
  • 5.1. UNIX® 客户端
  • 5.2. Windows® 客户端
  • 6. CUPS 故障排除
在GitHub上编辑
导出为 PDF

FreeBSD 上的打印服务器(CUPS)

上一页使用 FreeBSD 开发产品下一页FreeBSD 虚拟内存系统设计要素

最后更新于11天前

  • 原文链接

摘要

本文介绍了如何在 FreeBSD 上配置 CUPS。

1. 了解通用 UNIX 打印系统(CUPS)

CUPS(Common UNIX Printing System)为基于 UNIX® 的操作系统提供了一层可移植的打印支持。它由 Easy Software Products 开发,旨在为所有 UNIX® 系统的供应商和用户推广标准的打印解决方案。

CUPS 使用互联网打印协议(IPP)作为管理打印任务和队列的基础。它还支持 Line Printer Daemon(LPD)、Server Message Block(SMB)和 AppSocket(又名 JetDirect)协议,但功能有所简化。CUPS 增加了网络打印机浏览和基于 PostScript 打印机描述(PPD)的打印选项,支持在 UNIX® 环境中进行实际的打印操作。因此,CUPS 非常适合在 FreeBSD、Linux®、Mac OS® X 或 Windows® 的混合环境中共享和访问打印机。

CUPS 的官方网站是 。

2. 安装 CUPS 打印服务器

要使用预编译的二进制文件安装 CUPS,可以在 root 终端中执行以下命令:

# pkg install cups

另外,一些可选的但推荐安装的包有 和 ,它们为多种打印机提供了驱动程序和实用工具。安装完成后,CUPS 的配置文件可以在目录 /usr/local/etc/cups 中找到。

3. 配置 CUPS 打印服务器

安装完成后,需要编辑一些文件来配置 CUPS 服务器。首先,创建或修改文件 /etc/devfs.rules,并添加以下内容,以设置所有潜在打印机设备的正确权限,并将打印机与 cups 用户组关联:

[system=10]
add path 'unlpt*' mode 0660 group cups
add path 'ulpt*' mode 0660 group cups
add path 'lpt*' mode 0660 group cups
add path 'usb/X.Y.Z' mode 0660 group cups

注意

接下来,在 /etc/rc.conf 中添加以下两行:

cupsd_enable="YES"
devfs_system_ruleset="system"

这两项设置将在启动时启动 CUPS 打印服务器,并调用上述创建的本地 devfs 规则。

为了在某些 Microsoft® Windows® 客户端下启用 CUPS 打印,应该取消注释 /usr/local/etc/cups/mime.types 和 /usr/local/etc/cups/mime.convs 文件中的以下行:

application/octet-stream

完成这些更改后,必须重新启动 devfs 和 CUPS 系统,可以通过重启计算机或在 root 终端中执行以下两个命令:

# service devfs restart
# service cupsd restart

4. 配置 CUPS 打印服务器上的打印机

在安装并配置 CUPS 系统后,管理员可以开始配置附加到 CUPS 打印服务器的本地打印机。这一过程与在其他基于 UNIX® 的操作系统(如 Linux® 发行版)上配置 CUPS 打印机非常相似,甚至完全相同。

5. 配置 CUPS 客户端

CUPS 服务器已配置并将打印机添加并发布到网络之后,下一步是配置客户端,即将访问 CUPS 服务器的机器。如果有一台桌面计算机既充当服务器又充当客户端,那么很多信息可能不需要配置。

5.1. UNIX® 客户端

ipp://server-name-or-ip/printers/printername
http://server-name-or-ip:631/printers/printername

如果 CUPS 客户端难以发现网络上共享的其他 CUPS 打印机,有时可以创建或编辑文件 /usr/local/etc/cups/client.conf,并在其中添加以下条目:

ServerName server-ip

在这种情况下,server-ip 应替换为网络上 CUPS 服务器的本地 IP 地址。

5.2. Windows® 客户端

在 XP 之前的 Windows® 版本中,原生不支持与基于 IPP 的打印机进行网络连接。然而,Windows® XP 及更高版本支持这一功能。因此,在这些版本的 Windows® 中添加 CUPS 打印机非常简单。一般来说,Windows® 管理员会运行 Windows® Add Printer 向导,选择 Network Printer,然后输入以下语法的 URI:

http://server-name-or-ip:631/printers/printername

6. CUPS 故障排除

# 在 error_log 中记录一般信息 - 若进行故障排除,请将 "info" 改为 "debug"...
LogLevel info

# 管理员用户组...
SystemGroup wheel

# 在端口 631 上监听连接。
Port 631
#Listen localhost:631
Listen /var/run/cups.sock

# 显示局域网共享的打印机。
Browsing On
BrowseOrder allow,deny
#BrowseAllow @LOCAL
BrowseAllow 192.168.1.* # 更改为本地 LAN 设置
BrowseAddress 192.168.1.* # 更改为本地 LAN 设置

# 需要身份验证时的默认身份验证类型...
DefaultAuthType Basic
DefaultEncryption Never # 注释掉此行以允许加密

# 允许 LAN 上任何计算机访问服务器
<Location />
  Order allow,deny
  #Allow localhost
  Allow 192.168.1.* # 更改为本地 LAN 设置
</Location>

# 允许 LAN 上任何计算机访问管理员页面
<Location /admin>
  #要求加密
  Order allow,deny
  #Allow localhost
  Allow 192.168.1.* # 更改为本地 LAN 设置
</Location>

# 允许 LAN 上任何计算机访问配置文件
<Location /admin/conf>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  #Allow localhost
  Allow 192.168.1.* # 更改为本地 LAN 设置
</Location>

# 设置默认打印机/作业策略...
<Policy default>
  # 与作业相关的操作必须由所有者或管理员执行...
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs \
Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription \
Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job \
CUPS-Move-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # 所有管理操作都需要管理员身份验证...
  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer \
Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs \
Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer \
Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class \
CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>
    AuthType Basic
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # 只有所有者或管理员可以取消或认证作业...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

注意:X、Y 和 Z 应替换为 /dev/usb 目录中与打印机对应的目标 USB 设备。要查找正确的设备,可以查看 的输出,ugenX.Y 列出的是打印机设备,它是 /dev/usb 中 USB 设备的符号链接。

管理和管理 CUPS 服务器的主要方式是通过基于 Web 的界面,可以通过启动浏览器并在浏览器的 URL 栏中输入 来访问。如果 CUPS 服务器位于网络上的另一台机器上,只需将服务器的本地 IP 地址替换 localhost。CUPS 的 Web 界面非常直观,其中有打印机和打印任务管理、用户授权等部分。此外,在管理界面的右侧有几个复选框,方便访问常用设置,如是否共享连接到系统的打印机、是否允许远程管理 CUPS 服务器,以及是否允许用户对打印机和打印任务授予额外的访问权限。

添加打印机通常很简单,只需在 CUPS Web 界面的管理屏幕上点击 Add Printer,或者点击 New Printers Found 按钮。当出现 Device 下拉框时,只需选择所需的本地连接打印机,然后继续操作。如果之前安装了 Port 或包 或 ,那么后续界面中会提供其他打印驱动程序,可能提供更多的稳定性或功能。

CUPS 也需要在 UNIX® 客户端上安装。在客户端上安装了 CUPS 后,通常桌面环境(如 GNOME 或 KDE)的打印管理器会自动发现网络上共享的 CUPS 打印机。或者,可以在客户端机器上访问本地 CUPS 界面,输入 并在管理部分点击 Add Printer。当出现 Device 下拉框时,只需选择自动发现的网络 CUPS 打印机,或者选择 ipp 或 http,然后输入网络 CUPS 打印机的 IPP 或 HTTP URI,通常有以下两种格式之一:

如果使用的是较旧版本的 Windows®,没有原生的 IPP 打印支持,那么连接到 CUPS 打印机的常见方式是将 与 CUPS 一起使用,然而这超出了本章的讨论范围。

CUPS 的常见问题通常与权限有关。首先,检查如上所述的 权限。接着,检查文件系统中创建的设备的实际权限。确保用户是 cups 组的成员也很有帮助。如果 CUPS Web 界面中的权限复选框似乎无法正常工作,可以尝试手动备份位于 /usr/local/etc/cups/cupsd.conf 的主配置文件,并编辑其中的各种配置选项,尝试不同的配置组合。以下是一个可以测试的示例 /usr/local/etc/cups/cupsd.conf 配置文件。请注意,此示例 cupsd.conf 为了更容易配置牺牲了一些安全性;若管理员成功连接到 CUPS 服务器并配置好客户端,建议重新审视该配置文件并开始限制访问。

CUPS on FreeBSD
http://www.cups.org/
print/gutenprint
print/hplip
dmesg(8)
http://localhost:631
print/gutenprint-cups
print/hplip
http://localhost:631
net/samba416
devfs(8)