为什么打印机无法连接?

在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操作系统下通过终端编写、编译和运行C语言程序?

    在Linux环境下使用C语言开发程序是许多开发者和学习者的基础技能,其流程涵盖环境搭建、代码编写、编译调试及项目管理等环节,以下从实际操作角度详细展开说明,开发环境准备Linux系统通常自带GCC(GNU Compiler Collection)编译器,但需确认是否安装,打开终端,输入gcc –version……

    2025年9月21日
    13300
  • Linux系统如何取消登录密码?操作步骤是怎样的?

    在Linux系统中,“取消密码”通常指让特定用户或操作无需输入密码即可完成,常见于本地登录、sudo提权或SSH远程访问等场景,但需注意,取消密码会显著降低系统安全性,仅建议在完全可控的测试环境中使用,生产环境应优先采用密钥认证等安全方式,以下从不同场景详细说明操作方法及注意事项,本地用户登录密码取消(设置为空……

    2025年9月20日
    12400
  • Linux SSH远程连接如何正确使用?

    SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络中为网络服务提供安全的传输环境,广泛应用于Linux系统的远程管理、文件传输等场景,通过SSH,用户可以以加密的方式远程登录服务器、执行命令、传输文件,相比传统的Telnet等协议,SSH能有效防止信息泄露和中间人攻击,本文将详细介绍……

    2025年8月26日
    14400
  • Linux修改后如何正确保存?操作步骤是什么?

    在Linux系统中,正确保存修改后的文件是日常操作中的关键环节,无论是通过命令行编辑器修改配置文件,还是在图形界面中编写代码,保存操作直接关系到数据的完整性和系统的稳定性,由于Linux环境下的编辑工具多样、操作场景复杂,掌握不同场景下的保存方法及注意事项至关重要,本文将详细解析Linux系统中各类文件修改后的……

    2025年9月21日
    12800
  • linux下如何重启网络连接网络连接网络

    Linux 下,可通过执行 sudo systemctl restart network 或 `sudo /etc/init.

    2025年8月15日
    11900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信