在Linux系统中共享打印机,最主流的方式是使用 CUPS (通用Unix打印系统) 作为基础,并视客户端情况,决定是否配合 Samba 服务。这个方案非常稳定,能良好地支持Windows、macOS和Linux等多种客户端。
这里为你整理了两种主流配置方案的详细步骤,你可以根据网络中的客户端类型来选择。
如果你的局域网内主要是Linux和macOS设备,仅配置CUPS就足够了,它使用IPP(互联网打印协议)进行通信。
1 2 sudo apt updatesudo apt install cups
注意:对于CentOS/RHEL系统,安装命令为
sudo yum install cups。
lpadmin组,以获得管理打印机的权限。1 sudo usermod -aG lpadmin $USER
(执行后需重新登录或重启才能使变更生效)
1 sudo cupsctl --remote-any
http://localhost:631。1 sudo ufw allow 631/tcp
注意:CentOS/RHEL系统使用
firewall-cmd,命令为sudo firewall-cmd --permanent --add-port=631/tcp和sudo firewall-cmd --reload。
ipp://<服务器IP地址>/printers/<共享打印机名称>。ipp://192.168.1.100/printers/HP_LaserJet_1020。1 2 3 4 5 6 7 8 9 10 11 # 安装CUPS客户端工具sudo apt install cups-client# 添加打印队列lpadmin -p myprinter -E -v ipp://192.168.1.100/printers/HP_LaserJet_1020 -m everywhere# 设为默认打印机lpoptions -d myprinter# 打印测试页验证lp -d myprinter /usr/share/cups/data/testprint
为了让Windows电脑也能方便地发现和使用共享打印机,需要在CUPS的基础上配置Samba服务。
1 sudo apt install samba
1 sudo nano /etc/samba/smb.conf
[global]部分,确保工作组的设置与你的网络环境一致(通常是WORKGROUP):1 workgroup = WORKGROUP
[printers]共享部分,允许来宾用户访问:1 2 3 4 5 6 7 8 [printers] comment = All Printers browseable = yes path = /var/spool/samba printable = yes guest ok = yes read only = yes create mask = 0700
[print$]部分以提供Windows驱动程序下载,这会使客户端体验更好。1 2 3 4 5 6 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no
1 sudo systemctl restart smbd
1 sudo ufw allow samba
注意:CentOS/RHEL系统命令为
sudo firewall-cmd --permanent --add-service=samba和sudo firewall-cmd --reload。
\\<服务器IP地址> 并按回车。\\<服务器IP地址>\<共享打印机名称>。guest ok = yes已设置。