在Linux系统中共享打印机,能让多台设备(包括其他Linux、Windows或macOS)通过网络使用同一台打印设备,以下是详细的操作指南,遵循CUPS(Common UNIX Printing System) 这一标准方案,兼顾安全性与兼容性:
- 通过USB或网络将打印机连接到Linux主机。
- 在终端输入
lpinfo -v
,检查系统是否识别打印机(出现usb://...
或dnssd://...
等路径即成功)。
- 安装必要工具
sudo apt update && sudo apt install cups avahi-daemon # Debian/Ubuntu sudo dnf install cups avahi # Fedora/CentOS
cups
:打印服务核心。avahi
:实现局域网自动发现(类似Bonjour)。
配置CUPS共享打印机
步骤1:启用CUPS远程访问与共享
sudo cupsctl --remote-any # 允许任意IP访问 sudo systemctl restart cups
步骤2:通过Web界面配置打印机
- 打开浏览器访问:
http://localhost:631/admin
。 - 点击 Add Printer:
- 选择已识别的打印机(如
USB Printer #1
)。 - 设置共享名称(建议无空格,如
OfficePrinter
)。
- 选择已识别的打印机(如
- 勾选 Share This Printer(关键步骤)。
- 安装驱动:
- 优先选择打印机品牌官方驱动(如HP用
hplip
)。 - 若无匹配驱动,选通用PPD(如
Generic PostScript Printer
)。
- 优先选择打印机品牌官方驱动(如HP用
步骤3:修改CUPS配置文件(可选)
sudo nano /etc/cups/cupsd.conf
修改以下字段确保共享权限:
Listen *:631 # 监听所有接口 <Location /> Allow all # 允许所有用户 </Location> <Policy default> <Limit Send-Document Send-URI> Require user @OWNER @SYSTEM </Limit> </Policy>
重启服务生效:sudo systemctl restart cups
。
其他系统连接共享打印机
► Linux客户端
- 自动发现(推荐):
- 打开系统设置 → 打印机 → 自动搜索网络打印机(协议:IPP)。
- 或手动添加:URI格式
ipp://<主机IP>/printers/OfficePrinter
。
- 终端命令添加:
lpadmin -p OfficePrinter -E -v ipp://192.168.1.100/printers/OfficePrinter -m everywhere
► Windows客户端
- 打开 控制面板 → 设备和打印机 → 添加打印机。
- 选择 “按地址添加打印机” → 协议选 HTTP,URL填写:
http://<Linux主机IP>:631/printers/OfficePrinter
。 - 安装对应驱动(从Windows库选择或手动上传)。
► macOS客户端
- 系统设置 → 打印机与扫描仪 → 点击”+” → 自动发现共享打印机(协议:IPP)。
高级共享方案:Samba(兼容旧版Windows)
若需支持SMB协议(如Windows XP/7):
- 安装Samba:
sudo apt install samba
- 编辑Samba配置:
sudo nano /etc/samba/smb.conf
末尾添加:
[printers] path = /var/spool/samba browseable = yes printable = yes guest ok = yes create mask = 0700
- 重启服务:
sudo systemctl restart smbd
- Windows客户端通过
\\<Linux主机IP>\OfficePrinter
添加。
故障排查
问题 | 解决方法 |
---|---|
客户端找不到打印机 | 检查防火墙:sudo ufw allow 631/tcp |
打印任务卡住/失败 | 清除队列:sudo cancel -a -x |
Windows提示驱动错误 | 在Windows端手动安装匹配驱动 |
权限拒绝(403 Forbidden) | 确保cupsd.conf 中Allow all 生效 |
安全建议
- 限制访问IP:
在cupsd.conf
中用Allow from 192.168.1.*
替代Allow all
。 - 启用加密:
访问https://localhost:631
(需配置SSL证书)。 - 定期更新:
sudo apt update && sudo apt upgrade cups # 保持CUPS最新
Linux通过CUPS实现打印共享,兼顾高效性与跨平台兼容性,配置时注意驱动匹配与网络权限,90%的故障可通过检查防火墙和CUPS日志(/var/log/cups/error_log
)解决,对于企业环境,建议启用用户认证(通过cupsd.conf
设置Require user @AUTH
)提升安全性。
引用说明:
- 官方CUPS文档:https://www.cups.org/doc/
- Linux基金会打印工作组标准:https://openprinting.github.io/
- Samba共享配置参考:https://www.samba.org/samba/docs/
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4755.html