Tento tutoriál vám ukáže, jak sdílet tiskárnu připojenou k počítači CentOS 8/RHEL 8 s klienty Windows, macOS a iOS ve stejné síti. CUPS (Common Unix Printing System) je výchozí tiskový systém v systémech Linux, FreeBSD a macOS. Vaše desktopové prostředí Linux může mít vyhrazený nástroj pro konfiguraci tiskárny, ale všechny používají pod kapotou CUPS. Tiskárnu CUPS lze sdílet v síti pomocí několika protokolů, včetně:
- Bonjour + IPP :Bonjour, také známý jako mDNS/DNS-SD (multicast DNS/DNS service discovery), umožňuje počítači najít služby v místní síti. IPP (Internet Printing Protocol) je přenosový protokol.
- SMB :aka Samba, používá se hlavně ke sdílení souborů a tiskáren s klienty Windows.
- AirPrint :Umožňuje klientům iPhone, iPad a macOS tisknout přes Wi-Fi.
Každý protokol má své výhody a nevýhody. Nejprve vám ukážu, jak nainstalovat a nakonfigurovat CUPS. Poté se naučíme, jak sdílet tiskárnu CUPS prostřednictvím výše uvedených 3 protokolů. Ke sdílení tiskárny doporučuji používat všechny 3 způsoby, aby uživatelé mohli najít dostupnou tiskárnu v místní síti s minimálním úsilím.
Krok 1:Instalace a konfigurace CUPS na CentOS 8/RHEL 8
Desktopová edice CentOS 8/RHEL 8 má předinstalované CUPS. Pokud používáte serverovou edici CentOS 8/RHEL 8, musíte spustit následující příkaz k instalaci CUPS z výchozího úložiště CentOS 8/RHEL 8.
sudo dnf install cups
Poté spusťte CUPS.
sudo systemctl start cups
Povolit automatické spouštění při spouštění.
sudo systemctl enable cups
Zkontrolujte jeho stav:
systemctl status cups
Ukázkový výstup:
Dále upravte hlavní konfigurační soubor CUPS pomocí textového editoru příkazového řádku, jako je Nano.
sudo nano /etc/cups/cupsd.conf
Ve výchozím nastavení je webové rozhraní CUPS dostupné pouze na adrese localhost:631
. Pokud používáte serverovou edici CentOS 8/RHEL 8, možná budete chtít, aby CUPS naslouchal na všech dostupných síťových rozhraních, takže budete mít přístup k webovému rozhraní CUPS z jiných počítačů. Najděte následující řádek.
Listen localhost:631
Změňte jej na následující, CUPS tedy bude naslouchat na všech síťových rozhraních.
Port 631
Následující řádek způsobí, že CUPS zobrazí sdílené tiskárny v místní síti, takže ostatní počítače ve stejné síti uvidí tiskárny připojené k vašemu počítači CentOS 8/RHEL 8.
Browsing On
Pak najděte následující řádky.
<Location /> Order allow,deny </Location>
Výše uvedená konfigurace umožňuje přístup k webovému rozhraní CUPS pouze z localhost. Chcete-li povolit přístup z jiných počítačů ve stejné síti, přidejte Allow @LOCAL
do konfigurace jako níže.
<Location /> Order allow,deny Allow @LOCAL </Location>
Pokud chcete povolit vzdálenou správu z místní sítě, přidejte ji také pro /admin
adresář.
<Location /admin> Order allow,deny Allow @LOCAL </Location>
Uložte a zavřete soubor. Poté restartujte CUPS, aby se změny projevily.
sudo systemctl restart cups
Musíme klientům ve stejné síti umožnit přístup k portu 631 na vašem počítači CentOS 8/RHEL 8.
sudo firewall-cmd --permanent --add-port=631/tcp
Znovu načtěte firewall, aby se změna projevila.
sudo systemctl reload firewalld
Kromě hlavní cups.service
, existuje také cups-browsed.service
, který se používá ke skenování a přidávání tiskárny z místní sítě. Pokud chcete, aby váš počítač CentOS 8/RHEL 8 mohl používat další tiskárny v místní síti, spusťte tuto službu.
sudo systemctl start cups-browsed
A povolit automatické spouštění při spouštění.
sudo systemctl enable cups-browsed
Krok 2:Instalace ovladače pro vaši tiskárnu na CentOS 8/RHEL 8
Musíte nainstalovat ovladač na CentOS 8/RHEL 8, aby mohl rozpoznat a používat tiskárnu. Pokud máte tiskárnu HP, můžete ovladač snadno nainstalovat pomocí následujícího příkazu.
sudo dnf install hplip
Doporučuji také nainstalovat gutenprint-cups
balíček, který poskytuje ovladače CUPS pro tiskárny Canon, Epson, HP a kompatibilní.
sudo dnf install gutenprint-cups
Pokud máte jiné tiskárny, můžete ovladače najít na openprinting.org.
Po instalaci ovladače možná budete muset znovu připojit tiskárnu k USB portu vašeho počítače CentOS 8/RHEL 8. Chcete-li otestovat, zda ovladač funguje správně, můžete vytvořit textový soubor na CentOS 8/RHEL 8:
echo "LinuxBabe is awesome!" > file.txt
Poté spusťte následující příkaz a vytiskněte tento textový soubor z příkazového řádku.
lp file.txt
Jedná se o velmi primitivní metodu, takže se teď nebojte o kvalitu tisku.
Krok 3:Sdílejte tiskárnu CUPS prostřednictvím protokolu Bonjour/IPP
Instalace Avahi-daemon
CUPS může oznámit svou přítomnost v síti prostřednictvím protokolu mDNS (multicast DNS) a DNS-SD (DNS Service Discovery), který je také známý jako Bonjour. Chcete-li to provést, musíte nainstalovat a spustit avahi-daemon
, což je služba podobná službě Apple Bonjour, která umožňuje počítačům automaticky zjišťovat sdílená zařízení a služby v místní síti.
sudo dnf install avahi
Potřebujeme také nainstalovat nss-mdns
balíček z úložiště EPEL, který potřebují klienti k překladu .local
domény v síti.
sudo dnf install epel-release sudo dnf install nss-mdns
Spusťte avahi-daemon.
sudo systemctl start avahi-daemon
Povolit automatické spouštění při spouštění.
sudo systemctl enable avahi-daemon
Avahi-daemon naslouchá na portu UDP 5353. Otevřete jej ve firewallu.
sudo firewall-cmd --permanent --add-port=5353/udp
Znovu načtěte firewall, aby se změna projevila.
sudo systemctl reload firewalld
Tisk bez ovladače IPP
Bonjour se používá k propagaci tiskárny v místní síti. Aby spolu klienti a server CUPS komunikovali, je zapotřebí protokol IPP (Internet Printing Protocol). Výhodou IPP je, že klienti mohou používat sdílenou tiskárnu bez instalace jakéhokoli ovladače na svá vlastní zařízení. CUPS podporuje IPP ihned po vybalení, takže pro sdílení tiskárny CUPS přes IPP nemusíte dělat nic jiného.
Krok 4:Přidání tiskárny do klientských počítačů
Klienti macOS a Linux
Protože macOS a většina linuxových desktopových distribucí má nainstalovaný CUPS jako výchozí tiskový systém, jakmile povolíte sdílení tiskárny přes Bonjour/IPP na boxu CentOS 8/RHEL 8, uživatelé macOS a Linuxu ve stejné síti mohou tiskárnu automaticky používat. Když kliknou na možnost tisku v aplikacích (textové procesory, e-mailové čtečky, editory fotografií a webové prohlížeče), tiskárna bude automaticky dostupná. Nemusí výslovně přidat tiskárnu. Je to kouzlo.
Pokud váš počítač se systémem Linux nemůže najít tiskárnu, je možné, že váš systém nemá ippfind
příkaz. Spusťte následující příkaz a nainstalujte jej do distribuce Linuxu založené na Debianu.
sudo apt install cups-ipp-utils
Na CentOS 8 spusťte následující příkaz.
sudo dnf install cups-ipptool
Poté restartujte CUPS na klientském počítači.
sudo systemctl restart cups
Windows
Windows 10 se dodává s klientem IPP. Zadejte tiskárna v levém dolním vyhledávacím panelu a otevřete Tiskárny a skenery . Poté klikněte na tlačítko Přidat tiskárnu nebo skener knoflík. Prohledá dostupné tiskárny v místní síti.
Jak můžete vidět, našla moji tiskárnu HP Deskjet. Vyberte nalezenou tiskárnu a klikněte na Přidat zařízení . Za několik okamžiků bude přidána do seznamu tiskáren.
Pokud používáte jinou verzi systému Windows, která nemůže tímto způsobem přidat tiskárnu, můžete nainstalovat služby Bonjour Print. Po instalaci spusťte průvodce tiskárnou Bonjour. Automaticky prohledá dostupné tiskárny v místní síti. Jak můžete vidět na snímku obrazovky, nalezl mou tiskárnu HP.
Klepněte na tlačítko Další a poté musíte vybrat ovladač pro tuto tiskárnu. Můžete si vybrat ovladač třídy Microsoft IPP, který je standardně nainstalován v systému.
Klepněte na tlačítko Další a tiskárna bude přidána do vašeho systému Windows.
Ruční přidání tiskárny v systému Linux
Pokud z nějakého důvodu tiskárnu nevidíte, můžete ji přidat ručně. Chcete-li přidat tiskárnu sdílenou Bonjour na stolním počítači Linux, vyhledejte v nastavení systému nebo v nabídce aplikace nástroj pro konfiguraci tiskárny. Klikněte na tlačítko Přidat tlačítko pro přidání nové tiskárny.
Poté klikněte na Síťová tiskárna a automaticky se naskenují dostupné tiskárny v místní síti. Jak můžete vidět, našla moji tiskárnu HP Deskjet. Klikněte na tlačítko Vpřed tlačítko.
Poté můžete tiskárně zadat název a popis. Jednoduše akceptuji výchozí hodnoty. Klikněte na Použít a máte hotovo.
Ruční přidání tiskárny v systému macOS
Chcete-li do systému macOS přidat tiskárnu sdílenou Bonjour, přejděte na předvolby systému -> Tiskárny a skenery . Klepnutím na tlačítko plus (+) přidejte tiskárnu.
Automaticky prohledá dostupné tiskárny v místní síti. Jak můžete vidět, našel moji tiskárnu HP Deskjet.
Klikněte na tlačítko Přidat a zobrazí se v seznamu tiskáren.
Krok 5:Sdílejte tiskárnu CUPS prostřednictvím Samby
Samba je bezplatná a open-source implementace protokolu SMB/CIFS pro Unix a Linux, která umožňuje sdílení souborů a tiskáren mezi stroji Unix/Linux a Windows v místní síti. Používá se hlavně ke sdílení souborů a tiskáren s klienty Windows.
Chcete-li nainstalovat Sambu na CentOS 8/RHEL 8, spusťte následující příkaz.
sudo dnf install samba
Poté zadejte následující příkaz ke spuštění smbd
a nmbd
služba.
sudo systemctl start smb nmb
Povolit automatické spouštění při spouštění.
sudo systemctl enable smb nmb
Chcete-li zkontrolovat, zda služba Samba běží, zadejte následující příkazy.
systemctl status smb nmb
Po spuštění smb
démon bude naslouchat na TCP portech 139 a 445. nmbd
bude naslouchat na portech UDP 137 a 138. Spuštěním následujícího příkazu otevřete tyto porty ve bráně firewall.
sudo firewall-cmd --permanent --add-service=samba
Znovu načtěte démona firwall, aby se změna projevila.
sudo systemctl reload firewalld
Poté upravte hlavní konfigurační soubor.
sudo nano /etc/samba/smb.conf
Najděte [printers]
sekce. Ve výchozím nastavení to vypadá takto:
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No
Musíme změnit hodnotu browseable
na yes
, takže klienti ve stejné síti mohou najít tiskárnu a přidat guest ok = yes
abyste umožnili komukoli v síti používat tiskárnu.
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = yes guest ok = yes
Doporučuje se povolit spoolssd
službu při sdílení tiskárny. Díky tomu bude Samba efektivnější, když je hodně tiskových úloh. Jednoduše přidejte následující dva řádky do [global]
pro aktivaci spoolssd
služba.
rpc_server:spoolss = external rpc_daemon:spoolssd = fork
Uložte a zavřete soubor. Poté restartujte Sambu.
sudo systemctl restart smb nmb
Přidání sdílené tiskárny Samba v systému Windows.
Otevřete Průzkumníka souborů, do adresního řádku zadejte IP adresu počítače CentOS 8/RHEL 8, například \\192.168.0.110
. Tiskárna by nyní měla být uvedena.
Poklepáním na tiskárnu ji přidáte do systému Windows. Poté klikněte na tlačítko OK a vyberte ovladač, který chcete nainstalovat. Po instalaci ovladače bude tiskárna přidána do vašeho systému Windows.
Krok 6:Sdílejte tiskárnu CUPS s klienty iOS přes AirPrint
AirPrint umožňuje klientům iPhone, iPad a macOS tisknout přes Wi-Fi bez instalace softwaru ovladače na klientská zařízení. CUPS podporuje Airprint, ale avahi-daemon
ve výchozím nastavení neoznamuje službu AirPrint v místní síti. Potřebujeme vytvořit .service
soubor v /etc/avahi/services/
adresář pro tiskárnu se skriptem Python. Spuštěním následujícího příkazu stáhněte skript na CentOS 8/RHEL 8.
wget https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
Přidejte oprávnění ke spuštění.
chmod +x airprint-generate.py
Tento python skript je vytvořen pro Python2. CentOS 8/RHEL 8 standardně používá Python3. Potřebujeme nainstalovat Python2.
sudo dnf install python2
Upravte tento soubor.
nano airprint-generate.py
Změnit
#!/usr/bin/env python
do
#!/usr/bin/env python2
Uložte a zavřete soubor. Poté nainstalujte závislosti.
sudo dnf install gcc python2-devel cups-devel redhat-rpm-config
Nainstalujte modul pohárků.
sudo pip2 install cups pycups
Potom spusťte tento skript.
sudo ./airprint-generate.py -d /etc/avahi/services/
Nyní by zde měl být .service
soubor pod /etc/avahi/services/
adresář pro vaši tiskárnu.
ls /etc/avahi/services/
Ukázkový výstup:
AirPrint-DeskJet-2130-series.service
Restartujte Avahi-daemon.
sudo systemctl restart avahi-daemon
Nyní by vaši tiskárnu měli používat klienti iOS a macOS ve stejné síti. Následující snímek obrazovky ukazuje, že můj iPhone úspěšně našel tiskárnu AirPrint.