Cómo configurar un servidor de impresión en Linux con CUPS Guía paso a paso

Cómo Configurar un Servidor de Impresión en Linux con CUPS (Guía Completa 2026)

📘 Este artículo forma parte de nuestra Guía Completa de Linux y de nuestra Guía Completa de Servidores y Virtualización. Si administras servidores Linux, esas guías son tu punto de partida.

Introducción

CUPS (Common UNIX Printing System) es el sistema de impresión estándar en Linux, macOS y la mayoría de sistemas Unix. Permite:

  • Gestionar impresoras locales y en red.
  • Compartir impresoras entre múltiples equipos.
  • Gestionar colas de impresión con prioridades.
  • Aplicar cuotas y restricciones por usuario.
  • Ofrecer una interfaz web para administración.

En 2026, CUPS sigue siendo la solución de referencia para montar un servidor de impresión en Linux. Y con las mejoras en IPP Everywhere y driverless printing, configurar impresoras es más fácil que nunca.

En esta guía completa vas a aprender:

  • Qué es CUPS y sus ventajas.
  • Instalación en Ubuntu, Debian, Fedora, Arch.
  • Configuración segura del servidor.
  • Añadir impresoras (USB, red, IPP).
  • Compartir impresoras en la red.
  • Descubrimiento automático con Avahi.
  • Cuotas y restricciones.
  • Seguridad y autenticación.
  • Troubleshooting avanzado.
  • FAQ con las preguntas más frecuentes.

Si nunca has administrado Linux, consulta nuestra Guía Completa de Linux. Si gestionas servidores, nuestra Guía Completa de Servidores.


Índice de contenidos

  1. ¿Qué es CUPS?
  2. Instalación
  3. Configuración segura
  4. Añadir impresoras
  5. Compartir en red
  6. Avahi y descubrimiento automático
  7. Impresoras IP y de red
  8. Cuotas y restricciones
  9. Seguridad
  10. Mantenimiento
  11. Troubleshooting
  12. FAQ
  13. Conclusión

1. ¿Qué es CUPS?

CUPS (Common UNIX Printing System) es un sistema modular de impresión para Unix y Linux. Desarrollado originalmente por Easy Software Products y adquirido por Apple en 2007, es ahora open source bajo la Apache License 2.0.

1.1 Características principales

  • Compatible con IPP (Internet Printing Protocol).
  • Soporta Samba para compartir con Windows.
  • Interfaz web en http://localhost:631.
  • Soporte para múltiples protocolos (USB, IPP, LPD, SMB).
  • Colas de impresión con prioridades.
  • Cuotas y restricciones por usuario.
  • Driverless printing (IPP Everywhere, AirPrint).

1.2 Componentes de CUPS

  • cupsd: el demonio principal.
  • cups-browsed: descubrimiento automático.
  • Filtros: procesan el trabajo antes de enviarlo a la impresora.
  • Backends: comunican con la impresora (USB, IPP, etc.).
  • PPD files: describen las capacidades de la impresora.

1.3 Protocolos soportados

ProtocoloUso
IPPEstándar moderno (AirPrint, IPP Everywhere)
LPDProtocolo antiguo de Unix
SMB/CIFSImpresoras Windows compartidas
Socket (JetDirect)Puerto 9100, muy común
USBImpresoras locales

1.4 ¿Por qué usar CUPS?

  • Estándar en Linux y Unix.
  • Fácil de configurar.
  • Interfaz web.
  • Soporte para casi cualquier impresora.
  • Compatible con macOS e iOS (AirPrint).
  • Ampliable con plugins.

Consulta Guía Completa de Servidores para otras herramientas de infraestructura.


2. Instalación

2.1 Ubuntu / Debian

sudo apt update
sudo apt install cups cups-client cups-bsd cups-filters printer-driver-all -y

Paquetes:

  • cups: servidor.
  • cups-client: comandos lp, lpr, lpstat.
  • cups-bsd: compatibilidad BSD.
  • cups-filters: filtros modernos.
  • printer-driver-all: todos los drivers disponibles.

