Cups-Browsed - unerwünschte Netzwerkdrucker
Achtung!
Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.
Hinweis:
Diese Howto-Anleitung wurde zuletzt von Bournless am 31.10.2020 mit Ubuntu 20.04, am 03.09.2019 mit Ubuntu 18.04 und Ubuntu 16.04, jeweils in der Desktopversion, erfolgreich getestet.
Problembeschreibung¶
Bei der Installation einer Ubuntu-Desktopversion werden automatisch auch die Dienste CUPS, Cups-Browsed 🇬🇧 und Avahi 🇩🇪 installiert. Dabei ist Avahi (vereinfacht gesagt) primär für das Auffinden und Verbinden von weiteren Clients, wie zum Beispiel PCs, Drucker, usw., in einem LAN 🇩🇪 zuständig.
Was auf der einen Seite sehr komfortabel ist, kann aber leider auch lästig werden, da Avahi und Cups-Browsed ungefragt versuchen PrintQueues (Druckerwarteschlangen) 🇩🇪 aller erreichbaren Printserver 🇩🇪 (Drucker-Server) eines LAN einzurichten. Insbesondere, wenn man mit einem größerer LAN (z.B Universitäts-Intranet) verbunden ist, wird es sehr schnell unübersichtlich, da plötzlich sehr viele "unerwünschte" Drucker auf dem eigenen Ubuntu-System erscheinen.
Wenn man in den diversen Foren nach Lösungen für dieses Problem sucht, findet man meist nur Tipps und Anleitungen, die lezten Endes immer auf das Deaktivieren oder Deinstallieren dieser Dienste hinauslaufen.
Ziel¶
Dieses Howto wird an Hand von Szenarien Lösungswege als Workaround aufzeigen, um diese Dienste individuell zu konfigurieren, statt sie gleich zu deaktivieren oder gar zu deinstallieren.
Beispielumgebung¶
eigenes LAN/WLAN (192.168.178.0/24)
UBU-01 (IP: 192.168.178.20)
UBU-02 (IP: 192.168.178.5) mit zwei freigegebenen Druckern (DRK01 und DRK02)
UBU-03 (IP: 192.168.178.8) mit einem freigegebenen Drucker (DRK05)
Ergebnis: Auf UBU-01 werden alle freigegebenen Drucker (DRK01, DRK02 und DRK05) automatisch zur Verfügung gestellt.
Szenario 1¶
Anforderung: Auf UBU-01 soll keiner der freigegebenen Drucker zur Verfügung stehen.
Lösung: Die bisher unveränderte Datei /etc/cups/cups-browsed.conf wird (am Ende) um folgende Zeile ergänzt:
BrowseFilter name
Hinweis:
Damit werden nur Printserver oder Druckernamen berücksichtigt, die keine Bezeichnung oder keine IP haben. Da dies aber nicht möglich ist, verläuft die Suche in's Leere!
Abschließend wird CUPS mit
sudo systemctl restart cups
neu gestartet.
Damit sollte für 90% aller normalen Ubuntu-User das Problem erledigt sein!
Trotzdem kann ein abschließender Blick auf den Abschnitt GTK+-basierende-Programme sehr hilfreich sein.
Szenario 2¶
Anforderung: Auf UBU-01 soll nur DRK05 von UBU-03 zur Verfügung stehen.
Lösung: Die bisher unveränderte Datei /etc/cups/cups-browsed.conf (am Ende) um folgende Zeilen ergänzen:
BrowseOrder Allow,Deny BrowseAllow 192.168.178.8
Abschließend wird CUPS mit
sudo systemctl restart cups
neu gestartet.
Szenario 3¶
Anforderung: Auf UBU-01 soll DRK05 von UBU-03 und nur DRK01 von UBU-02 zur Verfügung stehen.
Lösung: Die bisher unveränderte Datei /etc/cups/cups-browsed.conf (am Ende) um folgende Zeilen ergänzen:
BrowseOrder Allow,Deny BrowseAllow 192.168.178.8 BrowseAllow 192.168.178.5 BrowseFilter name 05|01
Hinweis:
Ohne die Zeile "BrowseFilter name" würden beide Drucker (DRK01 und DRK02) von UBU-02 zur Verfügung gestellt werden!
Abschließend wird CUPS mit
sudo systemctl restart cups
neu gestartet.
Szenario 4¶
UBU-01 (mit den Änderungen aus Szenario 3) befindet sich auch mal in einem fremden Subnetz (10.0.0.0/8). In diesem Subnetz gibt es unter anderem auch einen Host UBU-99 (IP: 10.0.0.120), mit einem freigegebenen Drucker (DRK63).
Ist-Zustand: Auf UBU-01 wird kein freigegebenen Drucker aus dem Subnetz 10.0.0.0/8 zur Verfügung gestellt, da dies ja bereits durch die geänderte cups-browsed.conf verhindert wird.
Anforderung: Auf UBU-01 soll DRK63 von UBU-99 zur Verfügung stehen.
Lösung: Man modifiziert die bereits geänderte Datei /etc/cups/cups-browsed.conf wie folgt:
BrowseOrder Allow,Deny BrowseAllow 192.168.178.8 BrowseAllow 192.168.178.5 BrowseAllow 10.0.0.120 BrowseFilter name 05|01|63
Abschließend wird CUPS mit
sudo systemctl restart cups
neu gestartet.
GTK+ basierende Programme¶
Leider ignorieren viele auf GTK+ basierenden Programme (Firefox, Thunderbird, Gimp, usw.) bisher die Einstellungen von Cups bzw. Cups-Browsed und benutzen einen eigenen Print-Dialog, der direkt mit Avahi zusammen arbeitet. Selbst das Anpassen der Datei /etc/gtk-3.0/settings.ini zeigt keinen sichtbaren Erfolg. Das hat zur Folge, dass in diesen Programmen trotzdem alle unerwünschten Netzwerkdrucker zur Verfügung gestellt werden.
Die meisten neueren Drucker oder Multifunktionsgeräte ("Netzwerkdrucker") verfügen bereits über eigene Printserver, die zudem auch über den (aktivierten) Dienst Bonjour erreichbar sind und erzeugen im Printdialog von GTK+ basierenden Programmen sogenannte "Phantom-Drucker".
Um auch das zu verhindern, bieten sich folgende Workarounds an:
Workaround 1: Lösung per PPA (einer Fremdquelle) von Roman Shipovskij.
Gültig für: Ubuntu 16.04 und 18.04, jeweils in der Desktopversion.
Adresszeile zum Hinzufügen des PPAs:
ppa:roman-shipovskij/gtk+3.0-withoutavahiprinters
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams roman-shipovskij zu entnehmen.
Vereinfacht gesagt:
sudo add-apt-repository ppa:roman-shipovskij/gtk+3.0-withoutavahiprinters sudo apt update sudo apt upgrade
Wenn man keine PPAs auf seinem System zulassen/einbinden kann oder möchte, kann man alternativ die zwei folgenden Workarounds anwenden.
Workaround 2: Bonjour im "Netzwerkdrucker" deaktivieren.
Gültig für: Ubuntu 16.04, 18.04 und 20.04, jeweils in der Desktopversion.
Bedingung: Ein administrativer Zugriff auf den "Netzwerkdrucker" muss möglich sein.
Hinweis: Der "Netzwerkdrucker" sollte sich nicht im Standy-Modus befinden.
Info: Durch das Deaktivieren von Bonjour werden auch AirPrint, AirScan und IPP-Everywhere deaktiviert.
Man ruft das WEB-UI des "Netzwerkdruckers" per IP-Adresse/Nodename/Hostname oder FQDN auf und deaktiviert dort den Dienst Bonjour.
Tipp: Die aktuelle IP-Adresse und den Hostname kann man sich wie folgt anzeigen lasssen:
avahi-browse -rt _ipp._tcp | egrep "hostname|address|IP" | egrep =
Workaround 3: Avahi umlenken (Empfehlung des Autors dieses HowTo).
Gültig für: Ubuntu 16.04, 18.04 und 20.04, jeweils in der Desktopversion.
Bedingung: keine weitere Bedingung.
Wenn es nur um die Vermeidung eines sogenannten "Phantom-Drucker" auf dem eigenen Ubuntu-PC System geht und man vorher erfolgreich die Treiber vom jeweiligen Hersteller -unter der Angabe der Drucker-IP- installiert hat, reichen folgende Schritte:
sudoedit /etc/avahi/avahi-daemon.conf
Im Abschnitt [server], die Zeile
#allow-interfaces=eth0
in
allow-interfaces=eth9
ändern.
Info: Weder Bonjour auf dem "Netzwerkdrucker", noch Avahi auf dem eigenen Ubuntu-PC werden dadurch deaktiviert, sondern nur so konfiguriert, dass sie sich nicht mehr automatisch sehen/erkennen können.
Die Änderungen an der Datei speichern und das System einmal neu starten lassen.
Danach nutzen auch die GTK+ basierenden Programme die gewünschten Vorgaben.
Links¶
Howto-Liste - Übersicht aller Howto-Artikel