1
8月
2025
在 Linux 中安装网络打印机 - 第 1 部分:打印机连接类型,通过 AppSocket 打印
15:03

在 Linux 中安装网络打印机 - 第 1 部分:打印机连接类型,通过 AppSocket 打印

1 8月 2025 15:03

在工作中,有多个联网打印机和多功能设备 (MFP) 连接到局域网 (LAN)。 它们可以从运行 Linux 操作系统的计算机上打印。 有一天,打印作业停止了,打印机也停止了打印。 我不得不研究如何在Linux操作系统中最好地安装网络打印机的问题。

简介

有许多关于在 CUPS 中设置打印机的说明。 但他们很少关注网络打印技术的区别。 特别是,有较低级别的技术(AppSocket 和 IPP/IPPS)和较新的技术,包括 ZeroConf 和无驱动打印。 在本文中,我想仔细研究一下 Linux 中连接网络打印机的选项。

网络打印分类:

对于Linux:

- 通过使用驱动程序:

  • 使用驱动程序打印(对于旧设备)
  • 无需驱动程序即可打印(适用于现代设备)。

    - 根据需要配置(从最高要求到最低要求):

    • 需要手动配置(管理)打印机的打印技术:
      • AppSocket (JetDirect) - 直接打印到打印机,需要连接配置。
      • IPP、IPPS - 在其纯粹形式中,它们需要手动配置,因为它们不使用 Avahi/DNS-SD (Bonjour) 或 IPP Everywhere 自动发现。 与 Bobjour 一起,IPPS 不需要配置。
    • Linux 中无需配置的打印技术(ZeroConf):

对于苹果,无需配置即可具有“零配置”功能的打印技术:
*空中打印 (与“Bonjour”相同)- 适用于 Apple iOS:Mac、iPad、iPhone、iPod。

对于安卓、无需配置功能的打印技术(ZeroConf):
*MFP 制造商的打印系统* 闭源(Wi-Fi 网络、Wi-Fi Direct 或内置 Wi-Fi 热点),
莫普里亚** (来自 Mopria 联盟打印机制造商的技术,Google Play 上的应用程序在俄罗斯联邦不可用)。

1.在本地网络上搜索网络打印机

1.1 使用CUPS查找网络打印机

http://localhost:631/admin - 按钮 “添加打印机”

详情:

Cups 在 CUPS Web 界面中实现打印机搜索。 http://localhost:631/ -> 管理 ->添加打印机:

cups-search1

在下一个屏幕上,在 *发现的网络打印机 列中,将显示在本地网络上找到的打印机列表。

cups-search2

选择线路 -> 按钮 继续 (该按钮位于屏幕底部或屏幕后面 - 向下滚动网页)。

屏幕显示一个连接字符串,提及两个网络打印协议之一:IPPS:// 或 DNSSD://。

cups-search3

如果打印机相当新并且支持 driverless 打印模式,并且在列表中选择了带有 driverless 前缀的选项,则按 继续 将提供一个选项 IPP 无处不在- 无需驱动程序即可打印(请参阅 第 2.2 节 - 在 IPP Everywhere 中无需驱动程序即可打印)。

1.2 如何使用 lpinfo 从命令行查找网络打印机

如果网络上的打印机可以使用 卓悦 (多播 DNS (mDNS) 和 DNS 服务发现 (DNS-SD) 标准的组合),可以使用命令“lpinfo -v”找到它们。

lpinfo -v

network lpd
file cups-brf:/
network http
network socket
network beh
network ipp
network smb
network https
serial serial:/dev/ttyS0?baud=115200
network ipps
direct hp
direct hpfax
network dnssd://Kyocera%20ECOSYS%20M2540dn._ipp._tcp.local/?uuid=4509a320-0056-0101-003e-0025074f9312
network ipps://Pantum%20BM5100ADN%20Series%204AF471._ipps._tcp.local/

