GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configurar el servidor de impresión CUPS en Ubuntu (Bonjour, IPP, Samba, AirPrint)

Este tutorial le mostrará cómo compartir una impresora conectada a una computadora Ubuntu con clientes de Windows, macOS e iOS en la misma red. TAZAS (Common Unix Printing System) es el sistema de impresión predeterminado en Linux, FreeBSD y macOS. Su entorno de escritorio Linux puede tener una utilidad de configuración de impresora dedicada, pero todos usan CUPS bajo el capó.

La impresora CUPS se puede compartir en la red utilizando varios protocolos, incluidos:

  • Bonjour + IPP :Bonjour, también conocido como mDNS/DNS-SD (descubrimiento de servicios DNS/DNS de multidifusión), permite que una computadora encuentre servicios en la red local. IPP (Protocolo de impresión de Internet) es el protocolo de transporte.
  • PYMES :también conocido como Samba, se utiliza principalmente para compartir archivos e impresoras con clientes de Windows.
  • Impresión de aire :permite que los clientes de iPhone, iPad y macOS impriman a través de Wi-Fi.

Cada protocolo tiene sus ventajas y desventajas. Primero, le mostraré cómo instalar y configurar CUPS. Luego, aprenderemos cómo compartir la impresora CUPS a través de los 3 protocolos anteriores. Recomiendo usar los 3 métodos para compartir su impresora, para que los usuarios puedan encontrar una impresora disponible en la red local con un mínimo esfuerzo.

Paso 1:Instalar y configurar CUPS en Ubuntu

La edición de escritorio de Ubuntu tiene CUPS preinstalado. Si usa la edición del servidor Ubuntu, debe ejecutar el siguiente comando para instalar CUPS desde el repositorio predeterminado de Ubuntu.

sudo apt install cups

Luego inicie CUPS.

sudo systemctl start cups

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable cups

Compruebe su estado:

systemctl status cups

Salida de muestra:

A continuación, edite el archivo de configuración principal de CUPS con un editor de texto de línea de comandos como Nano.

sudo nano /etc/cups/cupsd.conf

Primero, necesitamos mostrar las impresoras compartidas en la red local. Busque la siguiente línea.

Browsing Off

Cámbialo a

Browsing On

para que otras computadoras en la misma red puedan ver las impresoras conectadas a su computadora con Ubuntu.

De forma predeterminada, la interfaz web de CUPS solo está disponible en localhost:631 . Si está ejecutando la edición del servidor Ubuntu, también puede hacer que CUPS escuche en todas las interfaces de red disponibles, de modo que pueda acceder a la interfaz web de CUPS desde otras computadoras. Busque la siguiente línea.

Listen localhost:631

Cámbialo a

Port 631

Entonces CUPS escuchará en todas las interfaces de red. Luego busque las siguientes líneas.

<Location />
  Order allow,deny
</Location>

La configuración anterior permite el acceso a la interfaz web de CUPS solo desde localhost. Para permitir el acceso desde otras computadoras en la misma red, agregue Allow @LOCAL a la configuración como a continuación.

<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

También agréguelo para el /admin directorio para permitir la administración remota desde la red local.

<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>

También puede permitir una dirección IP particular como esta:

<Location />
  Order allow,deny
  Allow 192.168.0.101
</Location>

Guarde y cierre el archivo. Luego reinicie CUPS para que los cambios surtan efecto.

sudo systemctl restart cups

Tenga en cuenta que si ha habilitado el firewall UFW en Ubuntu, debe permitir que los clientes en la misma red accedan al puerto 631 en su caja de Ubuntu. Por ejemplo, mi red privada usa el rango de red 192.168.0.0 ~192.168.0.255, así que ejecuto el siguiente comando.

sudo ufw allow in from 192.168.0.0/24 to any port 631

La interfaz web de CUPS está disponible en https://IP-address-of-Ubuntu-box:631 . No necesitamos usar la interfaz web en este artículo, pero si desea usarla, debe agregar su cuenta de usuario a lpadmin grupo para realizar cambios en la interfaz web de CUPS.

sudo adduser your_username lpadmin

Paso 2:instale el controlador para su impresora en Ubuntu

Debe instalar el controlador en Ubuntu, para que pueda reconocer y usar la impresora. Si tiene una impresora HP, puede instalar fácilmente el controlador con el siguiente comando.

sudo apt install hplip

También recomiendo instalar el printer-driver-gutenprint paquete, que proporciona controladores CUPS para impresoras Canon, Epson, HP y compatibles.

sudo apt install printer-driver-gutenprint

Si tiene otras impresoras, puede encontrar controladores en openprinting.org.

