Recherche de site Web

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. CUPS (Common Unix Printing System) est le système d'impression par défaut sous Linux, FreeBSD et macOS. Votre environnement de bureau Linux dispose peut-être d'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 services DNS/DNS multicast), permet à un ordinateur de rechercher des services sur le réseau local. IPP (Internet Printing Protocol) est le protocole de transport.
  • SMB : 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 comment 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 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, démarrez CUPS.

sudo systemctl start cups

Activez le démarrage automatique au moment du démarrage.

sudo systemctl enable cups

Vérifiez son statut :

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 de CUPS est uniquement disponible sur localhost:631. Si vous exécutez l'édition serveur 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 depuis d'autres ordinateurs du même réseau, ajoutez Autoriser @LOCAL à la configuration comme ci-dessous.

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

Ajoutez-le également pour le répertoire /admin afin de 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 ceci :

<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 machine 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://adresse IP de la boîte Ubuntu:631. Nous n'avons pas besoin d'utiliser l'interface Web dans cet article, mais si vous souhaitez l'utiliser, vous devez alors ajouter votre compte utilisateur au groupe lpadmin afin d'apporter des modifications dans le site Web CUPS. interface.

sudo adduser your_username lpadmin

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

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

sudo apt install hplip

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

sudo apt install printer-driver-gutenprint

Si vous possédez 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 " 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 inquiétez pas de la qualité d’impression pour le moment.

É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

Activez le démarrage automatique au moment du 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 faire communiquer les clients et le serveur CUPS 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 dès le départ, 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 machine 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 courrier électronique, éditeurs de photos et navigateurs Web), l'imprimante sera 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 ne dispose pas de la commande ippfind. 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

les fenêtres

Windows 10 est livré avec un client IPP. Saisissez imprimante dans la barre de recherche inférieure gauche et ouvrez Imprimantes et scanners. Cliquez ensuite sur le bouton Ajouter une imprimante ou un scanner. 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 périphérique. Il sera ajouté à la liste des imprimantes dans quelques instants.

Si vous utilisez une autre version de Windows qui ne peut pas ajouter d'imprimante de cette manière, vous pouvez installer les services Bonjour Print. 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, il a trouvé mon imprimante HP.

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

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 un ordinateur de bureau Linux, recherchez dans les paramètres système ou dans le menu de l'application l'utilitaire de configuration de l'imprimante. Cliquez sur le bouton Ajouter pour ajouter une nouvelle imprimante.

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

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 à 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 le bouton Ajouter 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 les 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, exécutez 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 service spoolssd lors du partage d'imprimante. Cela rendra Samba plus efficace lorsqu’il y aura de nombreux travaux d’impression. Ajoutez simplement les deux lignes suivantes dans la section [global] pour activer le service spoolssd.

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

Ensuite, allez à la fin du fichier et vous verrez la section [printers]. Dans l'éditeur de texte Nano, vous pouvez accéder à 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. Puis redémarrez Samba.

sudo systemctl restart smbd nmbd

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

Ouvrez l'explorateur de fichiers, saisissez 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 les clients iOS via AirPrint

AirPrint permet aux clients iPhone, iPad et macOS d'imprimer via Wi-Fi sans installer de logiciel 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 fichier .service dans le répertoire /etc/avahi/services/ pour 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 le démon Avahi.

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.

Emballer

J'espère que ce tutoriel vous a aidé à configurer un serveur d'impression CUPS sur Ubuntu 20.04, 18.04 et 21.10. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de trucs et astuces. Et vous souhaiterez peut-être également lire l'article suivant pour configurer un serveur de partage de fichiers Samba.

  • Configurer le serveur Samba sur Ubuntu pour le partage de fichiers

Articles connexes