GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Einrichten des CUPS-Druckservers auf Ubuntu (Bonjour, IPP, Samba, AirPrint)

Dieses Tutorial zeigt Ihnen, wie Sie einen an einen Ubuntu-Computer angeschlossenen Drucker mit Windows-, macOS- und iOS-Clients im selben Netzwerk teilen. BECHER (Common Unix Printing System) ist das Standarddrucksystem unter Linux, FreeBSD und macOS. Ihre Linux-Desktop-Umgebung verfügt möglicherweise über ein spezielles Dienstprogramm zur Druckerkonfiguration, aber alle verwenden CUPS im Hintergrund.

CUPS-Drucker können über mehrere Protokolle im Netzwerk gemeinsam genutzt werden, darunter:

  • Bonjour + IPP :Bonjour, auch bekannt als mDNS/DNS-SD (Multicast DNS/DNS Service Discovery), ermöglicht es einem Computer, Dienste im lokalen Netzwerk zu finden. IPP (Internet Printing Protocol) ist das Transportprotokoll.
  • KMU :auch bekannt als Samba, wird hauptsächlich verwendet, um Dateien und Drucker mit Windows-Clients zu teilen.
  • AirPrint :Ermöglicht iPhone-, iPad- und macOS-Clients das Drucken über WLAN.

Jedes Protokoll hat seine Vor- und Nachteile. Zuerst zeige ich Ihnen, wie Sie CUPS installieren und konfigurieren. Dann lernen wir, wie man den CUPS-Drucker über die oben genannten 3 Protokolle teilt. Ich empfehle, alle 3 Methoden zu verwenden, um Ihren Drucker freizugeben, damit Benutzer mit minimalem Aufwand einen verfügbaren Drucker im lokalen Netzwerk finden können.

Schritt 1:CUPS auf Ubuntu installieren und konfigurieren

Ubuntu Desktop Edition hat CUPS vorinstalliert. Wenn Sie Ubuntu Server Edition verwenden, müssen Sie den folgenden Befehl ausführen, um CUPS aus dem standardmäßigen Ubuntu-Repository zu installieren.

sudo apt install cups

Starten Sie dann CUPS.

sudo systemctl start cups

Autostart beim Booten aktivieren.

sudo systemctl enable cups

Überprüfen Sie den Status:

systemctl status cups

Beispielausgabe:

Bearbeiten Sie als Nächstes die CUPS-Hauptkonfigurationsdatei mit einem Befehlszeilen-Texteditor wie Nano.

sudo nano /etc/cups/cupsd.conf

Zuerst müssen wir freigegebene Drucker im lokalen Netzwerk anzeigen. Suchen Sie die folgende Zeile.

Browsing Off

Ändern Sie es in

Browsing On

damit andere Computer im selben Netzwerk Drucker sehen können, die mit Ihrem Ubuntu-Computer verbunden sind.

Standardmäßig ist die CUPS-Weboberfläche nur unter localhost:631 verfügbar . Wenn Sie Ubuntu Server Edition ausführen, möchten Sie vielleicht auch, dass CUPS auf allen verfügbaren Netzwerkschnittstellen lauscht, damit Sie von anderen Computern aus auf die CUPS-Webschnittstelle zugreifen können. Suchen Sie die folgende Zeile.

Listen localhost:631

Ändern Sie es in

Port 631

CUPS wird also auf allen Netzwerkschnittstellen lauschen. Suchen Sie dann die folgenden Zeilen.

<Location />
  Order allow,deny
</Location>

Die obige Konfiguration ermöglicht den Zugriff auf die CUPS-Weboberfläche nur von localhost. Um den Zugriff von anderen Computern im selben Netzwerk zuzulassen, fügen Sie Allow @LOCAL hinzu zur Konfiguration wie unten.

<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

Fügen Sie es auch für /admin hinzu Verzeichnis, um die Fernverwaltung über das lokale Netzwerk zu ermöglichen.

<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>

Sie können auch eine bestimmte IP-Adresse wie folgt zulassen:

<Location />
  Order allow,deny
  Allow 192.168.0.101
</Location>

Speichern und schließen Sie die Datei. Starten Sie dann CUPS neu, damit die Änderungen wirksam werden.

sudo systemctl restart cups

