Ce didacticiel vous montrera comment partager une imprimante connectée à un ordinateur CentOS 8/RHEL 8 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 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 CentOS 8/RHEL 8
L'édition de bureau CentOS 8/RHEL 8 a CUPS pré-installé. Si vous utilisez l'édition serveur CentOS 8/RHEL 8, vous devez exécuter la commande suivante pour installer CUPS à partir du référentiel CentOS 8/RHEL 8 par défaut.
sudo dnf 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
Par défaut, l'interface Web CUPS n'est disponible que sur localhost:631
. Si vous exécutez l'édition serveur CentOS 8/RHEL 8, vous souhaiterez peut-être que CUPS écoute sur toutes les interfaces réseau disponibles, afin de pouvoir accéder à l'interface Web CUPS à partir d'autres ordinateurs. Trouvez la ligne suivante.
Listen localhost:631
Remplacez-le par ce qui suit, afin que CUPS écoute sur toutes les interfaces réseau.
Port 631
La ligne suivante fera en sorte que CUPS affiche les imprimantes partagées sur le réseau local, afin que les autres ordinateurs du même réseau puissent voir les imprimantes connectées à votre ordinateur CentOS 8/RHEL 8.
Browsing On
Trouvez ensuite les lignes suivantes.
<Location /> Order allow,deny </Location>
La configuration ci-dessus permet uniquement l'accès à l'interface Web CUPS à partir de localhost. 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>
Si vous souhaitez autoriser l'administration à distance depuis le réseau local, ajoutez-le également pour le /admin
répertoire.
<Location /admin> Order allow,deny Allow @LOCAL </Location>
Enregistrez et fermez le fichier. Redémarrez ensuite CUPS pour que les modifications prennent effet.
sudo systemctl restart cups
Nous devons autoriser les clients du même réseau à accéder au port 631 sur votre ordinateur CentOS 8/RHEL 8.
sudo firewall-cmd --permanent --add-port=631/tcp
Rechargez le pare-feu pour que la modification prenne effet.
sudo systemctl reload firewalld
En plus du principal cups.service
, il y a aussi cups-browsed.service
, qui est utilisé pour numériser et ajouter une imprimante à partir du réseau local. Si vous souhaitez que votre ordinateur CentOS 8/RHEL 8 puisse utiliser d'autres imprimantes sur le réseau local, démarrez ce service.
sudo systemctl start cups-browsed
Et activez le démarrage automatique au démarrage.
sudo systemctl enable cups-browsed
Étape 2 :Installez le pilote de votre imprimante sur CentOS 8/RHEL 8
Vous devez installer le pilote sur CentOS 8/RHEL 8, 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 dnf install hplip
Je recommande également d'installer les gutenprint-cups
package, qui fournit les pilotes CUPS pour les imprimantes Canon, Epson, HP et compatibles.
sudo dnf install gutenprint-cups
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 CentOS 8/RHEL 8. Pour tester si le pilote fonctionne correctement, vous pouvez créer un fichier texte sur CentOS 8/RHEL 8 :
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 dnf install avahi
Nous devons également installer le nss-mdns
package du référentiel EPEL, nécessaire aux clients pour résoudre .local
domaine sur le réseau.
sudo dnf install epel-release sudo dnf install nss-mdns
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 firewall-cmd --permanent --add-port=5353/udp
Rechargez le pare-feu pour que la modification prenne effet.
sudo systemctl reload firewalld
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 CentOS 8/RHEL 8, 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 CentOS 8/RHEL 8, exécutez la commande suivante.
sudo dnf install samba
Lancez ensuite la commande suivante pour démarrer le smbd
et nmbd
services.
sudo systemctl start smb nmb
Activer le démarrage automatique au démarrage.
sudo systemctl enable smb nmb
Pour vérifier si le service Samba est en cours d'exécution, exécutez les commandes suivantes.
systemctl status smb nmb
Une fois lancé, le smb
le démon écoutera sur les ports TCP 139 et 445. Le nmbd
écoutera sur les ports UDP 137 et 138. Exécutez la commande suivante pour ouvrir ces ports dans le pare-feu.
sudo firewall-cmd --permanent --add-service=samba
Rechargez le démon du pare-feu pour que le changement prenne effet.
sudo systemctl reload firewalld
Modifiez ensuite le fichier de configuration principal.
sudo nano /etc/samba/smb.conf
Trouvez les [printers]
section. Par défaut, il ressemble à ceci :
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No
Nous devons changer la valeur de browseable
à yes
, afin que les clients du même réseau puissent trouver l'imprimante et ajouter guest ok = yes
pour permettre à n'importe qui sur le réseau d'utiliser l'imprimante.
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = yes guest ok = yes
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
Enregistrez et fermez le fichier. Redémarrez ensuite Samba.
sudo systemctl restart smb nmb
Ajout d'une imprimante partagée Samba sous Windows.
Ouvrez l'explorateur de fichiers, entrez l'adresse IP de l'ordinateur CentOS 8/RHEL 8 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. Exécutez la commande suivante pour télécharger le script sur CentOS 8/RHEL 8.
wget https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
Ajouter une autorisation d'exécution.
chmod +x airprint-generate.py
Ce script python est fait pour Python2. CentOS 8/RHEL 8 utilise Python3 par défaut. Nous devons installer Python2.
sudo dnf install python2
Modifiez ce fichier.
nano airprint-generate.py
Modifier
#!/usr/bin/env python
à
#!/usr/bin/env python2
Enregistrez et fermez le fichier. Installez ensuite les dépendances.
sudo dnf install gcc python2-devel cups-devel redhat-rpm-config
Installez le module tasses.
sudo pip2 install cups pycups
Exécutez ensuite ce script.
sudo ./airprint-generate.py -d /etc/avahi/services/
Maintenant, il devrait y avoir un .service
fichier sous /etc/avahi/services/
répertoire de votre imprimante.
ls /etc/avahi/services/
Exemple de sortie :
AirPrint-DeskJet-2130-series.service
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.