Nivell: ASIX / SMX
Sistema: Ubuntu Server 24.04 LTS
CUPS (Common Unix Printing System) és el sistema d’impressió estàndard en sistemes GNU/Linux i macOS. Permet gestionar impressores locals i en xarxa, actuar com a servidor d’impressió per a altres equips (Windows, Linux, macOS) i administrar cues d’impressió.
En aquest document aprendrem a:
sudosudo apt update && sudo apt upgrade -ysudo apt install -y cups cups-client cups-bsd printer-driver-allEls paquets principals instal·lats són:
| Paquet | Descripció |
|---|---|
cups |
Servidor d’impressió CUPS |
cups-client |
Eines de línia d’ordres per gestionar impressió |
cups-bsd |
Compatibilitat amb ordres BSD (lpr, lpq, lprm) |
printer-driver-all |
Col·lecció de controladors d’impressores |
cups --versionSortida esperada:
CUPS v2.4.xsudo systemctl enable cups
sudo systemctl start cupssudo systemctl status cupsSortida esperada (fragment):
● cups.service - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled)
Active: active (running) since ...sudo systemctl start cups # Engegar
sudo systemctl stop cups # Aturar
sudo systemctl restart cups # Reiniciar
sudo systemctl reload cups # Recarregar configuració sense aturarEl fitxer de configuració de CUPS és /etc/cups/cupsd.conf. L’editem per permetre l’accés des de
la xarxa local:
sudo nano /etc/cups/cupsd.confcupsd.confLocalitzem i modifiquem les seccions següents:
a) Escoltar a totes les interfícies (no només localhost):
# Línia original:
Listen localhost:631
# Substituir per:
Port 631b) Permetre accés a la interfície web des de la xarxa:
<Location />
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin>
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @LOCAL
</Location>@LOCAL permet l’accés des de qualsevol equip de la xarxa
local. Per restringir a una subxarxa específica, substituir per Allow 192.168.1.0/24 (adaptant al rang de la xarxa).
c) Habilitar la interfície web (si cal):
WebInterface Yessudo systemctl restart cupssudo ufw allow 631/tcp
sudo ufw allow 631/udp
sudo ufw reloadVerificar:
sudo ufw statusDes d’un navegador de la xarxa local, accedir a:
http://IP_DEL_SERVIDOR:631Per exemple: http://192.168.1.10:631
Per poder administrar CUPS des de la interfície web, l’usuari ha de
pertànyer al grup lpadmin.
sudo usermod -aG lpadmin NOM_USUARIVerificar que l’usuari pertany al grup:
groups NOM_USUARICal tancar la sessió i tornar a entrar perquè el canvi de grup tingui efecte.
Obrir http://IP_DEL_SERVIDOR:631
Anar a Administration → Add Printer
Introduir credencials d’administrador quan es demani
Seleccionar el tipus de connexió:
Local Printers: impressores connectades físicament
Network Printers: impressores en xarxa (LPD, IPP, SMB, etc.)Configurar el nom, descripció i ubicació
Seleccionar el controlador (driver) adequat
Fer clic a Add Printer
Llistar impressores disponibles al sistema:
lpstat -p -dAfegir una impressora en xarxa (protocol IPP):
sudo lpadmin -p nom_impressora \
-v ipp://192.168.1.50/ipp/print \
-m everywhere \
-E| Paràmetre | Significat |
|---|---|
-p |
Nom de la impressora a CUPS |
-v |
URI de connexió (protocol + adreça) |
-m everywhere |
Usar el controlador universal IPP Everywhere |
-E |
Habilitar la impressora immediatament |
Establir la impressora per defecte:
sudo lpadmin -d nom_impressoraAfegir una impressora USB local:
# Detectar el dispositiu
lpinfo -v | grep usb
# Afegir la impressora
sudo lpadmin -p ImpresoraUSB \
-v usb://fabricant/model \
-m drv:///sample.drv/generic.ppd \
-EEditar /etc/cups/cupsd.conf i afegir o modificar:
# Habilitar la compartició de impressores
ServerName IP_DEL_SERVIDOR
Browsing On
BrowseLocalProtocols dnssd
DefaultAuthType BasicI afegir al final:
<Policy default>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs ...>
Order deny,allow
</Limit>
</Policy>Via interfície web:
Via línia d’ordres:
sudo lpadmin -p nom_impressora -o printer-is-shared=truesudo cupsctl --share-printerslpr -P nom_impressora fitxer.pdfOpcions útils:
lpr -P nom_impressora -# 3 fitxer.pdf # 3 còpies
lpr -P nom_impressora -o landscape fitxer.pdf # Orientació horitzontallpq # Cua de la impressora per defecte
lpq -P nom_impressora # Cua d'una impressora específica
lpstat -p # Estat de totes les impressores
lpstat -o # Treballs actius de totes les cueslprm ID_TREBALL # Cancel·lar un treball concret
lprm -P nom_impressora - # Cancel·lar tots els treballs d'una impressora
cancel -a nom_impressora # Alternativa amb l'ordre cancelsudo cupsenable nom_impressora # Habilitar
sudo cupsdisable nom_impressora # Deshabilitar
sudo cupsaccept nom_impressora # Acceptar treballs a la cua
sudo cupsreject nom_impressora # Rebutjar nous treballsCUPS permet crear una impressora virtual que genera fitxers PDF. Resulta molt útil per a proves i entorns de desenvolupament.
sudo apt install -y cups-pdfAixò crea automàticament una impressora anomenada
PDF a CUPS. Els documents impresos es desen a /var/spool/cups-pdf/USUARI/.
lpstat -p PDFecho "Prova d'impressió CUPS" | lpr -P PDF
ls ~/PDF/ # El fitxer generat es desa aquí per defecteLa carpeta de destinació per a l’usuari root és /var/spool/cups-pdf/root/ i per a altres usuaris és ~/PDF/ (es crea automàticament).
| Fitxer | Contingut |
|---|---|
/var/log/cups/access_log |
Accessos HTTP a la interfície web |
/var/log/cups/error_log |
Errors i avisos del servidor |
/var/log/cups/page_log |
Registre de pàgines impreses |
sudo tail -f /var/log/cups/error_logEditar /etc/cups/cupsd.conf:
LogLevel debug2Reiniciar el servei i consultar el registre per obtenir informació detallada.
La interfície web no és accessible des de la xarxa:
Port 631 substitueix Listen localhost:631<Location> al fitxer de
configuracióL’usuari no pot administrar CUPS:
lpadminLa impressora no apareix a la xarxa:
Browsing On està activat a cupsd.confTreballs a la cua que no s’imprimeixen:
lpstat -p nom_impressora # Verificar estat
sudo cupsenable nom_impressora
sudo cupsaccept nom_impressora| Acció | Ordre |
|---|---|
| Instal·lar CUPS | sudo apt install cups |
| Estat del servei | sudo systemctl status cups |
| Llistar impressores | lpstat -p |
| Afegir impressora | sudo lpadmin -p nom -v uri -m model -E |
| Imprimir fitxer | lpr -P nom_impressora fitxer |
| Veure cua | lpq -P nom_impressora |
| Cancel·lar treball | lprm ID |
| Habilitar impressora | sudo cupsenable nom_impressora |
| Compartir impressora | sudo lpadmin -p nom -o printer-is-shared=true |
| Veure errors | sudo tail -f /var/log/cups/error_log |
cupsd.conf: man cupsd.conflpadmin: man lpadminhttp://localhost:631