2.2 Fedora / RHEL / Rocky / AlmaLinux

sudo dnf install cups cups-client cups-filters -y

2.3 Arch Linux

sudo pacman -S cups cups-pdf

2.4 Habilitar el servicio

sudo systemctl enable cups
sudo systemctl start cups
sudo systemctl status cups

Deberías ver «active (running)».

2.5 Verificar que CUPS funciona

Abre en el navegador:

http://localhost:631

Deberías ver la interfaz web de CUPS.

2.6 Instalar drivers adicionales (opcional)

Impresoras HP:

sudo apt install hplip hplip-gui -y

Impresoras Brother:

# Descarga el driver del sitio de Brother
# O usa:
sudo apt install printer-driver-brlaser

Impresoras Epson:

sudo apt install printer-driver-escpr

Impresoras Canon:

sudo apt install printer-driver-cnijfilter

Consulta Guía Completa de Linux para gestión de paquetes.


3. Configuración segura

3.1 Editar el archivo de configuración

sudo nano /etc/cups/cupsd.conf

⚠️ Haz backup antes:

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

3.2 Configuración recomendada

Busca y modifica:

# Escuchar en todas las interfaces (solo si necesitas red)
Listen 0.0.0.0:631
Listen /run/cups/cups.sock

# Permitir descubrimiento
Browsing On
BrowseLocalProtocols dnssd

# Autenticación
DefaultAuthType Basic
WebInterface Yes

3.3 Configurar permisos de acceso

⚠️ CRÍTICO: no permitas acceso total sin autenticación.

Configuración segura (ejemplo):

# Acceso básico (solo lectura para todos)
<Location />
  Order allow,deny
  Allow @LOCAL
  Allow 192.168.1.0/24
</Location>

# Acceso administrativo (requiere autenticación)
<Location /admin>
  Order allow,deny
  Allow @LOCAL
  Allow 192.168.1.0/24
  AuthType Default
  Require user @SYSTEM
</Location>

# Configuración del servidor
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Trabajos de impresión
<Location /jobs>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Impresoras
<Location /printers>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

Significado:

  • @LOCAL: permite conexiones locales.
  • 192.168.1.0/24: permite la red local.
  • Require user @SYSTEM: solo usuarios del grupo lpadmin.

3.4 Añadir usuario al grupo lpadmin

sudo usermod -aG lpadmin $USER

Cierra sesión y vuelve a entrar para aplicar los cambios.

3.5 Reiniciar CUPS

sudo systemctl restart cups

3.6 Verificar acceso

  1. Abre http://localhost:631.
  2. Intenta acceder a Administración.
  3. Te pedirá usuario y contraseña (los de tu sistema).

3.7 NUNCA exponer CUPS directamente a internet

⚠️ Si expones CUPS a internet:

  • Riesgo de abuso (impresión no autorizada).
  • Exposición de información de impresoras.
  • Vectores de ataque conocidos.

Solución: usa VPN para acceso remoto.

Consulta Cómo montar tu propio servidor de VPN y Zero Trust.


4. Añadir impresoras

4.1 Método 1: Interfaz web

  1. Abre http://localhost:631.
  2. Ve a Administración → Añadir impresora.
  3. Introduce usuario y contraseña (del grupo lpadmin).
  4. Selecciona la impresora:
    • USB: aparece automáticamente.
    • Red: IPP, LPD, SMB, Socket.
  5. Configura:
    • Nombre.
    • Descripción.
    • Ubicación.
    • Compartir (marcar si quieres compartirla).
  6. Selecciona el driver o usa IPP Everywhere (sin driver).
  7. Configura opciones (tamaño, calidad).

4.2 Método 2: Línea de comandos

Listar impresoras detectadas:

lpinfo -v

Añadir una impresora USB:

lpadmin -p MiImpresora -E -v usb://HP/LaserJet%20P1102 -m everywhere
  • -p: nombre.
  • -E: habilitar y aceptar trabajos.
  • -v: dispositivo.
  • -m everywhere: driverless (IPP Everywhere).

