[How-To] Partage d'imprimante en 2 minutes grâce à CUPS

J’ai un peu galéré pour trouver comment faire car les différents tutos que j’ai trouvé sur le net sont soit périmés, soit m’ont fait faire plein de modifications dans mes fichiers de config sans que cela fonctionne alors que la solution est toute simple.

J’ai 3 PC en réseau. Mon objectif est de pouvoir imprimer depuis n’importe lequel de mes PC, que ce soit avec Debian et même Winbouze. Je ne détaillerai pas ici l’installation d’une imprimante avec CUPS.

Eléments requis :

  • Il faut tout d’abord que votre imprimante fonctionne avec CUPS en local sur l’un de vos PC.
  • Il faut également que votre réseau local soit fonctionnel.

Passons à la pratique !

1. Configuration du serveur d’impression

Le PC sur lequel est branché votre imprimante va devenir le “serveur d’impression”. On suppose que ce PC est relié au réseau avec l’adresse 192.168.0.2.

  • Sur ce PC, ouvrez votre navigateur internet, écrivez http://localhost:631 dans la barre d’adresse et vous vous retrouvez sur la page de configuration de CUPS.
  • Allez dans l’onglet Administration et cochez la case “Share published printers connected to this system” pour pouvoir partager votre imprimante.
    Si un login et mot de passe sont demandés, ce sont ceux de l’administrateur (root).

Voilà, c’est tout pour la partie serveur.

2. Configuration des clients

Pour pouvoir imprimer depuis n’importe quel PC relié au réseau local, voici la procédure :

Chaque PC est considéré comme un client au serveur d’impression.

  • Sur chaque PC, il faut installer le client cups :

Sous Lenny :

Squeeze et supérieur :

  • Créer le fichier /etc/cups/client.conf avec pour contenu :

Dans l’exemple que j’ai pris, le serveur est 192.168.0.2 donc ce fichier contiendrait : ServerName 192.168.0.2

  • Répéter cette opération pour chaque client.

Vous devriez maintenant pouvoir imprimer sur votre imprimante depuis n’importe lequel de vos PC.

:smt041

Source de ce tuto : formation-debian.via.ecp.fr/apf.html

3. Imprimer depuis Windows

Pour imprimer depuis un poste windows, pas besoin de samba, CUPS s’occupe de tout :

  • Dans le répertoire /etc/cups, décommenter la ligne contenant application/octet-stream dans les deux fichiers mime.convs et mime.types.
  • Pensez aux autorisations… Vérifiez que les utilisateurs de votre réseau local pourront imprimer sur votre serveur :

[quote="/etc/cups/cupsd.conf"]

Allow shared printing…

Order allow,deny
Allow @LOCAL
[/quote]

  • Une fois les modifications terminées, il faut redémarrer le serveur CUPS.
    Sous Lenny:

Squeeze et supérieures :

  • Maintenant dans cups, ajoutez une 2e fois votre imprimante que vous nommerez par exemple imprimante_windows
  • Une fois votre imprimante créée, allez sur localhost:631/printers/, et dans votre imprimante_windows, sélectionnez “Modifier l’imprimante”. Dans la page Modèle/pilote, choisir Raw dans la liste. Ainsi les données envoyées par Windows seront directement transmises à l’imprimante sans modification.
  • Maintenant, du côté de Windows, il reste à ajouter l’imprimante réseau. On suppose pour la suite que le serveur qui héberge Cups s’appelle bazooka.

Dans la fenêtre des imprimantes, sélectionner une imprimante réseau ou une imprimante connectée à un autre ordinateur.

ensuite, choisir Se connecter à une imprimante sur Internet ou sur un réseau domestique ou d’entreprise

renseigner l’URL, par exemple bazooka:631/printers/imprimante_windows Le nom du serveur peut être remplacé par son adresse IP.

la suite est classique. Sélectionner votre imprimante dans la liste des pilotes et terminer.

Source : jpourrez.free.fr/linux/ipp_win/

Suppléments :

* Et si sur mon réseau, j’ai par exemple 2 imprimantes connectées à 2 PC différents ?? (problème soulevé par Lunatic)

Il ne faut pas de fichier /etc/cups/client.conf sur les machines où tourne un serveur d’impression. Il faut les configurer ainsi :

Vérifier dans la page d’administration de cups (localhost:631) que les cases “Afficher les imprimantes partagées par d’autres systèmes” et “Partager les imprimantes publiques connectées à ce système” sont cochées.

Et normalement, vous devriez avoir accès à toutes les imprimantes de votre réseau. Ne pas oublier de vérifier les utilisateurs autorisés pour chaque imprimante.