Después de instalar el controlador, es posible que deba volver a conectar la impresora al puerto USB de su computadora con Ubuntu. Para probar si el controlador funciona correctamente, puede crear un archivo de texto en Ubuntu:

echo "LinuxBabe is awesome!" > file.txt

Luego ejecute el siguiente comando para imprimir este archivo de texto desde la línea de comandos.

lp file.txt

Este es un método muy rudimentario, así que no se preocupe por la calidad de impresión ahora.

Paso 3:Comparta la impresora CUPS a través del protocolo Bonjour/IPP

Instalando Avahi-demonio

CUPS puede anunciar su presencia en la red a través del protocolo mDNS (Multicast DNS) y DNS-SD (DNS Service Discovery), también conocido como Bonjour. Para hacerlo, debe instalar y ejecutar avahi-daemon , que es un servicio similar al servicio Bonjour de Apple que permite que las computadoras descubran automáticamente dispositivos y servicios compartidos en la red local.

sudo apt install avahi-daemon

Inicie avahi-daemon.

sudo systemctl start avahi-daemon

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable avahi-daemon

Avahi-daemon escucha en el puerto UDP 5353. Ábralo en el firewall.

sudo ufw allow 5353/udp

Impresión IPP sin controlador

Bonjour se utiliza para anunciar la impresora en la red local. Para que los clientes y el servidor CUPS se comuniquen entre sí, se necesita IPP (Protocolo de impresión de Internet). La ventaja de IPP es que los clientes pueden usar la impresora compartida sin instalar ningún controlador en sus propios dispositivos. CUPS es compatible con IPP desde el primer momento, por lo que no necesita hacer nada más para compartir la impresora CUPS a través de IPP.

Paso 4:Agregue la impresora en las computadoras cliente

clientes macOS y Linux

Debido a que macOS y la mayoría de las distribuciones de escritorio de Linux tienen CUPS instalado como sistema de impresión predeterminado, una vez que haya habilitado el uso compartido de impresoras a través de Bonjour/IPP en la caja de Ubuntu, los usuarios de macOS y Linux en la misma red pueden usar la impresora automáticamente. Cuando hacen clic en la opción de impresión en las aplicaciones (procesadores de texto, lectores de correo electrónico, editores de fotos y navegadores web), la impresora estará disponible automáticamente. No tienen que agregar explícitamente la impresora. Es mágico.

Si su computadora Linux no puede encontrar la impresora, es posible que su sistema no tenga ippfind dominio. Ejecute el siguiente comando para instalarlo en una distribución de Linux basada en Debian.

sudo apt install cups-ipp-utils

En CentOS 8, ejecute el siguiente comando.

sudo dnf install cups-ipptool

Luego reinicie CUPS en la computadora cliente.

sudo systemctl restart cups

Ventanas

Windows 10 se envía con un cliente IPP. Escriba impresora en la barra de búsqueda inferior izquierda y abre Impresoras y escáneres . Luego haga clic en Agregar una impresora o escáner botón. Escaneará las impresoras disponibles en la red local.

Como puede ver, encontró mi impresora HP Deskjet. Seleccione la impresora encontrada y haga clic en Agregar dispositivo . Se añadirá a la lista de impresoras en unos momentos.

Si está utilizando una versión diferente de Windows que no puede agregar una impresora de esta manera, puede instalar los servicios de impresión de Bonjour. Una vez instalado, inicie el asistente de la impresora Bonjour. Escaneará automáticamente las impresoras disponibles en la red local. Como puede ver en la captura de pantalla, encontró mi impresora HP.

Haga clic en Siguiente, luego debe elegir un controlador para esta impresora. Puede elegir el controlador de clase IPP de Microsoft, que está instalado en el sistema de forma predeterminada.

Haga clic en Siguiente y la impresora se agregará a su sistema Windows.

Agregar impresora manualmente en Linux

Si por alguna razón no ve la impresora, puede agregar una manualmente. Para agregar una impresora compartida Bonjour en el escritorio de Linux, busque en la configuración del sistema o en el menú de la aplicación la utilidad de configuración de la impresora. Haz clic en Agregar botón para agregar una nueva impresora.

Luego haga clic en Impresora de red y escaneará automáticamente las impresoras disponibles en la red local. Como puede ver, encontró mi impresora HP Deskjet. Haz clic en Adelante botón.

Luego puede darle a la impresora un nombre y una descripción. Simplemente acepto los valores predeterminados. Haz clic en Aplicar y listo.

Agregar impresora manualmente en macOS

Para agregar una impresora compartida de Bonjour en macOS, vaya a preferencias del sistema -> Impresoras y escáneres . Haga clic en el botón más (+) para agregar una impresora.

Escaneará automáticamente las impresoras disponibles en la red local. Como puede ver, encontró mi impresora HP Deskjet.

