GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurer le serveur d'impression CUPS sur Ubuntu (Bonjour, IPP, Samba, AirPrint)

Ce didacticiel vous montrera comment partager une imprimante connectée à un ordinateur Ubuntu avec des clients Windows, macOS et iOS sur le même réseau. TASSES (Common Unix Printing System) est le système d'impression par défaut sous Linux, FreeBSD et macOS. Votre environnement de bureau Linux peut avoir un utilitaire de configuration d'imprimante dédié, mais ils utilisent tous CUPS sous le capot.

L'imprimante CUPS peut être partagée sur le réseau à l'aide de plusieurs protocoles, notamment :

  • Bonjour + IPP :Bonjour, également connu sous le nom de mDNS/DNS-SD (découverte de service DNS/DNS multidiffusion), permet à un ordinateur de trouver des services sur le réseau local. IPP (Internet Printing Protocol) est le protocole de transport.
  • PME :alias Samba, principalement utilisé pour partager des fichiers et des imprimantes avec des clients Windows.
  • AirPrint  :permet aux clients iPhone, iPad et macOS d'imprimer via Wi-Fi.

Chaque protocole a ses avantages et ses inconvénients. Tout d'abord, je vais vous montrer comment installer et configurer CUPS. Ensuite, nous apprendrons à partager l'imprimante CUPS via les 3 protocoles ci-dessus. Je recommande d'utiliser les 3 méthodes pour partager votre imprimante, afin que les utilisateurs puissent trouver une imprimante disponible sur le réseau local avec un minimum d'effort.

Étape 1 :Installer et configurer CUPS sur Ubuntu

L'édition de bureau d'Ubuntu a CUPS pré-installé. Si vous utilisez l'édition serveur Ubuntu, vous devez exécuter la commande suivante pour installer CUPS à partir du référentiel Ubuntu par défaut.

sudo apt install cups

Ensuite, lancez CUPS.

sudo systemctl start cups

Activer le démarrage automatique au démarrage.

sudo systemctl enable cups

Vérifiez son état :

systemctl status cups

Exemple de sortie :

Ensuite, modifiez le fichier de configuration principal de CUPS avec un éditeur de texte en ligne de commande comme Nano.

sudo nano /etc/cups/cupsd.conf

Tout d'abord, nous devons afficher les imprimantes partagées sur le réseau local. Trouvez la ligne suivante.

Browsing Off

Changez-le en

Browsing On

afin que les autres ordinateurs du même réseau puissent voir les imprimantes connectées à votre ordinateur Ubuntu.

Par défaut, l'interface Web CUPS n'est disponible que sur localhost:631 . Si vous utilisez l'édition serveur d'Ubuntu, vous souhaiterez peut-être également que CUPS écoute sur toutes les interfaces réseau disponibles, afin de pouvoir accéder à l'interface Web de CUPS à partir d'autres ordinateurs. Trouvez la ligne suivante.

Listen localhost:631

Changez-le en

Port 631

Ainsi, CUPS écoutera sur toutes les interfaces réseau. Trouvez ensuite les lignes suivantes.

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

La configuration ci-dessus permet d'accéder à l'interface Web CUPS à partir de localhost uniquement. Pour autoriser l'accès à partir d'autres ordinateurs du même réseau, ajoutez Allow @LOCAL à la configuration comme ci-dessous.

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

Ajoutez-le également pour le /admin répertoire pour permettre l'administration à distance depuis le réseau local.

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

Vous pouvez également autoriser une adresse IP particulière comme suit :

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

Enregistrez et fermez le fichier. Redémarrez ensuite CUPS pour que les modifications prennent effet.

sudo systemctl restart cups

Notez que si vous avez activé le pare-feu UFW sur Ubuntu, vous devez autoriser les clients du même réseau à accéder au port 631 sur votre boîte Ubuntu. Par exemple, mon réseau privé utilise la plage réseau 192.168.0.0 ~192.168.0.255, j'exécute donc la commande suivante.

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

L'interface Web de CUPS est disponible sur https://IP-address-of-Ubuntu-box:631 . Nous n'avons pas besoin d'utiliser l'interface Web dans cet article, mais si vous souhaitez l'utiliser, vous devez ajouter votre compte utilisateur à lpadmin groupe afin d'apporter des modifications dans l'interface Web de CUPS.

sudo adduser your_username lpadmin

Étape 2 :Installez le pilote de votre imprimante sur Ubuntu

Vous devez installer le pilote sur Ubuntu, afin qu'il puisse reconnaître et utiliser l'imprimante. Si vous avez une imprimante HP, vous pouvez facilement installer le pilote avec la commande suivante.

sudo apt install hplip

Je recommande également d'installer le printer-driver-gutenprint package, qui fournit les pilotes CUPS pour les imprimantes Canon, Epson, HP et compatibles.

sudo apt install printer-driver-gutenprint

