为什么打印机无法连接?

在Linux系统中共享打印机,能让多台设备(包括其他Linux、Windows或macOS)通过网络使用同一台打印设备,以下是详细的操作指南,遵循CUPS(Common UNIX Printing System) 这一标准方案,兼顾安全性与兼容性:

  • 通过USB或网络将打印机连接到Linux主机。
  • 在终端输入 lpinfo -v,检查系统是否识别打印机(出现 usb://...dnssd://... 等路径即成功)。
  1. 安装必要工具
    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界面配置打印机

  1. 打开浏览器访问:http://localhost:631/admin
  2. 点击 Add Printer
    • 选择已识别的打印机(如 USB Printer #1)。
    • 设置共享名称(建议无空格,如 OfficePrinter)。
  3. 勾选 Share This Printer(关键步骤)。
  4. 安装驱动:
    • 优先选择打印机品牌官方驱动(如HP用hplip)。
    • 若无匹配驱动,选通用PPD(如Generic PostScript Printer)。

步骤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客户端

  1. 自动发现(推荐):
    • 打开系统设置 → 打印机 → 自动搜索网络打印机(协议:IPP)。
    • 或手动添加:URI格式 ipp://<主机IP>/printers/OfficePrinter
  2. 终端命令添加
    lpadmin -p OfficePrinter -E -v ipp://192.168.1.100/printers/OfficePrinter -m everywhere

► Windows客户端

  1. 打开 控制面板 → 设备和打印机 → 添加打印机
  2. 选择 “按地址添加打印机” → 协议选 HTTP,URL填写:
    http://<Linux主机IP>:631/printers/OfficePrinter
  3. 安装对应驱动(从Windows库选择或手动上传)。

► macOS客户端

  • 系统设置 → 打印机与扫描仪 → 点击”+” → 自动发现共享打印机(协议:IPP)。

高级共享方案:Samba(兼容旧版Windows)

若需支持SMB协议(如Windows XP/7):

  1. 安装Samba:
    sudo apt install samba
  2. 编辑Samba配置:
    sudo nano /etc/samba/smb.conf

    末尾添加:

    [printers]
    path = /var/spool/samba
    browseable = yes
    printable = yes
    guest ok = yes
    create mask = 0700
  3. 重启服务:
    sudo systemctl restart smbd
  4. Windows客户端通过 \\<Linux主机IP>\OfficePrinter 添加。

故障排查

问题 解决方法
客户端找不到打印机 检查防火墙:sudo ufw allow 631/tcp
打印任务卡住/失败 清除队列:sudo cancel -a -x
Windows提示驱动错误 在Windows端手动安装匹配驱动
权限拒绝(403 Forbidden) 确保cupsd.confAllow all生效

安全建议

  1. 限制访问IP
    cupsd.conf中用 Allow from 192.168.1.* 替代 Allow all
  2. 启用加密
    访问 https://localhost:631(需配置SSL证书)。
  3. 定期更新
    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

(0)
酷番叔酷番叔
上一篇 2025年6月17日 09:45
下一篇 2025年6月17日 09:56

相关推荐

  • Linux系统如何将文件打入ear包的操作步骤?

    在Linux环境下将文件打入ear包(Enterprise Archive,企业级归档文件)是Java EE应用开发中的常见操作,ear包主要用于打包企业级应用,包含EJB模块、Web模块、客户端JAR模块以及依赖库等,本文将详细介绍在Linux系统中手动使用jar命令和使用构建工具(如Maven、Gradle……

    2025年8月24日
    1500
  • Linux scp如何快速传文件?

    scp基础语法scp [选项] 源文件路径 目标文件路径常用选项:-P:指定远程SSH端口(默认为22)-r:递归复制整个目录-C:启用压缩传输-i:指定私钥文件(用于密钥认证)核心操作场景本地文件 → 远程服务器scp /本地/文件.txt 用户名@远程IP:/远程/目录/示例:将本地的report.pdf复……

    2025年8月8日
    1700
  • 如何在Ubuntu安装SSH服务端?

    Linux远程控制全面指南远程控制是Linux系统管理的核心技能之一,无论是管理服务器、协助同事还是访问家庭设备,掌握多种远程控制方法至关重要,以下是专业、安全且高效的Linux远程控制方案:SSH:命令行远程管理(最常用)原理:通过加密通道访问远程Shell适用场景:服务器运维、文件传输、脚本执行配置步骤……

    2025年7月17日
    2600
  • 如何实时掌控系统运行状态?

    确认系统是否为Linux通过终端执行:uname -a输出示例:Linux hostname 5.15.0-86-generic #96-Ubuntu SMP … x86_64 GNU/Linux若含 GNU/Linux 字样即为Linux系统,查看Linux发行版与版本通用方法(推荐)cat /etc/o……

    2025年7月10日
    3000
  • 每天吃鸡蛋真的有害健康?

    环境准备:安装C++编译器与STL安装GCC/G++编译器通过包管理器安装ARM Linux的C++工具链(以Debian系为例):sudo apt updatesudo apt install g++ build-essential # 安装本地编译环境若需交叉编译(在x86主机上编译ARM程序):sudo……

    2025年7月27日
    2300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信