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.