GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configurazione del server di stampa CUPS su Ubuntu (Bonjour, IPP, Samba, AirPrint)

Questo tutorial ti mostrerà come condividere una stampante collegata a un computer Ubuntu con client Windows, macOS e iOS sulla stessa rete. TAZZE (Common Unix Printing System) è il sistema di stampa predefinito su Linux, FreeBSD e macOS. Il tuo ambiente desktop Linux potrebbe avere un'utilità di configurazione della stampante dedicata, ma tutti usano CUPS sotto il cofano.

La stampante CUPS può essere condivisa in rete utilizzando diversi protocolli, tra cui:

  • Bonjour + IPP :Bonjour, noto anche come mDNS/DNS-SD (multicast DNS/DNS service discovery), consente a un computer di trovare servizi sulla rete locale. IPP (Internet Printing Protocol) è il protocollo di trasporto.
  • PMI :alias Samba, utilizzato principalmente per condividere file e stampanti con client Windows.
  • AirPrint :consente ai client iPhone, iPad e macOS di stampare tramite Wi-Fi.

Ogni protocollo ha i suoi vantaggi e svantaggi. Per prima cosa, ti mostrerò come installare e configurare CUPS. Quindi impareremo come condividere la stampante CUPS tramite i 3 protocolli sopra. Consiglio di utilizzare tutti e 3 i metodi per condividere la stampante, in modo che gli utenti possano trovare una stampante disponibile sulla rete locale con il minimo sforzo.

Fase 1:installa e configura CUPS su Ubuntu

L'edizione desktop di Ubuntu ha CUPS preinstallato. Se usi l'edizione del server Ubuntu, devi eseguire il comando seguente per installare CUPS dal repository Ubuntu predefinito.

sudo apt install cups

Quindi avvia CUPS.

sudo systemctl start cups

Abilita l'avvio automatico all'avvio.

sudo systemctl enable cups

Controlla il suo stato:

systemctl status cups

Esempio di output:

Quindi, modifica il file di configurazione principale di CUPS con un editor di testo a riga di comando come Nano.

sudo nano /etc/cups/cupsd.conf

Innanzitutto, dobbiamo mostrare le stampanti condivise sulla rete locale. Trova la riga seguente.

Browsing Off

Cambialo in

Browsing On

in modo che altri computer nella stessa rete possano vedere le stampanti collegate al tuo computer Ubuntu.

Per impostazione predefinita, l'interfaccia web di CUPS è disponibile solo su localhost:631 . Se stai utilizzando l'edizione del server Ubuntu, potresti anche voler fare in modo che CUPS ascolti su tutte le interfacce di rete disponibili, in modo da poter accedere all'interfaccia web di CUPS da altri computer. Trova la riga seguente.

Listen localhost:631

Cambialo in

Port 631

Quindi CUPS ascolterà su tutte le interfacce di rete. Quindi trova le seguenti righe.

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

La configurazione di cui sopra consente l'accesso all'interfaccia web di CUPS solo da localhost. Per consentire l'accesso da altri computer nella stessa rete, aggiungi Allow @LOCAL alla configurazione come di seguito.

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

Aggiungilo anche per /admin directory per consentire l'amministrazione remota dalla rete locale.

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

Puoi anche consentire un particolare indirizzo IP in questo modo:

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

Salva e chiudi il file. Quindi riavvia CUPS per rendere effettive le modifiche.

sudo systemctl restart cups

Nota che se hai abilitato il firewall UFW su Ubuntu, devi consentire ai client nella stessa rete di accedere alla porta 631 sul tuo box Ubuntu. Ad esempio, la mia rete privata utilizza l'intervallo di rete 192.168.0.0 ~192.168.0.255, quindi eseguo il comando seguente.

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

L'interfaccia web di CUPS è disponibile su https://IP-address-of-Ubuntu-box:631 . Non è necessario utilizzare l'interfaccia web in questo articolo, ma se vuoi utilizzarla, devi aggiungere il tuo account utente a lpadmin gruppo per apportare modifiche nell'interfaccia web di CUPS.

sudo adduser your_username lpadmin

Passaggio 2:installa il driver per la tua stampante su Ubuntu

È necessario installare il driver su Ubuntu, in modo che possa riconoscere e utilizzare la stampante. Se hai una stampante HP, puoi facilmente installare il driver con il seguente comando.

sudo apt install hplip

Consiglio anche di installare printer-driver-gutenprint pacchetto, che fornisce i driver CUPS per Canon, Epson, HP e stampanti compatibili.