Añadir una impresora de red (Socket):

lpadmin -p ImpresoraRed -E -v socket://192.168.1.50:9100 -m everywhere

Añadir una impresora IPP:

lpadmin -p ImpresoraIPP -E -v ipp://192.168.1.50/ipp/print -m everywhere

4.3 Configurar como predeterminada

lpadmin -d MiImpresora

O:

lpoptions -d MiImpresora

4.4 Verificar impresoras instaladas

lpstat -p -d

Resultado:

printer MiImpresora is idle.  enabled since ...
system default destination: MiImpresora

4.5 Imprimir una página de prueba

lp -d MiImpresora /usr/share/cups/data/testprint

O desde la interfaz web: Impresoras → MiImpresora → Print Test Page.


5. Compartir en red

5.1 Habilitar uso compartido

En /etc/cups/cupsd.conf:

Browsing On
BrowseLocalProtocols dnssd

En la interfaz web:

  1. Administración → Configuración del servidor.
  2. Marca «Compartir impresoras conectadas a este sistema».
  3. Marca «Permitir impresión desde Internet» (opcional, cuidado).
  4. Guardar.

5.2 Configurar la impresora como compartida

lpadmin -p MiImpresora -o printer-is-shared=true

5.3 Abrir puerto en el firewall

sudo ufw allow 631/tcp
sudo ufw allow 5353/udp  # Para Avahi/Bonjour

Consulta Guía para configurar firewall en Debian y Cómo configurar firewall en Linux.

5.4 Conectar desde otro equipo Linux

Automático (con Avahi):

sudo apt install avahi-daemon cups-browsed

CUPS descubrirá automáticamente las impresoras de la red.

Manual:

lpadmin -p ImpresoraRemota -E -v ipp://192.168.1.100:631/printers/MiImpresora -m everywhere

5.5 Conectar desde Windows

Windows 10/11:

  1. Configuración → Dispositivos → Impresoras y escáneres → Agregar impresora.
  2. Espera a que aparezca la impresora de red.
  3. O introduce manualmente: http://192.168.1.100:631/printers/MiImpresora.

5.6 Conectar desde macOS

Automático (Bonjour):

  1. Preferencias del sistema → Impresoras y escáneres.
  2. macOS detectará las impresoras automáticamente.

Manual:

  1. Añadir impresora.
  2. Seleccionar IP → Protocolo IPP.
  3. Dirección: 192.168.1.100/printers/MiImpresora.

5.7 Conectar desde móvil (iOS/Android)

Con AirPrint (iOS):

  • La impresora aparece automáticamente si CUPS la comparte con Avahi.

Android:

  • Apps como Mopria o CUPS Print.
  • O usa Google Cloud Print (descontinuado).

6. Avahi y descubrimiento automático

Avahi implementa Zeroconf/Bonjour, que permite el descubrimiento automático de impresoras en la red.

6.1 Instalar Avahi

sudo apt install avahi-daemon avahi-utils -y
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon

6.2 Verificar funcionamiento

avahi-browse -art | grep printer

Deberías ver las impresoras de la red.

6.3 Instalar cups-browsed

sudo apt install cups-browsed -y
sudo systemctl enable cups-browsed
sudo systemctl start cups-browsed

cups-browsed sincroniza automáticamente impresoras de red.

6.4 Configuración de cups-browsed

Edita /etc/cups/cups-browsed.conf:

BrowseProtocols dnssd
BrowseAllow all
BrowseLocalProtocols dnssd

Reinicia:

sudo systemctl restart cups-browsed

6.5 Ver impresoras detectadas

lpstat -p

Deberías ver impresoras locales y remotas.

Consulta Guía Completa de Redes para entender Zeroconf.


7. Impresoras IP y de red

7.1 Tipos de conexión

TipoPuertoUso
IPP631Estándar moderno
Socket (JetDirect)9100Muy común
LPD515Protocolo antiguo
SMB/CIFS445Impresoras Windows

7.2 Encontrar la IP de la impresora

