Dit artikel gaat dieper in op het verbinden en afdrukken vanaf een Linux-machine naar een gedeelde Windows-printer. Als je ooit problemen hebt ondervonden met de installatie en vreemde fouten bent tegengekomen, of als je niet begrijpt waarom de Linux-machine niet goed communiceert met Windows, geen zorgen – dit artikel zou een aantal van de problemen moeten verduidelijken. Meestal liggen de problemen bij netwerkprotocollen, machtigingen of verkeerd geconfigureerde instellingen. Door dit op te lossen, kun je probleemloos afdrukken – of in ieder geval met minder hoofdbrekens.
Hoe deel je een Windows-printer en maak je verbinding vanuit Linux?
Deel de printer eerst in Windows.
Dit is de eerste stap: als de printer niet gedeeld is, kan Linux hem natuurlijk niet vinden. Ga naar de Windows-pc, zoek de printer in het Configuratiescherm > Apparaten en printers, klik met de rechtermuisknop op de printer en selecteer Printereigenschappen. Ga naar het tabblad Delen, vink ‘ Deze printer delen’ aan en geef de printer een eenvoudige naam (geen spaties of vreemde tekens – Windows heeft daar soms moeite mee).Zorg ervoor dat de naam van de gedeelde map er netjes uitziet, want dat is wat Linux later zal zien.
Als u met machtigingen wilt experimenteren of een speciale gebruiker voor afdrukken wilt toevoegen, gaat u naar Configuratiescherm > Beheerhulpmiddelen > Lokale gebruikers en groepen. Maak een nieuwe gebruiker aan, bijvoorbeeld winusr1, verwijder deze gebruiker indien nodig uit de groep Gebruikers (Windows voegt standaard soms iedereen toe), stel een wachtwoord in dat niet verloopt en beveilig wachtwoordwijzigingen als het alleen om printertoegang gaat. Met PowerShell kunt u bijvoorbeeld het volgende doen:
$pass = ConvertTo-SecureString "pass2024W0rd-" -AsPlainText -Force New-LocalUser -Name "winusr1" -Password $pass -PasswordNeverExpires -UserMayNotChangePassword Remove-LocalGroupMember -Group "Users" -Member "winusr1"
Dit voorkomt problemen met machtigingen later, vooral als je processen automatiseert of scripts gebruikt.
Controleer uw SMB-protocolinstellingen.
Standaard schakelt Windows SMB 1.0 uit omdat het onveilig is. Maar Linux-tools zoals smbclient proberen vaak SMB 1.0 te gebruiken, tenzij je anders aangeeft. Dus als Linux probeert verbinding te maken via SMB 1.0, wordt de verbinding verbroken — vooral op Windows 10/11, waar SMB 1.0 (gelukkig standaard) is uitgeschakeld.
Dit leidt tot berichten zoals: E [Job 13] SMB-verbinding mislukt! E [Job 13] Kan geen verbinding maken met CIFS-host: NT_STATUS_IO_TIMEOUT
Om dat op te lossen, open je de terminal op Linux en bewerk je /etc/samba/smb.conf. Zoek (of voeg toe) de sectie [global] en voeg vervolgens de volgende regels toe:
[global] client min protocol = SMB2 client max protocol = SMB3
Dit dwingt het gebruik van SMB 2 of 3 af, wat veiliger is en wordt ondersteund door Windows 10/11. Vergeet niet de Samba-service daarna opnieuw te starten om de wijzigingen permanent te maken.
$ sudo systemctl restart smbd
Als dat eenmaal is gedaan, werkt een nieuwe verbindingspoging meestal beter. Linux kan nogal eens problemen geven als de SMB-protocollen niet op elkaar zijn afgestemd, dus deze stap is echt nuttig.
Installeer de benodigde software op Linux
Je hebt smbclient nodig om via de commandoregel met SMB-shares te werken. Het is meestal beschikbaar op de meeste distributies — op Ubuntu of Debian voer je het volgende commando uit:
$ sudo apt install smbclient
Na de installatie kunt u de beschikbare SMB-shares op de Windows-computer weergeven:
$ smbclient -L \\\\192.168.31.94 -U winusr1
Vervang 192.168.31.94 door het IP-adres of de hostnaam van uw Windows-computer en winusr1 door de gebruikersnaam die u hebt aangemaakt. Dit toont welke gedeelde mappen en printers beschikbaar zijn.
Als je een printopdracht rechtstreeks vanuit Linux wilt verzenden, kun je het volgende doen:
$ smbclient -W DOMAIN -U winusr1 //192.168.31.94/HPM1530
Vervolgens kunt u in de SMB-prompt het commando `print` gebruiken om een bestand te verzenden:
smb: \> print /home/user/test.txt printing file test.txt as test.txt (856, 2 kb/s) smb: \> quit
Deze methode is niet de meest soepele, maar werkt wel voor het rechtstreeks verzenden van bestanden.
De gedeelde printer toevoegen met behulp van CUPS en de webinterface.
Vanaf hier wordt het wat gebruiksvriendelijker. De meeste Linux-distributies worden standaard geleverd met CUPS (Common UNIX Printing System) en tools zoals system-config-printer. Om verbinding te maken met uw Windows-share:
Open een webbrowser en ga naar http://localhost:631. Dit is de CUPS-beheerinterface. Ga naar Beheer > Printer toevoegen en kies vervolgens Andere netwerkprinters > Windows-printer via SAMBA.
Wanneer u wordt gevraagd om de apparaat-URI, voer dan iets in als:
smb://winusr1:[email protected]/HPM1530
Vervang ‘password’ door het daadwerkelijke wachtwoord voor winusr1. Deze stap kan soms mislukken met een ’toegang geweigerd’-foutmelding als Samba niet correct is geconfigureerd, dus controleer de inloggegevens zorgvuldig.
Geef vervolgens uw printer een naam en kies het juiste stuurprogramma. Gebruik de zoekfunctie lpinfo -m|grep 1536om een passend stuurprogramma te vinden als dat nodig is, vooral als CUPS het juiste stuurprogramma niet automatisch detecteert. Voor HP-printers is HPLIP een redder in nood en meestal al voorgeïnstalleerd, maar u kunt het ook handmatig installeren met:
$ sudo apt install hplip hplip-gui
Andere merken vereisen mogelijk andere PPD-bestanden of stuurprogramma’s, maar Foomatic is vrij universeel — gewoon installeren:
$ sudo apt install foomatic-db-compressed-ppds
Als alles is ingesteld, zou u de gedeelde Windows-printer vanaf uw Linux-desktop moeten kunnen selecteren en erop kunnen afdrukken.
Omgaan met veelvoorkomende fouten
Als je probeert af te drukken en fouten krijgt zoals “SMB-verbinding mislukt” of “NT_STATUS_IO_TIMEOUT”, controleer dan het CUPS-logbestand op /var/log/cups/error_log. Daarin worden SMB-problemen vaak duidelijker weergegeven. De meest voorkomende oplossing is een mismatch in het SMB-protocol — dat is waar de eerder genoemde SMB-configuratieregels van pas komen.
Nog iets: de Windows-firewall kan SMB-verbindingen blokkeren. Zorg ervoor dat je ‘Bestands- en printerdeling’ toestaat via de netwerkfirewall. Ga in Windows naar Windows Defender Firewall > Een app of functie toestaan via Windows Defender Firewall en controleer of ‘Bestands- en printerdeling’ is toegestaan.
Tot slot is het belangrijk om te onthouden dat de deelrechten van belang zijn: zorg ervoor dat het gebruikers- of gastaccount toegang heeft tot de gedeelde map en printer. Soms ontstaan er problemen door beperkingen in de toegangsrechten van Windows of doordat het netwerkprofiel is ingesteld op ‘Openbaar’.
Het hele SMB-verbindingsgedoe kan een hoop gedoe opleveren, maar door de protocolmismatch op te lossen en de juiste machtigingen te controleren, lukt het meestal wel bij de tweede of derde poging. Linux en Windows communiceren niet altijd even soepel met elkaar, maar met deze aanpassingen verloopt het een stuk beter.
Samenvatting
- Deel de printer correct in Windows — gebruik geen spaties in de deelnaam.
- Pas de SMB-protocolversies aan in /etc/samba/smb.conf.
- Installeer smbclient en controleer gedeelde mappen vanuit Linux.
- Gebruik de CUPS-webinterface om de printer toe te voegen met behulp van een SMB-URI.
- Zorg ervoor dat de Windows-firewall SMB niet blokkeert.
- Controleer de logbestanden als er fouten optreden.
Samenvatting
Een gedeelde Windows-printer vanuit Linux aan de praat krijgen kan een hele klus zijn, vooral met de eigenaardigheden en machtigingen van het SMB-protocol. Maar zodra alles op elkaar is afgestemd – SMB-protocollen, firewalls, de juiste driver – verloopt het meestal soepel. Hopelijk bespaart dit wat moeite en lukt het je om de printer vanuit Linux te pingen zonder al te veel gedoe. Ik hoop dat dit iemand helpt om de installatie wat sneller te voltooien dan de vorige keer.