Haz clic en Agregar y aparecerá en la lista de impresoras.

Paso 5:Comparta la impresora CUPS a través de Samba

Samba es una implementación de protocolo SMB/CIFS gratuita y de código abierto para Unix y Linux que permite compartir archivos e impresoras entre máquinas Unix/Linux y Windows en una red de área local. Se utiliza principalmente para compartir archivos e impresoras con clientes de Windows.

Para instalar Samba en Ubuntu, simplemente ejecute el siguiente comando en la terminal.

sudo apt install samba samba-common-bin

Para verificar si el servicio Samba se está ejecutando, emita los siguientes comandos.

systemctl status smbd

systemctl status nmbd

Para iniciar estos dos servicios, emita los siguientes comandos:

sudo systemctl start smbd

sudo systemctl start nmbd

Luego edite el archivo de configuración principal.

sudo nano /etc/samba/smb.conf

Se recomienda habilitar el spoolssd servicio al compartir la impresora. Esto hará que Samba sea más eficiente cuando haya muchos trabajos de impresión. Simplemente agregue las siguientes dos líneas en el [global] sección para habilitar el spoolssd servicio.

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

A continuación, vaya al final del archivo y verá las [printers] sección. En el editor de texto Nano, puede saltar al final de un archivo presionando Ctrl+W , luego presionando Ctrl+V . Encuentra las siguientes dos líneas.

browseable = no
guest ok = no

Cámbialos a

browseable = yes
guest ok = yes

Guarde y cierre el archivo. Luego reinicie Samba.

sudo systemctl restart smbd nmbd

Agregar una impresora compartida Samba en Windows.

Abra el explorador de archivos, ingrese la dirección IP de la computadora Ubuntu en la barra de direcciones como \\192.168.0.110 . La impresora ahora debería aparecer en la lista.

Haga doble clic en la impresora para agregarla a su sistema Windows. Luego haga clic en el botón Aceptar para seleccionar un controlador para instalar. Después de instalar el controlador, la impresora se agregará a su sistema Windows.

Paso 6:Comparta la impresora CUPS con clientes iOS a través de AirPrint

AirPrint permite a los clientes de iPhone, iPad y macOS imprimir a través de Wi-Fi sin instalar el software del controlador en los dispositivos cliente. CUPS es compatible con AirPrint, pero avahi-daemon de forma predeterminada, no anuncia el servicio AirPrint en la red local. Necesitamos crear un .service archivo en el /etc/avahi/services/ directorio para la impresora con un script de Python con el siguiente comando. El modelo de mi impresora es la serie DeskJet 2130. Reemplácelo con su propio nombre de modelo.

sudo nano /etc/avahi/services/AirPrint-DeskJet-2130-series.service

Agregue las siguientes líneas en el archivo.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">AirPrint DeskJet-2130-series @ %h</name>
  <service>
    <type>_ipp._tcp</type>
    <subtype>_universal._sub._ipp._tcp</subtype>
    <port>631</port>
    <txt-record>txtvers=1</txt-record>
    <txt-record>qtotal=1</txt-record>
    <txt-record>Transparent=T</txt-record>
    <txt-record>URF=none</txt-record>
    <txt-record>rp=printers/DeskJet-2130-series</txt-record>
    <txt-record>note=HP DeskJet 2130 series</txt-record>
    <txt-record>product=(GPL Ghostscript)</txt-record>
    <txt-record>printer-state=3</txt-record>
    <txt-record>printer-type=0x2900c</txt-record>
    <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-pdf</txt-record>
  </service>
</service-group>

Guarde y cierre el archivo. Reinicie Avahi-daemon.

sudo systemctl restart avahi-daemon

Ahora los clientes de iOS y macOS en la misma red deberían poder usar su impresora. La siguiente captura de pantalla muestra que mi iPhone encontró con éxito una impresora AirPrint.


Ubuntu
  1. Cómo configurar e instalar Squid Proxy Server en Ubuntu 18.04

  2. Cómo configurar un servidor OpenVPN en Ubuntu 18.04

  3. Cómo configurar un servidor LAMP de Ubuntu/Debian

  4. Cómo configurar Nginx como proxy inverso en Ubuntu 20.04

  5. ¿Instalar servidor 18.04 sin conexión de red?

Cómo configurar el servidor de correo electrónico con Plesk en Ubuntu 20.04

Cómo configurar el servidor Prosody XMPP en Ubuntu 20.04

Configure el servidor DNS autorizado BIND en Ubuntu 18.04, 16.04

Configurar el servidor de geocodificación OSM Nominatim en Ubuntu 20.04

Configurar el solucionador de DNS independiente en el servidor Ubuntu 20.04

Cómo instalar el servidor de impresión CUPS en Ubuntu 20.04 LTS