sudo apt install printer-driver-gutenprint

Se hai altre stampanti, puoi trovare i driver su openprinting.org.

Dopo aver installato il driver, potrebbe essere necessario ricollegare la stampante alla porta USB del tuo computer Ubuntu. Per verificare se il driver funziona correttamente, puoi creare un file di testo su Ubuntu:

echo "LinuxBabe is awesome!" > file.txt

Quindi esegui il comando seguente per stampare questo file di testo dalla riga di comando.

lp file.txt

Questo è un metodo molto rudimentale, quindi non preoccuparti della qualità di stampa ora.

Fase 3:condividi la stampante CUPS tramite il protocollo Bonjour/IPP

Installazione del demone Avahi

CUPS può annunciare la sua presenza sulla rete tramite il protocollo mDNS (multicast DNS) e DNS-SD (DNS Service Discovery), noto anche come Bonjour. Per farlo, devi installare ed eseguire avahi-daemon , che è un servizio simile al servizio Apple Bonjour che consente ai computer di rilevare automaticamente dispositivi e servizi condivisi sulla rete locale.

sudo apt install avahi-daemon

Avvia avahi-daemon.

sudo systemctl start avahi-daemon

Abilita l'avvio automatico all'avvio.

sudo systemctl enable avahi-daemon

Avahi-daemon è in ascolto sulla porta UDP 5353. Aprilo nel firewall.

sudo ufw allow 5353/udp

Stampa senza driver IPP

Bonjour viene utilizzato per pubblicizzare la stampante sulla rete locale. Per fare in modo che i client e il server CUPS comunichino tra loro, è necessario IPP (Internet Printing Protocol). Il vantaggio di IPP è che i client possono utilizzare la stampante condivisa senza installare alcun driver sui propri dispositivi. CUPS supporta IPP immediatamente, quindi non devi fare nient'altro per condividere la stampante CUPS tramite IPP.

Fase 4:aggiungi la stampante sui computer client

Client macOS e Linux

Poiché macOS e la maggior parte delle distribuzioni desktop Linux hanno CUPS installato come sistema di stampa predefinito, una volta abilitata la condivisione della stampante tramite Bonjour/IPP su Ubuntu, gli utenti macOS e Linux nella stessa rete possono utilizzare automaticamente la stampante. Quando fanno clic sull'opzione di stampa nelle applicazioni (elaboratori di testi, lettori di posta elettronica, editor di foto e browser Web), la stampante sarà automaticamente disponibile. Non devono aggiungere esplicitamente la stampante. È magico.

Se il tuo computer Linux non riesce a trovare la stampante, è possibile che il tuo sistema non disponga di ippfind comando. Esegui il comando seguente per installarlo su una distribuzione Linux basata su Debian.

sudo apt install cups-ipp-utils

Su CentOS 8, esegui il comando seguente.

sudo dnf install cups-ipptool

Quindi riavvia CUPS sul computer client.

sudo systemctl restart cups

Finestre

Windows 10 viene fornito con un client IPP. Digita stampante nella barra di ricerca in basso a sinistra e apri Stampanti e scanner . Quindi fai clic su Aggiungi una stampante o uno scanner pulsante. Scansionerà le stampanti disponibili sulla rete locale.

Come puoi vedere, ha trovato la mia stampante HP Deskjet. Seleziona la stampante trovata e fai clic su Aggiungi dispositivo . Verrà aggiunto all'elenco delle stampanti in pochi istanti.

Se stai utilizzando una versione diversa di Windows che non può aggiungere la stampante in questo modo, puoi installare i servizi Bonjour Print. Una volta installato, avvia la procedura guidata della stampante Bonjour. Scansionerà automaticamente le stampanti disponibili sulla rete locale. Come puoi vedere dallo screenshot, ha trovato la mia stampante HP.

Fare clic su Avanti, quindi è necessario scegliere un driver per questa stampante. Puoi scegliere il driver di classe Microsoft IPP, che è installato nel sistema per impostazione predefinita.

Fai clic su Avanti e la stampante verrà aggiunta al tuo sistema Windows.

Aggiunta manuale della stampante su Linux

Se per qualsiasi motivo non vedi la stampante, puoi aggiungerne una manualmente. Per aggiungere una stampante condivisa Bonjour su desktop Linux, cerca le impostazioni di sistema o il menu dell'applicazione per l'utilità di configurazione della stampante. Fai clic su Aggiungi pulsante per aggiungere una nuova stampante.