Si vous avez d'autres imprimantes, vous pouvez trouver des pilotes sur openprinting.org.

Après avoir installé le pilote, vous devrez peut-être reconnecter l'imprimante au port USB de votre ordinateur Ubuntu. Pour tester si le pilote fonctionne correctement, vous pouvez créer un fichier texte sur Ubuntu :

echo "LinuxBabe is awesome!" > file.txt

Exécutez ensuite la commande suivante pour imprimer ce fichier texte à partir de la ligne de commande.

lp file.txt

Il s'agit d'une méthode très rudimentaire, alors ne vous souciez plus de la qualité d'impression maintenant.

Étape 3 :Partager l'imprimante CUPS via le protocole Bonjour/IPP

Installation du démon Avahi

CUPS peut annoncer sa présence sur le réseau via le protocole mDNS (DNS multicast) et DNS-SD (DNS Service Discovery), également connu sous le nom de Bonjour. Pour ce faire, vous devez installer et exécuter avahi-daemon , qui est un service similaire au service Apple Bonjour qui permet aux ordinateurs de découvrir automatiquement les appareils et services partagés sur le réseau local.

sudo apt install avahi-daemon

Démarrez avahi-daemon.

sudo systemctl start avahi-daemon

Activer le démarrage automatique au démarrage.

sudo systemctl enable avahi-daemon

Avahi-daemon écoute sur le port UDP 5353. Ouvrez-le dans le pare-feu.

sudo ufw allow 5353/udp

Impression sans pilote IPP

Bonjour est utilisé pour annoncer l'imprimante sur le réseau local. Pour que les clients et le serveur CUPS communiquent entre eux, IPP (Internet Printing Protocol) est nécessaire. L'avantage d'IPP est que les clients peuvent utiliser l'imprimante partagée sans installer de pilote sur leurs propres appareils. CUPS prend en charge IPP prêt à l'emploi, vous n'avez donc rien d'autre à faire pour partager l'imprimante CUPS via IPP.

Étape 4 :Ajouter une imprimante sur les ordinateurs clients

Clients macOS et Linux

Étant donné que macOS et la plupart des distributions de bureau Linux ont CUPS installé comme système d'impression par défaut, une fois que vous avez activé le partage d'imprimante via Bonjour/IPP sur la boîte Ubuntu, les utilisateurs macOS et Linux du même réseau peuvent automatiquement utiliser l'imprimante. Lorsqu'ils cliquent sur l'option d'impression dans les applications (traitements de texte, lecteurs de messagerie, éditeurs de photos et navigateurs Web), l'imprimante est automatiquement disponible. Ils n'ont pas besoin d'ajouter explicitement l'imprimante. C'est magique.

Si votre ordinateur Linux ne trouve pas l'imprimante, il est possible que votre système n'ait pas le ippfind commande. Exécutez la commande suivante pour l'installer sur la distribution Linux basée sur Debian.

sudo apt install cups-ipp-utils

Sur CentOS 8, exécutez la commande suivante.

sudo dnf install cups-ipptool

Redémarrez ensuite CUPS sur l'ordinateur client.

sudo systemctl restart cups

Windows

Windows 10 est livré avec un client IPP. Tapez imprimante dans la barre de recherche en bas à gauche et ouvrez Imprimantes et scanners . Cliquez ensuite sur Ajouter une imprimante ou un scanner bouton. Il analysera les imprimantes disponibles sur le réseau local.

Comme vous pouvez le voir, il a trouvé mon imprimante HP Deskjet. Sélectionnez l'imprimante trouvée et cliquez sur Ajouter un appareil . Elle sera ajoutée à la liste des imprimantes dans quelques instants.

Si vous utilisez une version différente de Windows qui ne peut pas ajouter d'imprimante de cette façon, vous pouvez installer les services d'impression Bonjour. Une fois installé, lancez l'assistant d'imprimante Bonjour. Il analysera automatiquement les imprimantes disponibles sur le réseau local. Comme vous pouvez le voir sur la capture d'écran, mon imprimante HP a été détectée.

Cliquez sur suivant, puis vous devez choisir un pilote pour cette imprimante. Vous pouvez choisir le pilote de classe Microsoft IPP, qui est installé sur le système par défaut.

Cliquez sur Suivant et l'imprimante sera ajoutée à votre système Windows.

Ajout manuel d'une imprimante sous Linux

Si, pour une raison quelconque, vous ne voyez pas l'imprimante, vous pouvez en ajouter une manuellement. Pour ajouter une imprimante partagée Bonjour sur Linux de bureau, recherchez vos paramètres système ou le menu de l'application pour l'utilitaire de configuration de l'imprimante. Cliquez sur Ajouter bouton pour ajouter une nouvelle imprimante.