Beachten Sie, dass Sie, wenn Sie die UFW-Firewall auf Ubuntu aktiviert haben, Clients im selben Netzwerk erlauben müssen, auf Port 631 auf Ihrer Ubuntu-Box zuzugreifen. Zum Beispiel verwendet mein privates Netzwerk den Netzwerkbereich 192.168.0.0 ~192.168.0.255, also führe ich den folgenden Befehl aus.

sudo ufw allow in from 192.168.0.0/24 to any port 631

Die CUPS-Weboberfläche ist unter https://IP-address-of-Ubuntu-box:631 verfügbar . Wir müssen das Webinterface in diesem Artikel nicht verwenden, aber wenn Sie es verwenden möchten, müssen Sie Ihr Benutzerkonto zum lpadmin hinzufügen Gruppe, um Änderungen an der CUPS-Weboberfläche vorzunehmen.

sudo adduser your_username lpadmin

Schritt 2:Treiber für Ihren Drucker unter Ubuntu installieren

Sie müssen den Treiber auf Ubuntu installieren, damit es den Drucker erkennen und verwenden kann. Wenn Sie einen HP-Drucker haben, können Sie den Treiber einfach mit dem folgenden Befehl installieren.

sudo apt install hplip

Ich empfehle auch die Installation des printer-driver-gutenprint Paket, das CUPS-Treiber für Canon, Epson, HP und kompatible Drucker bereitstellt.

sudo apt install printer-driver-gutenprint

Wenn Sie andere Drucker haben, finden Sie Treiber auf openprinting.org.

Nach der Installation des Treibers müssen Sie den Drucker möglicherweise erneut an den USB-Anschluss Ihres Ubuntu-Computers anschließen. Um zu testen, ob der Treiber korrekt funktioniert, können Sie unter Ubuntu eine Textdatei erstellen:

echo "LinuxBabe is awesome!" > file.txt

Führen Sie dann den folgenden Befehl aus, um diese Textdatei über die Befehlszeile zu drucken.

lp file.txt

Dies ist eine sehr rudimentäre Methode, also machen Sie sich jetzt keine Sorgen um die Druckqualität.

Schritt 3:CUPS-Drucker über Bonjour/IPP-Protokoll freigeben

Avahi-Daemon installieren

CUPS kann seine Präsenz im Netzwerk über das mDNS- (Multicast-DNS) und das DNS-SD-Protokoll (DNS Service Discovery), das auch als Bonjour bekannt ist, bekannt geben. Dazu müssen Sie avahi-daemon installieren und ausführen , ein dem Apple Bonjour-Dienst ähnlicher Dienst, der es Computern ermöglicht, freigegebene Geräte und Dienste im lokalen Netzwerk automatisch zu erkennen.

sudo apt install avahi-daemon

Starten Sie den Avahi-Daemon.

sudo systemctl start avahi-daemon

Autostart beim Booten aktivieren.

sudo systemctl enable avahi-daemon

Avahi-Daemon lauscht auf UDP-Port 5353. Öffnen Sie ihn in der Firewall.

sudo ufw allow 5353/udp

Treiberloses IPP-Drucken

Bonjour wird verwendet, um den Drucker im lokalen Netzwerk anzukündigen. Damit Clients und der CUPS-Server miteinander kommunizieren können, wird IPP (Internet Printing Protocol) benötigt. Der Vorteil von IPP besteht darin, dass Clients den freigegebenen Drucker verwenden können, ohne einen Treiber auf ihren eigenen Geräten zu installieren. CUPS unterstützt IPP standardmäßig, sodass Sie nichts weiter tun müssen, um CUPS-Drucker über IPP freizugeben.

Schritt 4:Drucker auf Client-Computern hinzufügen

macOS- und Linux-Clients

Da macOS und die meisten Linux-Desktop-Distributionen CUPS als Standarddrucksystem installiert haben, können macOS- und Linux-Benutzer im selben Netzwerk automatisch den Drucker verwenden, sobald Sie die Druckerfreigabe über Bonjour/IPP auf der Ubuntu-Box aktiviert haben. Wenn sie in Anwendungen (Textverarbeitungsprogramme, E-Mail-Programme, Bildbearbeitungsprogramme und Webbrowser) auf die Druckoption klicken, steht der Drucker automatisch zur Verfügung. Sie müssen den Drucker nicht explizit hinzufügen. Es ist magisch.