* Soluce de ripat pour imprimer depuis internet vers sa station locale ou serveur cups local

  • Si l’imprimante ne veut pas imprimer , vérifier que l’utilisateur est autorisé (localhost:631 => onglet "Printers => et pour l’imprimante “Set allowed Users”

Encore mieux, pour imprimer depuis un serveur distant vers sa station locale ou serveur cups local:

serveur distant —> internet —> modem —> routeur —> serveur cups local —> imprimante

# depuis serveur distant

$ cat fichier-a-imprimer | ssh xxx.xxx.xxx.xxx lpr

# ou bien
# (où domaine.com peut, bien sûr être le nom d'un service de dyndns)

$ cat fichier-a-imprimer | ssh domaine.com lpr

Condition: avoir mis en place un système de clé publique/privée pour établir une connexion entre le serveur distant et local sans demande de mot de passe.

Et, bien sûr, avoir redirigé le port du routeur local ET vérifié son iptables, bref, pouvoir établir sans soucis une connexion ssh depuis le serveur distant vers la sation/serveur cups local :wink:

AnatomicJC, ta solution fonctionne bien, mais sur l’un de mes réseaux, l’imprimante distance « remplace » l’imprimante locale qui disparaît de la liste des imprimantes dispo (dans openoffice ou dans l’outil de conf. de kde) ; pourtant elle apparaît bien sur la page de conf de cups (localhost:631)

Bon j’ai essayé d’ajouter localhost comme servername et de partager l’imprimante locale afin qu’elle soit accessible à l’ordinateur… local.

C’est une solution “sale” qui marche, mais en partie seulement :

quand l’ordinateur distant est coupé, alors - évidemment - l’imprimante distante est inaccessible mais… l’imprimante locale l’est également (à la place j’ai le droit à un généric machin chose).

J’ai pu remarquer avec Firestarter qu’en imprimant depuis l’ordinateur local sur l’imprimante locale, on « passait » par l’ordinateur distant.

Bref, solution intéressante quand il n’y a qu’une imprimante ; mais dans mon cas, où il y en a deux, ça semble problématique.

Je viens de faire un test et en effet, j’ai le même problème que toi.

Je viens justement de trouver par hasard une solution propre qui a fonctionné pour moi => effacer le fichier /etc/cups/client.conf
Car mon tuto suppose qu’il n’y a qu’un seul serveur qui tourne sur le réseau.

Comme sur le tien, il y a apparemment 2 serveurs d’impression (un pour chaque imprimante, imprimantes étant connectée sur 2 PC différents), voilà ce que je te propose de faire :

1. effacer le fichier /etc/cups/client.conf de ton 2e PC où tourne le 2e serveur
2. vérifier dans la page d’administration de cups que les cases “Afficher les imprimantes partagées par d’autres systèmes” et “Partager les imprimantes publiques connectées à ce système” sont cochées.
3. vérifier pour chaque imprimante les différents utlilisateurs autorisés à imprimer

Et normalement, ça devrait rouler.

Merci de m’avoir signalé ce problème :wink:

De rien, et désolé pour le temps de réponse.

Malheureusement, j’ai toujours le même problème. Je vais essayer d’être plus clair sur ce que j’ai et ce que j’ai fait. Mon réseau, c’est ça :

192.168.0.1 == ordinateur 1 -> imprimante Brother n&b
192.168.0.2 == ordinateur 2 -> imprimante HP couleur

Évidemment je cherche à ce que je puisse imprimer sur la HP depuis l’ordinateur 1.

Sur ordinateur 1 j’ai donc mon fichier /etc/cups/client.cong avec “Servername 192.168.0.2”. Ça me permet en effet d’imprimer sur l’imprimante couleur sans problème.

Mais, c’est là que ça se complique :

  • Sur ordinateur 1, je ne peux plus imprimer sur ma Brother depuis Openoffice (ou autre). L’imprimante Brother finit par disparaître de la liste des imprimantes, seule la HP couleur est accessible. Dans l’outil de configuration des imprimantes de KDE, si je lui demande d’installer une imprimante locale (la Brother), il me présente l’imprimante distante (donc, la HP) comme étant l’imprimante locale, imprimante qui marche déjà bien, comme je l’ai précisé.
  • Mais, toujours sur ordinateur 1, si je vais sur la page de cups (localhost:631), la Brother apparaît bien (et pas la HP !), et je peux imprimer sans problème une page de test.

Donc est-ce que Cups est mal « interfacé » par KDE ?

Et en effaçant ce fichier (/etc/cups/client.conf) ?

[quote=“AnatomicJC”]Je viens justement de trouver par hasard une solution propre qui a fonctionné pour moi => effacer le fichier /etc/cups/client.conf
Car mon tuto suppose qu’il n’y a qu’un seul serveur qui tourne sur le réseau. [/quote]

Au pire envoie les fichiers /etc/cups/cupsd.conf et /etc/cups/printers.conf de tes 2 ordinateurs mais peut-être en ouvrant un fil dans la section Support.

Et en effaçant ce fichier (/etc/cups/client.conf) ?

[quote=“AnatomicJC”]Je viens justement de trouver par hasard une solution propre qui a fonctionné pour moi => effacer le fichier /etc/cups/client.conf
Car mon tuto suppose qu’il n’y a qu’un seul serveur qui tourne sur le réseau. [/quote]
[/quote]

Oui j’ai oublié de préciser que j’ai suivi cette recommandation (l’effacement du client.conf) puisque je l’ai supprimé de l’ordinateur 2. Si je le supprime du 1, il n’y en aura donc plus un seul.

Oui je vais faire ça :wink:

Encore merci.

En effet ce fichier ne sert à rien vu qu’il y a un serveur d’impression sur chaque PC.
Le fichier /etc/cups/client.conf n’est utile uniquement dans le cas où un PC n’a pas de serveur d’impression et veut imprimer sur un autre PC où un serveur d’impression tourne.

Petit up :

Mise à jour du tuto pour permettre d’imprimer depuis Windows vers CUPS sans samba (testé et approuvé !!)

source : jpourrez.free.fr/linux/ipp_win/

Salut,
j’ai installé cups sur une vielle bécane qui me sert de serveur.
Par contre sur cette machine j’ai qu’un accès à la console, pas d’interface graphique. La ou ca me pose problème, s’est pour accédez a ip.du.serveur:631 via un pc de mon réseau local , mais j’ai une erreur de chargement de la page, en gros sa marche pas :confused:
Quelqu’un pourrait m’aidé? :blush: :blush:

Firewall sur le serveur qui bloquerait le port 631?

Non.
J’ai fait une netinstall, et y’a le minimum installées dessus, pour le moment.

Si tu as nmap sur ta station fais un

Je viens de faire un essai chez moi et le serveur http de cups fonctionne bien à partir d’une autre station.

Salut :stuck_out_tongue:

Regarde dans le fichier de configuration /etc/cupsd.conf, il y a une section admin :

[code]<Location /admin>

Restrict access to the admin pages…

Order allow,deny
Allow localhost
[/code]

Essaie d’y ajouter après allow localhost Allow ip_du_pc_qui_veut_accéder_à_cups

Là, je ne peux pas tester mais je pense que la solution est à ce niveau du fichier de config.

Le nmap, me retourne que le port est fermé.
Comment faire pour l’ouvrir? :blush:

Re,

C’est bon je viens de tester ce que je t’ai dit plus haut. Il faut que tu fasse ce que je t’ai marqué pour pouvoir administrer cups depuis un autre PC de ton réseau local sinon, tu auras droit à un beau 403 Forbidden

Je viens de faire le test nmap et mon port est ouvert, pour ouvrir le tien, regarde du côté de iptables. La démarche exacte, je ne me suis pas encore penché dessus donc je ne pourrais pas t’aider de ce côté :cry:
Mais d’autres ici sauront mieux que moi :wink:

Merci,
je viens de trouvé comment ouvrir le port, et la j’arrive sur la page. Je vais continué à configuré et je repasserai si j’ai un soucis :wink:

Bon cool ca marche, mon imprimante est partagé sur mon réseau local.

Juste quelques info pour ceux qui aurait une lexmark x73 (oui je sais, C pas ce qui se fait de mieux, en imprimante, mais ça imprime, c’est le principal!!!).
Lors de l’installation, il ne faut pas accepté le driver recommandé “foomatic”, mais choisir à la place : z42 cups + gutenprint v5 driver, une fois installé fait un test en local, normalement il ne devrait pas y avoir de problème. source.
Ensuite quand vous installez votre imprimante en réseau, sur le poste client (XP pour moi), lors de l’installation prendre les drivers de l’imprimante Z42 Color Jetprinter sur le site lexmark.
Et voila normalement votre imprimante fonctionne correctement.

Pour le scanner j’ai pas encore eu le temps de me penché sur le problème, et je sais pas si s’est possible de partagé en réseaux.

En tout cas, merci pour ce HowTo. :wink: :wink:

Bonsoir,

Beau tutoriel !

De quoi flatter ma paresse. Pauvre Samba.

Merci

Bonne soirée

shaayadbaba