Método 1: imprime la página de configuración de red desde el panel de la impresora.

Método 2: escanea la red:

sudo nmap -p 631,9100 192.168.1.0/24

Consulta Cómo comprobar la seguridad de tu red con Nmap.

Método 3: busca en el router.

7.3 Añadir impresora IPP

lpadmin -p ImpresoraIPP -E -v ipp://192.168.1.50/ipp/print -m everywhere

Ventajas IPP:

  • Cifrado (IPP over TLS).
  • Descubrimiento automático.
  • AirPrint nativo.
  • Driverless (IPP Everywhere).

7.4 Añadir impresora Socket (JetDirect)

lpadmin -p ImpresoraSocket -E -v socket://192.168.1.50:9100 -m everywhere

Ventajas:

  • Muy compatible.
  • Fácil de configurar.

Desventajas:

  • Sin cifrado.
  • Sin estado.

7.5 Añadir impresora LPD

lpadmin -p ImpresoraLPD -E -v lpd://192.168.1.50/queue -m everywhere

7.6 Añadir impresora SMB

lpadmin -p ImpresoraSMB -E -v smb://usuario:password@192.168.1.50/Impresora

Consulta Guía de Samba.

7.7 IPP con cifrado

lpadmin -p ImpresoraIPPSSL -E -v ipps://192.168.1.50/ipp/print -m everywhere

8. Cuotas y restricciones

8.1 ¿Por qué usar cuotas?

  • Limitar consumo de papel/tinta.
  • Controlar costes.
  • Evitar abusos.
  • Fomentar uso responsable.

8.2 Configurar cuotas con lpadmin

Habilitar cuotas:

sudo lpadmin -p MiImpresora -o job-quota-period=604800 -o job-k-limit=500
  • job-quota-period: 604800 segundos = 1 semana.
  • job-k-limit: 500 KB por usuario por periodo.

Ver cuotas:

sudo lpquota -p MiImpresora

8.3 Restricciones por usuario

Con archivos de políticas avanzadas.

Crea /etc/cups/printers.conf.d/restricciones.conf:

<Printer MiImpresora>
  Policy MiPolitica
</Printer>

Crea /etc/cups/policies.conf:

<Policy MiPolitica>
  <Limit All>
    Order allow,deny
    Allow usuario1
    Allow usuario2
    Deny all
  </Limit>
</Policy>

Solución más simple: usa el plugin cups-tea4cups o pykota.

8.4 Limitar tamaño de trabajos

sudo lpadmin -p MiImpresora -o job-size-limit=10485760

10 MB máximo por trabajo.

8.5 Restringir por grupos

Edita cupsd.conf:

<Location /printers/MiImpresora>
  Order allow,deny
  Allow @admins
  Deny all
</Location>

Solo el grupo admins puede imprimir.


9. Seguridad

9.1 Principios básicos

  1. Autenticación obligatoria para administración.
  2. Firewall restrictivo (solo red local).
  3. HTTPS cuando sea posible.
  4. Nunca exponer a internet.
  5. Monitoreo de uso.

9.2 HTTPS en CUPS

Generar certificado autofirmado:

sudo openssl req -new -x509 -days 365 -nodes \
    -out /etc/cups/ssl/server.crt \
    -keyout /etc/cups/ssl/server.key

Habilitar en cupsd.conf:

Encryption Required

Reinicia:

sudo systemctl restart cups

Acceso:

https://localhost:631

9.3 Autenticación con LDAP

Edita /etc/cups/cupsd.conf:

<Policy default>
  <Limit All>
    Order deny,allow
    AuthType Basic
    AuthClass Group
    AuthGroupName lpadmin
  </Limit>
</Policy>

Configuración LDAP avanzada: edita /etc/cups/cups-files.conf.

Consulta Gestión de identidades y accesos (IAM).

9.4 Firewall

sudo ufw allow from 192.168.1.0/24 to any port 631 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 5353 proto udp
sudo ufw enable

Consulta Guía para configurar firewall en Debian.

