如何禁用自动远程打印机安装?

To *_* Do 100 configuration printing automatic 13.04

在 Raring 中,每次我连接到网络时,Cups 都会自动安装网络中的所有打印机,有些甚至不止一次。

此外,我时不时地将 USB 打印机连接到笔记本电脑。即使已经配置了打印机,也会将另一台打印机添加到列表中。

我希望禁用此功能并仅允许手动安装打印机。我该怎么做?

小智 101

我刚刚发现了一个可能是解决这个烂摊子的最佳解决方案。有一种名为“cups-browsed”的服务,它显然负责在网络上找到它可以找到的所有打印机并为您安装它们(哎呀-谢谢--不)。由于这是一个 Upstart/Systemd 作业,您可以通过以下方式停止该服务:

对于 Ubuntu 版本 15.04+(使用 systemd)

sudo systemctl stop cups-browsed
Run Code Online (Sandbox Code Playgroud)

其次是:

sudo systemctl disable cups-browsed
Run Code Online (Sandbox Code Playgroud)

如果您愿意,您仍然可以手动启动/停止服务:

sudo systemctl start cups-browsed
sudo systemctl stop cups-browsed
Run Code Online (Sandbox Code Playgroud)

对于 15.04 之前的 Ubuntu 版本(使用 upstart)

sudo service cups-browsed stop
Run Code Online (Sandbox Code Playgroud)

更好的是,您可以通过向/etc/init包含单个单词的简单文本文件添加一个简单的文本文件来防止服务再次启动manual。该文件必须命名 cups-browsed.override

所以,只需启动 gedit

gksudo gedit /etc/init/cups-browsed.override
Run Code Online (Sandbox Code Playgroud)

放入manual第一行也是唯一的一行并保存文件。

在下一次重新启动时,服务将不会重新启动。但是,如果您已经停止了该服务,则无需重新启动。一旦你把这个文件放在 /etc/init 中,该服务就只能手动启动(如果你需要/想要它):

sudo service cups-browsed start
-or-
sudo service cups-browsed stop`
Run Code Online (Sandbox Code Playgroud)

我已经通过一次重启测试了这一点。打印仍然可以正常工作,到目前为止,我在重新启动后没有再安装数百台打印机。只显示我手动安装的那些。

  • Ubuntu 15.04 及更高版本(他们转移到 systemd):`sudo systemctl disable cups-browsed` (28认同)
  • 它不适用于 18.04 (4认同)
  • 20.04 不适合我 (4认同)
  • 确认在 20.04 上不起作用......这个烂摊子的可憎仍在继续。 (2认同)

小智 40

/etc/cups/cups-browsed.conf,设置指令:

BrowseProtocols none
Run Code Online (Sandbox Code Playgroud)

然后,运行service cups-browsed restartservice cups restart。除了您自己添加的打印机外,不应有任何打印机可见。

  • 该解决方案适用于 18.04 (2认同)

小智 14

如前所述,这现在是在客户端 cups 库(即 libcups.so,GNOME 和 KDE 应用程序链接的)中完成的,而不是在 cupsd 服务器中完成的。因此更改 cups 服务器中的“浏览”设置将不起作用。

$ ldd /usr/lib/x86_64-linux-gnu/libcups.so.2
...
libavahi-common.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3
libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3
...
Run Code Online (Sandbox Code Playgroud)

即使您关闭本地 cups 服务器,IE 这种行为(在“打印”对话框中显示远程打印机)也会发生。您可以通过关闭avahi服务来禁用它,但这将禁用所有与 zeroconf/mdns 相关的功能。

但是,至少有一种方法可以关闭 avahi 的大部分功能(包括将远程打印机添加到 CUPS 客户端),同时保留 DNS 功能(例如,在查找类型的foo.local主机名时):

编辑 /etc/avahi/avahi-daemon.conf 并在该[server]部分中添加enable-dbus=no然后重新启动 avahi-daemon 服务。

  • 为什么 `enable-dbus=no` 会阻止 avahi 发现打印机以及哪些其他 avahi 功能会受到此配置更改的影响? (2认同)
  • 我进行了此更改,它确实阻止了自动发现的打印机显示在打印机列表中,但是我的目标是使打印机对话框更快地出现(通常需要 5 到 10 秒)。这一更改使得打印机对话框需要更长的时间才能出现(时间足够长,以至于 Ubuntu 认为它没有响应而使对话框变暗)。唔。 (2认同)
  • 我通过“sing enable-dbus=no”产生了非常令人讨厌的副作用。每次我打开一些文件时,Libreoffice writer 都会停滞 30-40 秒。LO 尝试在打开涉及 avahi 的文件时找到打印机,但每次都会停滞 30 到 40 秒。新文件如果尚未打印则没有问题。每次我进入 LO 中的打印菜单或 Ubuntu 中的打印机配置菜单时也会出现延迟。在 18.04 和 20.04 进行了测试。我花了一年多的时间才发现与avahi中禁用dbus有关,所以我不建议使用这种方法。 (2认同)

小智 8

cups 客户端库现在还可以从 Avahi 获取网络打印机列表(它实现了称为 zeroconf 或 Bonjour 或 mdns 或 dns-sd 的各种协议)。在旧版本的 cups 中,这仅由 cups 服务器完成。

您可以使用如下 shell 命令查看网络上正在广播的内容 avahi-browse -a | grep Printer

您可以使用 禁用 avahi sudo service avahi-daemon stop,但这将停止所有基于 zeroconf 的设置,而不仅仅是打印机。


小智 6

我尝试了以上所有方法。修改 Cups 在基于 Ubuntu 20.4 的 Linux Mint 20 中不起作用。显然,Ubuntu 和 Mint 不再使用 Cups 进行打印机发现,而是现在使用 Avahi。我认为这是 Systemd 的事情。在 avahi-daemon.conf 中设置 enable-dbus=no 有点工作,但导致 LibreOffice 中的打印菜单需要很长时间(可能 20-30 秒)才能显示,因此不是一个好的解决方案。

但是,以下确实工作得很好:

sudo nano /etc/avahi/avahi-daemon.conf
Run Code Online (Sandbox Code Playgroud)

在那个文件中:

change “use-ip4=yes” to “use-ip4=no”

change “use-ip6=yes” to “use-ip6=no”
Run Code Online (Sandbox Code Playgroud)

现在,只有我手动添加的打印机才会显示在“打印机”控制面板 (Printers-localhost)、HPLIP 工具箱和 LibreOffice 中。


Sim*_*mon 5

要禁用它,只需打开终端Ctrl+ Alt+T并键入

 sudo cupsctl --no-remote-printers
Run Code Online (Sandbox Code Playgroud)

或编辑

 /etc/cups/cupsd.conf
Run Code Online (Sandbox Code Playgroud)

并设置

Browsing Off
Run Code Online (Sandbox Code Playgroud)

这里找到这个解决方案

一些较新的 Ubuntu(15.04 及更高版本)可能需要这个命令:

sudo cupsctl --no-share-printers
Run Code Online (Sandbox Code Playgroud)

  • 我仍然有这个问题,虽然我的 cupsd.conf 已经包含“浏览关闭”。运行 cupsctl 会导致以下错误:`cupsctl: Unknown option "--no-remote-printers" Usage: ...` (5认同)