最后两个条目对应于网络打印机。 Kyocera 打印机通过 DNSSD 宣布自己 - 无服务器 DNS 替代品(广播数据包)。 第二台 Pantum 打印机以不同的方式在网络上发布自己的信息 - IPPS 多播发现

  • 型号奔图 BP5100DW。 用户手册上说它兼容Linux(Ubuntu 14.04/16.04/18.04(32/64位);Debian 10.0;RedHat 8.0.0;Astra Linux特别版V1.6;CentOS 7(32/64位)。

1.3 使用 Avahi 服务查找支持 IPP 的网络打印机

sudo apt install avahi-utils
sudo service avahi-daemon start

avahi-browse -rt _ipp._tcp #仅查找 _ipp._tcp

avahi-browse -ra #搜索所有打印机(长)

成绩单:

  • 端口 80 - 支持 IPP 的打印机端口(无 S)
  • 端口 443 - 支持 IPPS 的打印机端口
  • 端口 631 - 支持 IPPS 的打印机端口

1.4 使用打印机管理单元以图形方式搜索网络打印机

Linux Mint 在“开始”-“管理”中有一个管理单元
*打印机 (包和命令 system-config-printer

安装包括包:

sudo apt install system-config-printer system-config-printer-common system-config-printer-udev

sudo apt install python3 python3-cups python-cupshelpers python3-dbus

打印机管理单元可用于以下桌面:

  • ubuntu-桌面-最小,
  • ubuntu 桌面,
  • kubuntu-桌面,
  • 完整的 kubuntu,
  • xubuntu-桌面,
  • lubuntu-桌面,
  • ubuntustudio-桌面,
  • ubuntukylin-桌面,
  • ubuntu-mate-核心,
  • ubuntu-mate-桌面,
  • ubuntu-budgie-桌面,
  • ubuntu-budgie-桌面-raspi

    开始搜索网络打印机:

    system-config-printer

打开时 系统配置打印机 搜索网络打印机并显示其 IP 地址和主机名。

1.5 使用数据包嗅探器 WireShark 4.2.0 及更高版本搜索网络打印机

网络打印机和路由器发送 Bonjour mDNS 数据包 (RFC 6762):

mdns

启动 WireShark 3.x.x 标准版本(来自存储库)

须藤wireshark

捕获并保存到 pcapng 文件。 然后 sudo chmod 644 *.pcapng

安装 Wireshark 4.4.8 版本进行数据包分析:

flatpak install flathub org.wireshark.Wireshark

启动版本 4.4.8:

flatpak run org.wireshark.Wireshark

组播过滤器,mDNS ipp 协议,排除来自您 PC 的数据包:
(eth.dst[0] & 1) && ip.dst>=224.0.0.0 && _ws.col.info matches "(?i)_ipp" && _ws.col.info matches "(?i)0x0000" && ! ip.addr==192.168.11.100

其中 192.168.11.100 替换为该计算机的 IP 地址(在命令输出中) ip addr )。

搜索mDNS包的结果如下图所示:
mdns2

如您所见,多播 DNS 或 组播DNS 使用端口 5353。 因此用于查找 Bonjour 数据包的 WireShark 过滤器可以大大简化。

1.6 Cups浏览服务

cups-browsed 帮助程序服务会自动查找本地网络上的网络打印机并在 CUPS 中创建打印队列。 因此,如果 MFP 和打印机位于 杯子浏览的 当操作系统启动时。 使用服务发现打印机 杯子浏览的 它可能比手动安装打印机更方便,但它会减慢打印启动速度并增加处理器的负载。

  • github.com 上的 [cups-browsed - OpenPrinting] 说明(https://github.com/OpenPrinting/cups-browsed/blob/master/README.md)

关于在Linux中使用cups-browsed的详细信息,请参见[文章第二部分第3.1.3段](/ustanovka-setevykh-printerov-v-linux-chast-2#杯子浏览)。

cups-browsed 服务内置于 Russian Linux Green OS(Linux Mint 的克隆版)中。

2.CUPS

任何连接方法的打印机管理均在面板上进行 CUPS - 通用 UNIX 打印系统

2.1 安装CUPS服务

sudo apt安装cups

通过SystemD init系统的主要管理工具systemctl启动CUPS服务:

sudo systemctl start cups

检查:

systemctl status cups

允许计算机启动时启动:

sudo systemctl enable cups

为避免打开 Web 界面时显示用户名和密码输入窗口:

sudo adduser your_username lpadmin

2.2 使用 CUPS 服务管理打印机

默认情况下,CUPS 管理仅通过 Web 界面对本地计算机的地址(端口 631)执行:
http://localhost:631/

!! !在本文中,我考虑将计算机设置为 客户 用于打印,即从其直接向网络打印机进行打印的工作站。 如果您想将 Linux 计算机变成打印服务器,请在 CUPS 系统中添加打印机时选中此框 “允许共享此打印机”

3. 在 Linux 中安装打印机的方法 - 带或不带驱动程序

3.1.安装打印机驱动程序的方法

3.1.1 AppSocket打印协议(JetPrint)

该协议由位于美国加利福尼亚州帕洛阿尔托的惠普(Hewlett Packard)提出。 使用 AppSocket 时,命令通过打印机的网络端口使用 Socket API 发送到打印机: 9100/TCP。 通过端口监控打印机状态 9101/UDP (可选)。 文档页面的格式化描述是在PC端的驱动程序中用PostScript语言(简称PS)进行的。 也就是说,数据以准备好的形式发送到打印机。

好处:

  • 打印机可能“愚蠢”或过时。
  • 易于安装
  • 最常用的打印机打印网络协议之一
  • 快速打印。 运行在低水平。 因此,使用 Socket 进行打印称为 RAW 打印。
  • URI地址尽可能简单,仅包含打印机在本地网络上的IP地址和端口9100。

缺点:

  • 没有安全保障。 (不适合大型组织,因为打印机在开始打印大量空白页或垃圾时可能会受到攻击,并且数据在通过本地网络传输时可能被拦截)。
  • 不允许从 Internet 打印到打印机,因为端口 9100 和 9001 在防火墙上被阻止,在外部打开它们是不安全的。
  • 对于 Apple Macintosh 等不支持未设置 Zero Conf 的模式。因为您需要知道打印机的静态 IP 地址。
  • 打印机的IP地址必须是固定的。 无法使用 DHCP。

连接字符串:
socket://ip-address

查找并检查打印机的 IP 地址

  1. 首先,找出打印机的IP地址(您可以打印其“配置页”)或进入IPv4地址显示菜单。
  2. 您可以使用 nmap 命令检查 APPSocket 协议是否存在,该命令将检查端口 9001 是否打开:

sudo apt update && sudo apt install nmap -y
nmap 192.168.1.123 -p 9100

sudo nmap -PU 192.168.1.123 -p 9001


,其中 192.168.1.123 替换为本地网络上打印机的 IP 地址。

如何使用 AppSocket 协议设置打印机

在安装打印机之前,您应该从打印机或多功能一体机制造商的网站下载并安装驱动程序。 驱动程序可以是带有 DEB_ 扩展名的 _package 文件,以便使用“Package Installer”实用程序或命令进行安装 sudo dpkg -i имя_файла.deb 或 Shell 中包含文件、文件夹和安装脚本的存档 - 扩展名为 .sh。 如果文件位于存档中,则需要先解压它们,然后安装 sudo sh filename.sh。 请小心,仅从设备制造商的官方网站下载驱动程序分发版! 制造商的官方网站地址通常会在打印机用户手册中标明。

  1. 在运行 Linux 的个人计算机上,转到 CUPS 设置 - 在 Web 浏览器中,您需要在地址栏中输入: http://localhost:631/
  2. 在 CUPS 网页上,选择菜单项 行政管理-添加打印机
  3. 然后 “其他网络打印机”-“AppSocket/HP JetDirect”,点击继续
  4. socket://192.168.1.123- 替换为步骤 1 和 2 中打印机的真实 IP 地址。单击继续
  5. 填写字段 “名字”- 没有空格。 例如。 潘图姆。 单击继续
  6. 在“创建”字段中,指定制造商,例如 Pantum。 单击继续
  7. 请注明 打印机型号 在 MFP(打印机)背面或包装上注明。 例如,Pantum BM5100 系列 PS (en)。 点击 “添加打印机”.

续 - 第 2 部分
续 - 第 3 部分
*结尾 - 第 4 部分



相关出版物