9.5 VPN para acceso remoto

Recomendado: monta una VPN para acceso remoto.

sudo apt install wireguard

Consulta Cómo montar tu propio servidor de VPN.

9.6 Fail2ban para CUPS

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Añade a jail.local:

[cups]
enabled = true
port = 631
filter = cups
logpath = /var/log/cups/error_log
maxretry = 5
bantime = 86400

Consulta Cómo configurar y usar Fail2ban.

9.7 Auditar

  • Revisar logs de CUPS.
  • Monitorear trabajos.
  • Alertas de actividad sospechosa.

Consulta Análisis de registros en Linux.


10. Mantenimiento

10.1 Ver logs

sudo tail -f /var/log/cups/error_log
sudo tail -f /var/log/cups/access_log

10.2 Ver trabajos actuales

lpstat -o

10.3 Cancelar un trabajo

cancel job-id
cancel -a MiImpresora    # Cancelar todos

10.4 Limpiar cola

sudo systemctl stop cups
sudo rm -rf /var/spool/cups/*
sudo systemctl start cups

10.5 Reiniciar impresora

cupsenable MiImpresora
cupsaccept MiImpresora

10.6 Ver estadísticas

lpstat -p -d -t

10.7 Actualizar CUPS

sudo apt update && sudo apt upgrade cups

Consulta Optimización de servidores Linux.


11. Troubleshooting

11.1 La impresora no aparece en la interfaz web

Causas:

  • No detectada correctamente.
  • Driver faltante.
  • Permisos.

Solución:

lpinfo -v
dmesg | grep -i printer

11.2 Los trabajos se quedan en cola

Causas:

  • Impresora apagada o desconectada.
  • Driver incorrecto.
  • Problema de red.

Solución:

lpstat -p -d
sudo tail -f /var/log/cups/error_log

11.3 Error «Forbidden» en la interfaz web

Causas:

  • No estás en el grupo lpadmin.
  • Configuración de cupsd.conf.

Solución:

sudo usermod -aG lpadmin $USER
# Cerrar sesión y volver a entrar

11.4 No puedo acceder a CUPS remotamente

Causas:

  • Listen mal configurado.
  • Firewall.

Solución:

# En cupsd.conf
Listen 0.0.0.0:631

# Firewall
sudo ufw allow from 192.168.1.0/24 to any port 631

11.5 Impresora imprime mal (colores, tamaño)

Causas:

  • Driver incorrecto.
  • Configuración de página.

Solución: desde la interfaz web, ve a Impresoras → MiImpresora → Establecer opciones predeterminadas.

11.6 Trabajo eternamente «processing»

Causas:

  • Filtro atascado.
  • Problema de red.

Solución:

sudo cancel -a MiImpresora
sudo systemctl restart cups

11.7 No detecta impresoras de red (Avahi)

Causas:

  • Avahi no instalado.
  • Red bloquea multicast.

Solución:

sudo apt install avahi-daemon cups-browsed
sudo systemctl restart avahi-daemon cups-browsed

11.8 Permisos al añadir impresora

Causa: usuario no está en lpadmin.

Solución:

sudo usermod -aG lpadmin $USER

11.9 Error «client-error-not-possible»

Causas:

  • Impresora no acepta trabajos.
  • Cola deshabilitada.

Solución:

cupsenable MiImpresora
cupsaccept MiImpresora

11.10 CUPS no arranca

Solución:

sudo systemctl status cups
sudo journalctl -u cups -n 50
sudo cupsd -t   # Verificar configuración

11.11 Driver incompatible

Solución:

  • Instala drivers específicos del fabricante.
  • Usa IPP Everywhere (driverless).
lpadmin -p MiImpresora -E -v ipp://IP/ipp/print -m everywhere

11.12 Impresora USB no detectada

Solución:

lsusb
dmesg | grep -i usb
sudo systemctl restart cups

Prueba en otro puerto USB.


12. FAQ

¿Qué es CUPS y por qué usarlo?

CUPS (Common UNIX Printing System) es el sistema de impresión estándar en Linux, macOS y Unix.

Ventajas:

  • Compatible con IPP, Samba, AirPrint.
  • Interfaz web.
  • Colas con prioridades.
  • Cuotas por usuario.

Recomendado para cualquier servidor de impresión en Linux.

¿CUPS es seguro?

Sí, si lo configuras bien:

  • Autenticación obligatoria.
  • Firewall restrictivo.
  • HTTPS.
  • Sin exposición a internet.

Sin configuración adecuada, puede ser un vector de ataque. Consulta Guía Completa de Ciberseguridad.

¿Cómo añado una impresora USB?

Automático:

lpinfo -v | grep usb
lpadmin -p MiImpresora -E -v usb://HP/LaserJet -m everywhere

Manual: desde la interfaz web (http://localhost:631).

¿Cómo añado una impresora de red?

Por IPP:

lpadmin -p Impresora -E -v ipp://192.168.1.50/ipp/print -m everywhere

Por Socket:

lpadmin -p Impresora -E -v socket://192.168.1.50:9100 -m everywhere

Consulta Guía Completa de Redes.

¿Qué es IPP Everywhere?

IPP Everywhere es un estándar de impresión sin drivers.

Ventajas:

  • No requiere drivers específicos.
  • Compatible con la mayoría de impresoras modernas.
  • AirPrint nativo.

Uso:

lpadmin -p MiImpresora -E -v ipp://IP/ipp/print -m everywhere

¿Cómo comparto la impresora en la red?

  1. Habilita compartir en cupsd.conf:
Browsing On
BrowseLocalProtocols dnssd
  1. Marca «Compartir impresoras» en la web.
  2. Abre puerto 631 en el firewall.
  3. Configura Avahi para descubrimiento.

¿Puedo usar CUPS con Windows?

Sí, de varias formas:

  1. IPP: Windows 10/11 soportan IPP nativo.
  2. Samba: compartir como SMB.
  3. LPD: protocolo antiguo.

Consulta Guía de Samba.

¿Cómo aplico cuotas de impresión?

Básico:

sudo lpadmin -p MiImpresora -o job-quota-period=604800 -o job-k-limit=500

Avanzado: usa pykota o tea4cups para cuotas más granulares.

¿Cómo hago backup de la configuración?

sudo tar -czf cups-backup-$(date +%F).tar.gz /etc/cups/

Incluye:

  • cupsd.conf
  • printers.conf
  • ppd/
  • ssl/

¿Cómo migro CUPS a otro servidor?

  1. Backup en origen:
sudo tar -czf cups-backup.tar.gz /etc/cups/
  1. Copiar al destino.
  2. Extraer en el destino:
sudo tar -xzf cups-backup.tar.gz -C /
  1. Reiniciar CUPS:
sudo systemctl restart cups

¿Qué hacer si CUPS consume mucha CPU?

Causas:

  • Filtros pesados.
  • Cola atascada.
  • Driver defectuoso.

Solución:

  • Revisa /var/log/cups/error_log.
  • Reinicia CUPS.
  • Usa IPP Everywhere en lugar de drivers pesados.

¿Puedo imprimir desde el móvil?

Sí, con AirPrint (iOS) o apps como Mopria (Android).

Requisito: CUPS + Avahi configurados para compartir.

¿CUPS sirve para impresoras de red profesionales?

Sí. CUPS es estándar en:

  • Empresas.
  • Universidades.
  • Bibliotecas.
  • Impresoras de producción.

Con cuotas y autenticación, es totalmente válido.

¿Es necesario Avahi?

No es obligatorio, pero recomendado para:

  • Descubrimiento automático.
  • AirPrint.
  • Compatibilidad con macOS/iOS.

Sin Avahi: hay que añadir impresoras manualmente.


13. Conclusión

CUPS es la solución estándar, robusta y flexible para montar un servidor de impresión en Linux. Con una configuración adecuada, puedes:

  • Compartir impresoras en toda la red.
  • Gestionar colas con prioridades.

Deja un comentario