CUPS 简介CUPS 是一种模块化开源打印系统,使用 Internet 打印协议 (Internet Printing Protocol, IPP) 作为基础来管理打印机、打印请求和打印队列。CUPS 支持网络打印机浏览和基于 PostScript 打印机描述的打印选项。CUPS 还提供了跨越本地网络的公共打印接口。
IPP 是网络打印的标准协议。与其他基于 IP 的协议类似,可以在本地或通过 Internet 使用 IPP 与远程打印机进行通信。但与其他协议不同的是,IPP 还支持访问控制、验证和加密,从而使其成为比其他协议强大且安全许多的打印解决方案。IPP 位于超文本传输协议 (Hypertext Transfer Protocol, HTTP) 的顶层。HTTP 是 Internet 中的 Web 服务器的基础协议。使用 IPP 时,您可以验证打印机或服务器的状态信息、管理打印机以及通过浏览器打印作业。CUPS 是基于 IPP/1.1 的完整打印系统,它提供基本的摘要本地证书验证,以及基于用户、域或 IP 的访问控制。
CUPS 包括对动态打印机检测和分组的支持。CUPS 会将 lpr
命令替换为自己的命令,将 LPD 打印机驱动程序替换为自己的打印驱动程序。CUPS 与 LP 打印服务的相似之处在于,它也使用 PostScript 格式作为其页面说明底层语言。由于 CUPS 提供 System V 和 Berkeley 打印命令,因此用户和应用程序可以打印到 CUPS 队列,只需稍微更改之前使用的选项或根本无需更改。
最后,CUPS 还包括由许多开源应用程序和工具包使用的应用程序级别界面。在后端,CUPS 包括用于处理带注释的光栅图像格式 (raster image format, RIP) 所需的界面。对此格式以及这些界面的支持已集成到其他关键开源打印驱动程序技术中。
CUPS 是 Oracle Solaris 发行版中唯一的缺省打印服务,它将取代 LP 打印服务。通过以下各项可管理在 Oracle Solaris 操作系统 (operating system, OS) 中使用 CUPS 进行打印的过程:
CUPS 命令行实用程序-这些命令包括新的 CUPS 打印命令以及之前由 LP 打印服务使用的一些打印命令。
CUPS Web 浏览器界面-转至 http://localhost:631。
CUPS 打印管理器 GUI-您可以从包括 GNOME 2.30 的 Oracle Solaris Desktop 或通过在终端窗口中键入 system-config-printer
命令访问此 GUI。官网地址:https://www.cups.org/
方法一:修改 CUPS 配置文件(最可靠的方法)
这是最根本的解决方法,通过修改配置文件来放宽访问限制。
- 打开终端 (
Ctrl+Alt+T
)。 - 编辑 CUPS 的主配置文件:
使用你喜欢的文本编辑器,例如nano
或vim
。这里以nano
为例:bashsudo nano /etc/cups/cupsd.conf - 找到并修改监听和访问权限设置:
在打开的配置文件中,你需要找到并修改几个关键部分。- 找到监听地址:找到以
Listen
开头的行。默认可能只有:textListen localhost:631为了允许网络访问,你可以在它下面添加一行,监听所有网络接口:textListen *:631或者,如果你只想监听特定网卡(例如 IP 为192.168.1.100
),可以这样写:textListen 192.168.1.100:631建议:直接添加Listen *:631
最简单。 - 修改访问权限限制:在配置文件中找到
<Location />
,<Location /admin>
, 和<Location /admin/conf>
这几个节。它们的默认配置非常严格。将它们的Allow
和Deny
规则修改为允许你的本地网络访问。例如,假设你的局域网网段是192.168.1.0/24
:修改前(类似这样):textOrder allow,deny Allow localhost Order allow,deny Allow localhost 修改后:textOrder allow,deny Allow localhost Allow 192.168.1.* Order allow,deny Allow localhost Allow 192.168.1.* Allow 192.168.1.*
表示允许所有 IP 地址以192.168.1
开头的计算机访问。- 如果你想允许所有地址访问(不安全,仅用于测试或完全信任的内网),可以将
Allow
改为Allow all
。
- 找到监听地址:找到以
- 保存并关闭文件:
在nano
编辑器中,按Ctrl+X
,然后按Y
,最后按Enter
保存。 - 重启 CUPS 服务:
让新的配置生效。bashsudo systemctl restart cups - 检查防火墙:
Ubuntu 22.04 默认使用ufw
防火墙。确保防火墙允许 631 端口的流量。bashsudo ufw allow 631/tcp然后重新加载防火墙:bashsudo ufw reload - 现在尝试访问:
在你的浏览器中再次输入http://<你的ubuntu主机IP>:631
。
你应该可以正常看到 CUPS 的页面了。



方法二:使用 cupsctl 命令(快速但可能不彻底)
cupsctl
是一个快速配置 CUPS 的工具,它可以临时修改一些运行时参数。
- 允许远程管理:
这个命令会临时允许从任何主机进行远程管理。bashsudo cupsctl –remote-any这个命令实际上是在修改/etc/cups/cupsd.conf
,添加或修改DefaultAuthType Default
和DefaultEncryption Never
,并放宽访问限制。但它的效果可能不如方法一那样精确和持久。 - 同样需要检查防火墙(同上一步骤6)。
- 重启服务(虽然不是每次都必须,但建议执行):bashsudo systemctl restart cups
注意:使用方法二后如果问题依旧,或者你想有更精细的控制,请务必使用方法一直接编辑配置文件。
如果还需要进行管理(添加打印机),你需要设置认证:
即使你能访问页面了,当你点击“管理”或添加打印机时,可能还会弹出用户名和密码对话框。
- 默认的用户:你需要使用 Ubuntu 上的有 sudo 权限的用户(即
root
用户组中的用户)来登录。通常就是你安装系统时创建的那个用户。 - 密码:就是该用户的登录密码。
总结步骤:
- 编辑
/etc/cups/cupsd.conf
,添加Listen *:631
并在<Location />
等节中添加Allow your-network/*
(如Allow 192.168.1.*
)。 - 重启服务:
sudo systemctl restart cups
。 - 配置防火墙:
sudo ufw allow 631/tcp
。 - 使用有 sudo 权限的用户名和密码进行管理操作。
完成以上步骤后,你应该可以顺利访问和管理 CUPS 打印服务器了。
Ubuntu 22.04 上安装部署开源 CUPS 打印服务器:https://www.hao0564.com/4628.html