Wenn Ihr Linux-Computer den Drucker nicht finden kann, verfügt Ihr System möglicherweise nicht über den ippfind Befehl. Führen Sie den folgenden Befehl aus, um es auf einer Debian-basierten Linux-Distribution zu installieren.

sudo apt install cups-ipp-utils

Führen Sie unter CentOS 8 den folgenden Befehl aus.

sudo dnf install cups-ipptool

Starten Sie dann CUPS auf dem Client-Computer neu.

sudo systemctl restart cups

Windows

Windows 10 wird mit einem IPP-Client ausgeliefert. Geben Sie Drucker ein in der Suchleiste unten links und öffnen Sie Drucker &Scanner . Klicken Sie dann auf Drucker oder Scanner hinzufügen Taste. Es scannt verfügbare Drucker im lokalen Netzwerk.

Wie Sie sehen können, hat es meinen HP Deskjet-Drucker gefunden. Wählen Sie den gefundenen Drucker aus und klicken Sie auf Gerät hinzufügen . Es wird in Kürze zur Druckerliste hinzugefügt.

Wenn Sie eine andere Windows-Version verwenden, die auf diese Weise keinen Drucker hinzufügen kann, können Sie die Bonjour-Druckdienste installieren. Starten Sie nach der Installation den Bonjour-Druckerassistenten. Es scannt automatisch verfügbare Drucker im lokalen Netzwerk. Wie Sie auf dem Screenshot sehen können, hat es meinen HP-Drucker gefunden.

Klicken Sie auf Weiter, dann müssen Sie einen Treiber für diesen Drucker auswählen. Sie können den Microsoft IPP-Klassentreiber auswählen, der standardmäßig auf dem System installiert ist.

Klicken Sie auf Weiter und der Drucker wird Ihrem Windows-System hinzugefügt.

Drucker manuell unter Linux hinzufügen

Wenn Sie den Drucker aus irgendeinem Grund nicht sehen, können Sie manuell einen hinzufügen. Um einen von Bonjour freigegebenen Drucker unter Desktop-Linux hinzuzufügen, durchsuchen Sie Ihre Systemeinstellungen oder das Anwendungsmenü nach dem Dienstprogramm zur Druckerkonfiguration. Klicken Sie auf Hinzufügen Schaltfläche, um einen neuen Drucker hinzuzufügen.

Klicken Sie dann auf Netzwerkdrucker und es würde automatisch verfügbare Drucker im lokalen Netzwerk scannen. Wie Sie sehen können, hat es meinen HP Deskjet-Drucker gefunden. Klicken Sie auf Weiter Schaltfläche.

Anschließend können Sie dem Drucker einen Namen und eine Beschreibung geben. Ich übernehme einfach die Standardwerte. Klicken Sie auf Anwenden und Sie sind fertig.

Drucker unter macOS manuell hinzufügen

Um einen von Bonjour freigegebenen Drucker unter macOS hinzuzufügen, gehen Sie zu den Systemeinstellungen -> Drucker &Scanner . Klicken Sie auf die Plus-Schaltfläche (+), um einen Drucker hinzuzufügen.

Es scannt automatisch verfügbare Drucker im lokalen Netzwerk. Wie Sie sehen können, hat es meinen HP Deskjet-Drucker gefunden.

Klicken Sie auf Hinzufügen klicken und es erscheint in der Druckerliste.

Schritt 5:CUPS-Drucker über Samba freigeben

Samba ist eine kostenlose und quelloffene SMB/CIFS-Protokollimplementierung für Unix und Linux, die die Datei- und Druckfreigabe zwischen Unix/Linux- und Windows-Rechnern in einem lokalen Netzwerk ermöglicht. Es wird hauptsächlich verwendet, um Dateien und Drucker mit Windows-Clients zu teilen.

Um Samba auf Ubuntu zu installieren, führen Sie einfach den folgenden Befehl im Terminal aus.

sudo apt install samba samba-common-bin

Um zu überprüfen, ob der Samba-Dienst läuft, führen Sie die folgenden Befehle aus.

systemctl status smbd

systemctl status nmbd

Geben Sie die folgenden Befehle ein, um diese beiden Dienste zu starten:

sudo systemctl start smbd

sudo systemctl start nmbd

Bearbeiten Sie dann die Hauptkonfigurationsdatei.

sudo nano /etc/samba/smb.conf