Cliquez ensuite sur Imprimante réseau et il analysera automatiquement les imprimantes disponibles sur le réseau local. Comme vous pouvez le voir, il a trouvé mon imprimante HP Deskjet. Cliquez sur Suivant bouton.

Ensuite, vous pouvez donner un nom et une description à l'imprimante. J'accepte simplement les valeurs par défaut. Cliquez sur Appliquer et vous avez terminé.

Ajout manuel d'une imprimante sur macOS

Pour ajouter une imprimante partagée Bonjour sur macOS, accédez aux préférences système -> Imprimantes et scanners . Cliquez sur le bouton plus (+) pour ajouter une imprimante.

Il analyserait automatiquement les imprimantes disponibles sur le réseau local. Comme vous pouvez le voir, il a trouvé mon imprimante HP Deskjet.

Cliquez sur Ajouter bouton et il apparaîtra dans la liste des imprimantes.

Étape 5 :Partager l'imprimante CUPS via Samba

Samba est une implémentation de protocole SMB/CIFS gratuite et open-source pour Unix et Linux qui permet le partage de fichiers et d'impressions entre des machines Unix/Linux et Windows dans un réseau local. Il est principalement utilisé pour partager des fichiers et une imprimante avec des clients Windows.

Pour installer Samba sur Ubuntu, exécutez simplement la commande suivante dans le terminal.

sudo apt install samba samba-common-bin

Pour vérifier si le service Samba est en cours d'exécution, exécutez les commandes suivantes.

systemctl status smbd

systemctl status nmbd

Pour démarrer ces deux services, lancez les commandes suivantes :

sudo systemctl start smbd

sudo systemctl start nmbd

Modifiez ensuite le fichier de configuration principal.

sudo nano /etc/samba/smb.conf

Il est recommandé d'activer le spoolssd service lors du partage de l'imprimante. Cela rendra Samba plus efficace lorsqu'il y a beaucoup de travaux d'impression. Ajoutez simplement les deux lignes suivantes dans le [global] section pour activer le spoolssd services.

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

Ensuite, allez à la fin du fichier et vous verrez le [printers] section. Dans l'éditeur de texte Nano, vous pouvez sauter à la fin d'un fichier en appuyant sur Ctrl+W , puis en appuyant sur Ctrl+V . Trouvez les deux lignes suivantes.

browseable = no
guest ok = no

Changez-les en

browseable = yes
guest ok = yes

Enregistrez et fermez le fichier. Redémarrez ensuite Samba.

sudo systemctl restart smbd nmbd

Ajout d'une imprimante partagée Samba sous Windows.

Ouvrez l'explorateur de fichiers, entrez l'adresse IP de l'ordinateur Ubuntu dans la barre d'adresse comme \\192.168.0.110 . L'imprimante devrait maintenant être répertoriée.

Double-cliquez sur l'imprimante pour l'ajouter à votre système Windows. Cliquez ensuite sur le bouton OK pour sélectionner un pilote à installer. Après avoir installé le pilote, l'imprimante sera ajoutée à votre système Windows.

Étape 6 :Partager l'imprimante CUPS avec des clients iOS via AirPrint

AirPrint permet aux clients iPhone, iPad et macOS d'imprimer via Wi-Fi sans installer de pilote sur les appareils clients. CUPS prend en charge AirPrint, mais avahi-daemon par défaut n'annonce pas le service AirPrint sur le réseau local. Nous devons créer un .service fichier dans le /etc/avahi/services/ répertoire de l'imprimante avec un script Python avec la commande suivante. Le modèle de mon imprimante est la série DeskJet 2130. Remplacez-le par votre propre nom de modèle.

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

Ajoutez les lignes suivantes dans le fichier.

<?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>

Enregistrez et fermez le fichier. Redémarrez Avahi-daemon.

sudo systemctl restart avahi-daemon

Désormais, les clients iOS et macOS du même réseau devraient pouvoir utiliser votre imprimante. La capture d'écran suivante montre que mon iPhone a réussi à trouver une imprimante AirPrint.


Ubuntu
  1. Comment configurer et installer le serveur proxy Squid sur Ubuntu 18.04

  2. Comment configurer un serveur OpenVPN sur Ubuntu 18.04

  3. Comment configurer un serveur Ubuntu/Debian LAMP

  4. Comment configurer Nginx en tant que proxy inverse sur Ubuntu 20.04

  5. Installer le serveur 18.04 sans connexion réseau ?

Comment configurer un serveur de messagerie avec Plesk sur Ubuntu 20.04

Comment configurer le serveur Prosody XMPP sur Ubuntu 20.04

Configurer le serveur DNS faisant autorité BIND sur Ubuntu 18.04, 16.04

Configurer le serveur de géocodage OSM Nominatim sur Ubuntu 20.04

Configurer un résolveur DNS non lié sur le serveur Ubuntu 20.04

Comment installer le serveur d'impression CUPS sur Ubuntu 20.04 LTS