Ten samouczek pokaże Ci, jak udostępnić drukarkę podłączoną do komputera Ubuntu z klientami Windows, macOS i iOS w tej samej sieci. CUPS (Common Unix Printing System) to domyślny system drukowania w systemach Linux, FreeBSD i macOS. Twoje środowisko pulpitu Linux może mieć dedykowane narzędzie do konfiguracji drukarki, ale wszystkie używają CUPS pod maską.
Drukarkę CUPS można udostępniać w sieci przy użyciu kilku protokołów, w tym:
- Bonjour + IPP: Bonjour, znany również jako mDNS/DNS-SD (wykrywanie usług DNS/DNS multicast), umożliwia komputerowi znajdowanie usług w sieci lokalnej. IPP (Internet Printing Protocol) to protokół transportowy.
- SMB: aka Samba, używana głównie do udostępniania plików i drukarek klientom Windows.
- AirPrint: umożliwia klientom iPhone’a, iPada i macOS drukowanie przez Wi-Fi.
Każdy protokół ma swoje wady i zalety. Najpierw pokażę, jak zainstalować i skonfigurować CUPS. Następnie dowiemy się, jak udostępnić drukarkę CUPS za pomocą powyższych 3 protokołów. Zalecam korzystanie ze wszystkich 3 metod udostępniania drukarki, aby użytkownicy mogli znaleźć dostępną drukarkę w sieci lokalnej przy minimalnym wysiłku.
Krok 1: Zainstaluj i skonfiguruj CUPS na Ubuntu
Ubuntu desktop edition ma preinstalowany system CUPS. Jeśli używasz wersji serwerowej Ubuntu, musisz uruchomić następujące polecenie, aby zainstalować CUPS z domyślnego repozytorium Ubuntu.
sudo apt install cups
Następnie uruchom CUPS.
sudo systemctl start cups
Włącz automatyczne uruchamianie w czasie rozruchu.
sudo systemctl enable cups
Sprawdź jego status:
systemctl status cups
Przykładowe dane wyjściowe:
Następnie edytuj główny plik konfiguracyjny CUPS za pomocą edytora tekstu wiersza poleceń, takiego jak Nano.
sudo nano /etc/cups/cupsd.conf
Najpierw musimy pokazać udostępnione drukarki w sieci lokalnej. Znajdź następującą linię.
Browsing Off
Zmień to na
Browsing On
aby inne komputery w tej samej sieci widziały drukarki podłączone do twojego komputera Ubuntu.
Domyślnie interfejs sieciowy CUPS jest dostępny tylko pod adresem localhost:631. Jeśli korzystasz z wersji serwerowej Ubuntu, możesz także ustawić nasłuchiwanie CUPS na wszystkich dostępnych interfejsach sieciowych, aby móc uzyskać dostęp do interfejsu sieciowego CUPS z innych komputerów. Znajdź następującą linię.
Listen localhost:631
Zmień to na
Port 631
Tak więc CUPS będzie nasłuchiwał na wszystkich interfejsach sieciowych. Następnie znajdź następujące wiersze.
<Location /> Order allow,deny </Location>
Powyższa konfiguracja umożliwia dostęp do interfejsu sieciowego CUPS tylko z hosta lokalnego. Aby zezwolić na dostęp z innych komputerów w tej samej sieci, dodaj Allow @LOCAL do konfiguracji jak poniżej.
<Location /> Order allow,deny Allow @LOCAL </Location>
Dodaj go również do katalogu /admin, aby umożliwić zdalne administrowanie z sieci lokalnej.
<Location /admin> Order allow,deny Allow @LOCAL </Location>
Możesz także zezwolić na konkretny adres IP, na przykład:
<Location /> Order allow,deny Allow 192.168.0.101 </Location>
Zapisz i zamknij plik. Następnie uruchom ponownie CUPS, aby zmiany zaczęły obowiązywać.
sudo systemctl restart cups
Zauważ, że jeśli włączyłeś zaporę sieciową UFW w Ubuntu, musisz zezwolić klientom w tej samej sieci na dostęp do portu 631 na twoim urządzeniu Ubuntu. Na przykład moja prywatna sieć używa zakresu sieci 192.168.0.0 ~ 192.168.0.255, więc uruchamiam następujące polecenie.
sudo ufw allow in from 192.168.0.0/24 to any port 631
Interfejs sieciowy CUPS jest dostępny pod adresem https://localhost:631. Nie musimy używać interfejsu sieciowego w tym artykule, ale jeśli chcesz z niego korzystać, musisz dodać swoje konto użytkownika do grupy lpadmin, aby wprowadzać zmiany w interfejsie internetowym CUPS.
sudo adduser your_username lpadmin
Krok 2: Zainstaluj sterownik drukarki w systemie Ubuntu
Musisz zainstalować sterownik na Ubuntu, aby mógł rozpoznać i używać drukarki. Jeśli masz drukarkę HP, możesz łatwo zainstalować sterownik za pomocą następującego polecenia.
sudo apt install hplip
Polecam również zainstalowanie pakietu printer-driver-gutenprint, który zawiera sterowniki CUPS dla Canon, Epson, HP i kompatybilnych drukarek.
sudo apt install printer-driver-gutenprint
Jeśli masz inne drukarki, możesz znaleźć sterowniki na openprinting.org.
Po zainstalowaniu sterownika może być konieczne ponowne podłączenie drukarki do portu USB komputera z systemem Ubuntu. Aby sprawdzić, czy sterownik działa poprawnie, możesz utworzyć plik tekstowy na Ubuntu:
echo "Ten poradnik dziala!" > file.txt
Następnie uruchom następujące polecenie, aby wydrukować ten plik tekstowy z wiersza poleceń.
lp file.txt
To bardzo podstawowa metoda, więc nie martw się teraz o jakość drukowania.
Krok 3: Udostępnij drukarkę CUPS przez protokół Bonjour/IPP
Instalowanie Avahi-daemon
CUPS może ogłaszać swoją obecność w sieci za pośrednictwem protokołu mDNS (multicast DNS) i DNS-SD (DNS Service Discovery), znanego również jako Bonjour. W tym celu należy zainstalować i uruchomić demona avahi, czyli usługę podobną do usługi Apple Bonjour, która umożliwia komputerom automatyczne wykrywanie współdzielonych urządzeń i usług w sieci lokalnej.
sudo apt install avahi-daemon
Start avahi-daemon.
sudo systemctl start avahi-daemon
Włącz automatyczne uruchamianie w czasie rozruchu.
sudo systemctl enable avahi-daemon
Avahi-daemon nasłuchuje na porcie UDP 5353. Otwórz go w zaporze.
sudo ufw allow 5353/udp
Drukowanie bez sterownika IPP
Bonjour służy do anonsowania drukarki w sieci lokalnej. Aby klienci i serwer CUPS komunikowali się ze sobą, potrzebny jest protokół IPP (Internet Printing Protocol). Zaletą protokołu IPP jest to, że klienci mogą korzystać z udostępnionej drukarki bez instalowania jakichkolwiek sterowników na własnych urządzeniach. CUPS obsługuje IPP zaraz po wyjęciu z pudełka, więc nie musisz robić nic więcej, aby udostępniać drukarkę CUPS przez IPP.