Es wird empfohlen, spoolssd zu aktivieren Dienst beim Freigeben des Druckers. Dadurch wird Samba effizienter, wenn es viele Druckaufträge gibt. Fügen Sie einfach die folgenden beiden Zeilen im [global] hinzu Abschnitt, um den spoolssd zu aktivieren Dienst.

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

Als nächstes gehen Sie zum Ende der Datei und Sie sehen den [printers] Sektion. Im Nano-Texteditor können Sie zum Ende einer Datei springen, indem Sie Ctrl+W drücken , und drücken Sie dann Ctrl+V . Suchen Sie die folgenden zwei Zeilen.

browseable = no
guest ok = no

Ändern Sie sie in

browseable = yes
guest ok = yes

Speichern und schließen Sie die Datei. Starten Sie dann Samba neu.

sudo systemctl restart smbd nmbd

Hinzufügen eines von Samba freigegebenen Druckers in Windows.

Öffnen Sie den Datei-Explorer, geben Sie die IP-Adresse des Ubuntu-Computers in die Adressleiste ein, z. B. \\192.168.0.110 . Der Drucker sollte nun aufgelistet sein.

Doppelklicken Sie auf den Drucker, um ihn Ihrem Windows-System hinzuzufügen. Klicken Sie dann auf die Schaltfläche OK, um einen zu installierenden Treiber auszuwählen. Nach der Installation des Treibers wird der Drucker Ihrem Windows-System hinzugefügt.

Schritt 6:CUPS-Drucker über AirPrint für iOS-Clients freigeben

Mit AirPrint können iPhone-, iPad- und macOS-Clients über Wi-Fi drucken, ohne Treibersoftware auf den Clientgeräten zu installieren. CUPS unterstützt AirPrint, aber avahi-daemon kündigt den AirPrint-Dienst standardmäßig nicht im lokalen Netzwerk an. Wir müssen einen .service erstellen Datei in /etc/avahi/services/ Verzeichnis für den Drucker mit einem Python-Skript mit dem folgenden Befehl. Das Modell meines Druckers ist die DeskJet 2130-Serie. Ersetzen Sie es durch Ihren eigenen Modellnamen.

sudo nano /etc/avahi/services/AirPrint-DeskJet-2130-series.service

Fügen Sie der Datei die folgenden Zeilen hinzu.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">AirPrint DeskJet-2130-series @ %h</name>
  <service>
    <type>_ipp._tcp</type>
    <subtype>_universal._sub._ipp._tcp</subtype>
    <port>631</port>
    <txt-record>txtvers=1</txt-record>
    <txt-record>qtotal=1</txt-record>
    <txt-record>Transparent=T</txt-record>
    <txt-record>URF=none</txt-record>
    <txt-record>rp=printers/DeskJet-2130-series</txt-record>
    <txt-record>note=HP DeskJet 2130 series</txt-record>
    <txt-record>product=(GPL Ghostscript)</txt-record>
    <txt-record>printer-state=3</txt-record>
    <txt-record>printer-type=0x2900c</txt-record>
    <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-pdf</txt-record>
  </service>
</service-group>

Speichern und schließen Sie die Datei. Starten Sie den Avahi-Daemon neu.

sudo systemctl restart avahi-daemon

Jetzt sollten iOS- und macOS-Clients im selben Netzwerk Ihren Drucker verwenden können. Der folgende Screenshot zeigt, dass mein iPhone erfolgreich einen AirPrint-Drucker gefunden hat.


Ubuntu
  1. So richten Sie den Squid-Proxyserver unter Ubuntu 18.04 ein und installieren ihn

  2. So richten Sie einen OpenVPN-Server unter Ubuntu 18.04 ein

  3. So richten Sie einen Ubuntu/Debian LAMP-Server ein

  4. So richten Sie Nginx als Reverse Proxy unter Ubuntu 20.04 ein

  5. 18.04 Server ohne Netzwerkverbindung installieren?

So richten Sie den E-Mail-Server mit Plesk unter Ubuntu 20.04 ein

So richten Sie den Prosody XMPP-Server unter Ubuntu 20.04 ein

Richten Sie den autoritativen BIND-DNS-Server unter Ubuntu 18.04, 16.04 ein

OSM Nominatim Geocoding Server auf Ubuntu 20.04 einrichten

Richten Sie den ungebundenen DNS-Resolver auf dem Ubuntu 20.04-Server ein

So installieren Sie den CUPS-Druckserver unter Ubuntu 20.04 LTS