Introducción
En el mundo de Linux, la gestión de impresoras puede parecer una tarea sencilla hasta que se necesita compartir dispositivos en una red, configurar opciones avanzadas o solucionar errores de impresión. Aquí entra en juego el Sistema de Impresión Común de Unix (CUPS), el estándar de facto para manejar colas de trabajo, controladores y protocolos de impresión en prácticamente todas las distribuciones modernas. Este artículo te guiará paso a paso desde la instalación hasta la administración avanzada, ofreciendo ejemplos prácticos y consejos de troubleshooting para que puedas mantener tu entorno de impresión funcionando sin interrupciones.
¿Qué es CUPS?
CUPS, acrónimo de Common Unix Printing System, fue desarrollado inicialmente por Apple y liberado bajo licencia GPL. Actúa como un servidor de impresión que recibe trabajos de impresión desde aplicaciones cliente, los procesa mediante filtros y los envía a la impresora adecuada usando protocolos como IPP (Internet Printing Protocol), LPD o SMB. Su arquitectura modular permite agregar nuevos controladores, filtros y backends sin modificar el núcleo del sistema, lo que lo hace extremadamente flexible tanto en entornos de escritorio como en servidores de impresión corporativos.
Instalación en distribuciones principales
En la mayoría de las distribuciones basadas en Debian, el paquete se instala con:
sudo apt updatesudo apt install cups
En sistemas basados en RHEL, Fedora o CentOS, el comando equivalente es:
sudo dnf install cups(Fedora)sudo yum install cups(RHEL/CentOS)
Tras la instalación, el servicio se inicia automáticamente, pero puedes verificarlo y habilitarlo para el arranque con:
sudo systemctl status cupssudo systemctl enable --now cups
Si prefieres una interfaz gráfica, muchos entornos de escritorio incluyen herramientas como system-config-printer o la configuración de impresoras de GNOME/KDE, que simplemente actúan como frontends de CUPS.
Configuración básica
El archivo de configuración principal de CUPS se encuentra en /etc/cups/cupsd.conf. Aquí puedes definir el puerto de escucha (por defecto 631), las directivas de acceso y el nivel de registro. Un ejemplo típico para permitir acceso desde la red local es:
# Escuchar en todas las interfaces Port 631 # Permitir acceso desde la subred 192.168.1.0/24Order allow,deny Allow 192.168.1.0/24
Después de editar el archivo, reinicia el servicio:
sudo systemctl restart cups
Para agregar una impresora, puedes usar la interfaz web (ver siguiente sección) o el comando lpadmin. Por ejemplo, para agregar una impresora USB detectada automáticamente:
sudo lpadmin -p Impresora_USB -E -v usb://HP/Deskjet?serial=ABC123 -m everywhere
El flag -E habilita la impresora y acepta trabajos, mientras que -m everywhere indica que se use el controlador genérico recomendado por CUPS.
Administración vía interfaz web
CUPS incluye una interfaz de administración accesible mediante un navegador en la dirección http://localhost:631. Desde allí puedes:
- Ver el estado de las colas de impresión.
- Agregar, modificar o eliminar impresoras.
- Configurar opciones específicas como resolución, tipo de papel y doblez.
- Revisar el registro de trabajos (jobs) y realizar acciones como pausar, reanudar o cancelar trabajos.
- Administrar usuarios y permisos mediante la pestaña Administration.
Para acceder a la sección de administración es necesario autenticarse con un usuario que pertenezca al grupo lpadmin o con la cuenta root. Puedes agregar tu usuario al grupo con:
sudo usermod -aG lpadmin $USERnewgrp lpadmin(o cerrar y volver a iniciar sesión)
La interfaz web también permite cargar archivos PPD (PostScript Printer Description) personalizados, lo que resulta útil cuando dispones de un controlador específico proporcionado por el fabricante.
Uso de la línea de comandos
Además de la interfaz gráfica, CUPS ofrece un conjunto de herramientas CLI que son ideales para scripts y administración remota. Los comandos más usados son:
lpstat -p: lista todas las impresoras configuradas y su estado.lpstat -a: muestra las impresoras aceptando trabajos.lp -d Impresora_USB archivo.pdf: envía un trabajo a la impresora especificada.cancel -a: cancela todos los trabajos pendientes.cupsaccept Impresora_USB: permite que la impresora acepte nuevos trabajos.cupsreject Impresora_USB: rechaza nuevos trabajos (útil para mantenimiento).
Para ver el registro detallado del servicio, puedes consultar:
journalctl -u cupstail -f /var/log/cups/error_log
Estos registros son esenciales para diagnosticar problemas de filtros, permisos o comunicación con la impresora.
Solución de problemas comunes
Aunque CUPS es robusto, ciertos escenarios pueden generar fallos. A continuación, una lista de los problemas más frecuentes y sus soluciones:
- Impresora no detectada: Verifica que el dispositivo esté conectado y que el kernel lo reconozca con
lsusbodmesg. Si es una impresora de red, asegúrate de que tenga una IP estática y que el puerto 631 esté accesible (nc -zv IP 631). - Trabajos atascados en la cola: Usa
lpstat -opara ver los trabajos detenidos. Luego ejecutacancel ID_DEL_TRABAJOo reinicia el servicio consudo systemctl restart cups. - Error de filtro missing: Indica que falta algún backend o filtro (por ejemplo,
foomatic-rip). Instala el paquete de controladores correspondiente (sudo apt install printer-driver-foo2zjs) o revisa el archivo/var/log/cups/error_logpara identificar el módulo faltante. - Acceso denegado desde otros equipos: Revisa la directiva
encupsd.confy asegúrate de que la subred esté incluida. También verifica que el firewall permita el tráfico TCP en el puerto 631 (sudo firewall-cmd --add-service=ipp --permanenten firewalld). - Impresión lenta o con caracteres garabateados: Puede deberse a un controlador inadecuado. Prueba cambiando el PPD a una versión más genérica (
everywhere) o descargando el controlador específico del fabricante desde su sitio web.
Mantener el sistema actualizado y revisar periódicamente los logs ayuda a prevenir la mayoría de estos inconvenientes.
Conclusión y mejores prácticas
CUPS sigue siendo la columna vertebral de la impresión en entornos Linux gracias a su flexibilidad, su soporte para múltiples protocolos y su comunidad activa. Para obtener el máximo provecho, considera seguir estas prácticas:
- Mantén el servicio y los paquetes de controladores actualizados.
- Documenta la configuración de cada impresora (IP, PPD, opciones) en un wiki o repositorio interno.
- Utiliza grupos de impresoras (
lpadmin -p Grupo -v ipp://...) para simplificar la gestión en grandes oficinas. - Habilita el registro de nivel
debugtemporalmente solo cuando necesites solucionar un problema específico, y vuelve ainfopara evitar llenar el disco. - Respaldar el archivo
/etc/cups/cupsd.confy el directorio/etc/cups/ppdfacilita la migración a nuevos servidores.
Con los pasos descritos en este artículo, estarás capacitado para instalar, configurar, administrar y solucionar problemas de CUPS en cualquier distribución Linux, asegurando que la impresión sea un servicio fiable y transparente para todos los usuarios.


