Guía completa de CUPS: Configuración, uso y solución de problemas en Linux

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 update
  • sudo 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 cups
  • sudo 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/24

  Order 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 $USER
  • newgrp 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 cups
  • tail -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 lsusb o dmesg. 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 -o para ver los trabajos detenidos. Luego ejecuta cancel ID_DEL_TRABAJO o reinicia el servicio con sudo 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_log para identificar el módulo faltante.
  • Acceso denegado desde otros equipos: Revisa la directiva en cupsd.conf y 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 --permanent en 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 debug temporalmente solo cuando necesites solucionar un problema específico, y vuelve a info para evitar llenar el disco.
  • Respaldar el archivo /etc/cups/cupsd.conf y el directorio /etc/cups/ppd facilita 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.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol