Drukowanie z systemu Linux na udostępnionej drukarce systemu Windows

W tym artykule wyjaśniono, jak połączyć się i drukować z komputera z systemem Linux na udostępnionej drukarce podłączonej do hosta z systemem Windows.

  1. Pierwszym krokiem jest udostępnienie drukarki na komputerze z systemem Windows, do którego jest podłączona. Otwórz właściwości drukarki, przejdź doPartycypującyzakładkę, włączUdostępnij tę drukarkęopcję i podaj nazwę udostępnionej drukarki (nazwa nie może zawierać spacji ani znaków specjalnych);
  2. Utwórz nowego użytkownika lokalnegowinusr1. Usuń użytkownika z lokalnej grupy Użytkownicy, ustaw hasło tak, aby nigdy nie wygasało i zapobiegaj zmianom haseł.

    Możesz użyć programu PowerShell, aby utworzyć użytkownika lokalnego z określonymi ustawieniami:
    $pass = ConvertTo-SecureString "pass2024W0rd-" -AsPlainText -Force
    New-LocalUser -Name winusr1 -Password $pass -PasswordNeverExpires -UserMayNotChangePassword
    Remove-LocalGroupMember -Group Users -Member winusr1

Domyślnie do łączenia udostępnionych drukarek systemu Windows używany jest protokół SMB. Zainstalujklient smbaby sprawdzić, czy do udostępnionej drukarki na hoście Windows można uzyskać zdalny dostęp z Linuksa:

W systemie Ubuntu/Debian uruchom polecenie:

$ sudo apt install smbclient

Wyświetl listę udziałów SMB na zdalnym komputerze z systemem Windows

$ smbclient -L \\192.168.31.94 -U winusr1

  • 192.168.31.94 – adres IP lub nazwa hosta komputera z systemem Windows
  • winusr1 – lokalna nazwa użytkownika Windows

To polecenie wyświetla listę udostępnionych folderów sieciowych (w tym udziałów administracyjnych) i drukarek.

Z konsoli możesz sprawdzić dostępność drukarki SMB i wysłać plik do druku:

$ smbclient -W DOMAIN -U winusr1//192.168.31.94/HPM1530
Wydrukuj określony plik:
smb: \> print /home/sysops/test.txt
printing file test.txt as test.txt (856,2 kb/s)
smb: \> quit

Najłatwiejszym sposobem uzyskiwania dostępu do drukarek sieciowych i zarządzania nimi w systemie Linux jest użycie wbudowanego systemu drukowania Common UNIX (STAN NIETRZEŹWY). Interfejs sieciowy system-config-printer służy do zarządzania CUPS.

CUPS i system-config-printer są domyślnie instalowane w większości dystrybucji Linuksa na komputery stacjonarne. Sprawdź i zainstaluj w razie potrzeby:

$ dpkg -l cups
$ dpkg -l system-config-printer
$ systemctl status cups

Zalecana lektura:Jak zmienić port drukarki, aby rozwiązać problemy z drukowaniem w systemie Windows 11

Teraz podłącz udostępnioną drukarkę sieciową z Linuksa:

  1. Przejdź do następującego adresu URL w przeglądarce, aby otworzyć interfejs sieciowy CUPSlocalhost:631;
  2. Idź doAdministracja->Dodaj drukarkę->Inne drukarki sieciowe->Drukarka Windows poprzez SAMBA;
  3. Użyj poniższego formatu, aby określić ustawienia połączenia drukarki udostępnionejsmb://winusr1:[email protected]/HPM1530(Ten ciąg zawiera nazwę użytkownika i hasło, nazwę/adres IP zdalnego hosta systemu Windows oraz nazwę udostępnionej drukarki);
  4. Następnie ustaw nazwę i opis drukarki;
  5. Następnie CUPS poprosi Cię o wybranie producenta i modelu drukarki. Lista sterowników może być dość długa. Użyj następującego polecenia, aby szybko znaleźć nazwę sterownika według modelu drukarki:$ lpinfo -m| grep 1536
    Wybierz sterownik znaleziony w CUPS.
  6. Instalacja udostępnionej drukarki została zakończona.

Gdzie można znaleźć sterowniki druku CUPS dla systemu Linux? Na przykład w przypadku drukarek HP większość dystrybucji systemu Linux jest dostarczana z systemem HP Linux Printing and Imaging System (HPLIP) pakiet preinstalowany. Zawiera sterowniki do większości drukarek HP.

$ dpkg -l hplip

Możesz zainstalować pakiet HPLIP ręcznie:

$ sudo apt install hplip hplip-gui

Inni dostawcy mogą również udostępniać podobne pakiety sterowników lub możesz znaleźć gotowy plik PPD dla konkretnej drukarki. Możliwe jest także skorzystanie zpiankowyBiblioteka sterowników drukarki PPD (automatycznie instalowana na Ubuntu-Desktop):

$ apt install foomatic-db-compressed-ppds

Pierwsza próba wydrukowania dokumentu z Linuksa na udostępnionej drukarce Windows nie powiodła się w moim przypadku z powodu błędu. Sprawdź /var/log/cups/error_log pod kątem błędów:

E [Job 13] SMB connection failed!
E [Job 13] Unable to connect to CIFS host: NT_STATUS_IO_TIMEOUT

Oznacza to, że CUPS nie może połączyć się z folderem SMB drukarki na komputerze z systemem Windows. W tym przypadku problem polega na tym, że Linux smbclient próbuje użyć protokołu SMB 1.0, aby uzyskać dostęp do udostępnionych drukarek. Wersja SMB 1.0 jest wyłączona w Windows 10 i 11, a takie połączenie zostanie odrzucone.

Edytuj plik/etc/samba/smb.confaby klient SMB systemu Linux używał bezpieczniejszej wersji SMB 2 lub 3 do połączeń. w[światowy]sekcji dodaj następujące wiersze:

client min protocol = SMB2
client max protocol = SMB3

Uruchom ponownie CUPS:

$ sudo systemctl restart cups

Klient systemu Linux może teraz pomyślnie drukować na udostępnionej drukarce na komputerze z systemem Windows.

Możesz także połączyć się z udostępnioną drukarką Windows z wiersza poleceń. Pierwszym krokiem jest znalezienie nazwy sterownika dla modelu drukarki:

$ lpinfo --make-and-model '1536' -m

Skopiuj pełną nazwę sterownika i podłącz drukarkę SMB:

$ sudo lpadmin -p HP1536mfp -v smb://winusr1:[email protected]/HPM1536 -m postscript-hp:0/ppd/hplip/HP/hp-laserjet_m1530_mfp_series-ps.ppd

Włącz drukarkę CUPS w systemie Linux:

$ cupsenable HP1536mfp

Lista drukarek:

$ lpsatat -v
$ lpstat -p

Lista podłączonych drukarek SMB jest przechowywana w pliku/etc/cups/printers.confplik. Należy pamiętać, że nazwa użytkownika i hasło systemu Windows używane do łączenia się z drukarką są tutaj przechowywane w postaci zwykłego tekstu (więc ten użytkownik musi mieć minimalne uprawnienia na komputerze z systemem Windows).

Related Posts