Quindi fare clic su Stampante di rete per scansionare automaticamente le stampanti disponibili sulla rete locale. Come puoi vedere, ha trovato la mia stampante HP Deskjet. Fai clic su Avanti pulsante.

Quindi puoi dare alla stampante un nome e una descrizione. Accetto semplicemente i valori predefiniti. Fai clic su Applica e il gioco è fatto.

Aggiunta manuale della stampante su macOS

Per aggiungere una stampante condivisa Bonjour su macOS, vai a Preferenze di sistema -> Stampanti e scanner . Fare clic sul pulsante più (+) per aggiungere una stampante.

Scansionerebbe automaticamente le stampanti disponibili sulla rete locale. Come puoi vedere, ha trovato la mia stampante HP Deskjet.

Fai clic su Aggiungi e apparirà nell'elenco delle stampanti.

Fase 5:condividi la stampante CUPS tramite Samba

Samba è un'implementazione del protocollo SMB/CIFS gratuita e open source per Unix e Linux che consente la condivisione di file e stampe tra macchine Unix/Linux e Windows in una rete locale. Viene utilizzato principalmente per condividere file e stampanti con client Windows.

Per installare Samba su Ubuntu, esegui semplicemente il seguente comando nel terminale.

sudo apt install samba samba-common-bin

Per verificare se il servizio Samba è in esecuzione, immetti i seguenti comandi.

systemctl status smbd

systemctl status nmbd

Per avviare questi due servizi, immetti i seguenti comandi:

sudo systemctl start smbd

sudo systemctl start nmbd

Quindi modifica il file di configurazione principale.

sudo nano /etc/samba/smb.conf

Si consiglia di abilitare spoolssd servizio durante la condivisione della stampante. Ciò renderà Samba più efficiente quando ci sono molti lavori di stampa. Aggiungi semplicemente le seguenti due righe nel [global] sezione per abilitare lo spoolssd servizio.

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

Quindi, vai alla fine del file e vedrai il [printers] sezione. Nell'editor di testo Nano, puoi saltare alla fine di un file premendo Ctrl+W , quindi premendo Ctrl+V . Trova le due righe seguenti.

browseable = no
guest ok = no

Cambiali in

browseable = yes
guest ok = yes

Salva e chiudi il file. Quindi riavvia Samba.

sudo systemctl restart smbd nmbd

Aggiunta di una stampante condivisa Samba in Windows.

Apri Esplora file, inserisci l'indirizzo IP del computer Ubuntu nella barra degli indirizzi come \\192.168.0.110 . La stampante dovrebbe ora essere elencata.

Fare doppio clic sulla stampante per aggiungerla al sistema Windows. Quindi fare clic sul pulsante OK per selezionare un driver da installare. Dopo aver installato il driver, la stampante verrà aggiunta al tuo sistema Windows.

Passaggio 6:condividi la stampante CUPS con i client iOS tramite AirPrint

AirPrint consente ai client iPhone, iPad e macOS di stampare tramite Wi-Fi senza installare il software del driver sui dispositivi client. CUPS supporta AirPrint, ma avahi-daemon per impostazione predefinita non annuncia il servizio AirPrint sulla rete locale. Dobbiamo creare un .service file nel /etc/avahi/services/ directory per la stampante con uno script Python con il comando seguente. Il modello della mia stampante è DeskJet 2130 series. Sostituiscilo con il nome del tuo modello.

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

Aggiungi le seguenti righe nel file.

<?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>

Salva e chiudi il file. Riavvia il demone Avahi.

sudo systemctl restart avahi-daemon

Ora i client iOS e macOS nella stessa rete dovrebbero essere in grado di utilizzare la tua stampante. Lo screenshot seguente mostra che il mio iPhone ha trovato correttamente una stampante AirPrint.


Ubuntu
  1. Come configurare e installare il server proxy Squid su Ubuntu 18.04

  2. Come configurare un server OpenVPN su Ubuntu 18.04

  3. Come configurare un server LAMP Ubuntu/Debian

  4. Come configurare Nginx come proxy inverso su Ubuntu 20.04

  5. Installare il server 18.04 senza connessione di rete?

Come configurare il server di posta elettronica con Plesk su Ubuntu 20.04

Come configurare il server Prosody XMPP su Ubuntu 20.04

Configura il server DNS autorevole BIND su Ubuntu 18.04, 16.04

Configura il server di geocodifica OSM Nominatim su Ubuntu 20.04

Imposta un risolutore DNS non legato sul server Ubuntu 20.04

Come installare CUPS Print Server su Ubuntu 20.04 LTS