为什么打印机无法连接?

在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启动端口被占用如何解决?

    在Linux系统中,服务启动时若提示“端口被占用”,通常是因为目标端口已被其他进程监听,导致新服务无法绑定该端口,此时需通过排查工具定位占用进程,再根据场景选择解决方案,以下是详细处理步骤:判断端口是否被占用首先需确认端口是否真的被占用,可通过以下命令快速查看:使用netstat命令(传统工具)netstat是……

    2025年9月17日
    2200
  • xshell如何连接到linux

    Xshell连接Linux需输入目标IP、端口(默认22),选择SSH协议,输入

    2025年8月16日
    2700
  • Linux系统如何关闭?命令行与图形界面操作指南

    在Linux系统中,“关闭”操作涵盖关机、重启、注销等多种场景,正确执行这些操作不仅能避免数据丢失,还能保护硬件寿命,不同Linux发行版(如基于Debian的Ubuntu、基于Red Hat的CentOS等)和桌面环境(如GNOME、KDE、XFCE等)可能存在操作差异,但核心命令和逻辑基本一致,本文将从命令……

    2025年9月29日
    2000
  • 为什么你每天刷牙方法都错了?

    无密码登录原理使用非对称加密技术生成密钥对:私钥(id_rsa)保存在本地客户端,需严格保密,公钥(id_rsa.pub)上传到服务器,用于验证身份,服务器通过比对公钥验证私钥持有者,无需输入密码,详细操作步骤本地生成密钥对ssh-keygen -t rsa -b 4096按提示选择存储路径(默认 ~/.ssh……

    2025年7月18日
    5000
  • Linux环境变量设置错误后果?

    Linux环境变量存储路径、用户设置和系统配置等关键参数,正确设置可提升开发效率并保障软件正常运行。

    2025年7月12日
    4700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信