1
8月
2025
在 Linux 上安装网络打印机 - 第 2 部分:IPP/IPPS 和 cups-browsed
15:12

在 Linux 上安装网络打印机 - 第 2 部分:IPP/IPPS 和 cups-browsed

1 8月 2025 15:12

。 参见 第 1 部分, 继续 第 3 部分。 结束 第 4 部分

<a名称=“p12”>

3.1.2. IPP 和 IPPS 打印协议

IPP 是“互联网打印协议”的缩写,IPPS 是“HTTPS 上的互联网打印协议”的缩写。 这些协议是将打印作业传输到网络打印机的主要协议。

IPP协议 由美国Novell公司开发,该公司专门从事网络基础设施软件。 Novell 位于美国犹他州普罗沃。 IPP 的主要重点是安全性和正确实施。 IPP (IPPS) 具有较高级别的“打印机”概念、“作业”和“文档”类型的对象。 IPPS 中的安全性:实施身份验证机制,以在本地网络或通过互联网进行安全打印:可以在打印机上安装电子签名证书和密钥,使用 IPPS 协议提供加密打印,包括通过互联网向办公室或家庭打印机提供加密打印。 IPP 和 IPPS 协议在多功能设备和打印机软件中非常常见,并且在 Linux CUPS 软件中受支持。 当前协议版本为2.0、2.1和2.2。

协议 独立聚丙烯 使用端口:
*80/TCP- 使用协议检测、添加和配置本地以太网或 Wi-Fi 网络中的打印机 ip://* (标准中描述 RFC 2911 )。 不难猜测,80端口也用于互联网上的www服务器。 IPP 和 HTTP 协议的共同点是都在端口 80 上运行并且都是应用程序级协议。
631/TCP**- 用于转移任务。 此外,当通过 HTTPS 访问打印机时,客户端会被重定向到端口 631。

! 由于 IPP:// 端口 80 映射到端口 631,因此以下条目是等效的:

ipp://host/ipp/print
http://host:631/ipp/print

! !!看书 如何使用互联网打印协议 © 2017-2018 由打印机工作组

协议 IPPS 使用端口:
*443/TCP- 在以太网或 Wi-Fi 局域网上发现、添加和配置支持协议打印的网络打印机 ips://* (S - 安全的,即受保护的)。
631/UDP**- 检测局域网上的打印机(打印机发现)。
*631/TCP- 用于传输打印作业,即将文档页面发送到打印机。 来源 RFC 7472 )。

! 由于 IPPS:// 端口 443 映射到端口 631,因此以下条目是等效的:

ipps://host:443/ipp/print
https://host/ipp/print

ipps://server.example.com/ipp/print/printer3
https://server.example.com:631/ipp/print/printer3

!!!由此可见,为了从互联网上进行打印,需要将Wi-Fi路由器中的443和631端口“转发”到路由器后面打印机的内部(本地)IP地址。 显然,互联网上的路由器必须具有固定的“白色”IP 地址或使用 动态域名解析技术

IPP和IPPS的优点:

  • IPPS 比 AppSocket 安全得多。 由于加密,数据无法被拦截。
  • IPP 和 IPPS 受到网络打印机制造商的广泛支持,可用于家庭和办公室本地网络
  • 可以通过在打印机参数中输入如下 URL,通过 Internet 连接到远程打印机:
  • 使用标准端口 80 和 443,这些端口隐藏映射到端口 631。连接打印机时,您可以访问 IPS 端口 443 或 HTTPS 发送打印作业。
    • ipp://printer.example.com/ipp
    • ipps://printer2.example.com:443/ipp/print
    • ipps://server.example.com/ipp/print/printer3
    • http://printer.example.com:631/ipp
    • https://printer2.example.com/ipp
    • https://server.example.com:631/ipp
  • 在高级安装选项“IPP EverywhereTM”和 DNSSD 中,在本地网络上搜索打印机后,添加打印机时会自动将打印机名称输入到 CUPS 表单中。

缺点:

  • 在本地网络上使用时,将引用伪域
    .local 中的 DNS 名称。 例如:
    • ipps://printer_name.local/
    • ipps://Kyocera%20ECOSYS%20M2035dn._ipps._tcp.local/
  • 连接到打印机可能无法在 ipps://printer_name.localipp://printer_name.local 等地址上工作。 解决方案:如果您打算通过打印机连接 `printer_name.local`, то нужно добавить в файл `/etc/hosts` 对于打印机的固定 IP 地址 192.168.1.123,一行如下:
    192.168.1.123 Printer_name.local
    然后将打印机安装在 CUPS 中。 例如,如果打印机名称是 KM31DC19.local,我将行 192.168.1.123 KM31DC19.local 添加到主机文件中,转到 CUPS 管理:
    http://localhost:631/admin
    ,在其中单击“添加打印机”按钮、“Internet 打印协议 (ipp)”->“继续”,然后输入打印机的连接字符串 name:
    ipp://KM31DC19.local/ipp -> “继续”,然后安装驱动程序我指定了公司 Kyocera -> “继续”,打印机型号为“M2540dn”。 从计算机打印到此网络打印机可以正常工作!

笔记。 要使用驱动程序安装 IPP 或 IPPS 网络打印机(而不是“无驱动程序”选项),您需要将打印机安装在 计算机辅助系统 表明选项 “使用 PPD 文件” 并选择 PPD 打印机驱动程序文件。 它大约占用 1 MB,必须提前从打印机制造商的网站下载。 例如,对于 Kyocera 打印机,下载链接为: 京瓷文档解决方案 - 下载

确定并检查 IPP 打印机的 IP 地址

如果事先不知道打印机的功能,则需要找出其 IP 地址并检查打印机上开放的 IPPS 端口。 要确定 IPPS 技术的存在:

nmap 192.168.1.113 -p 80

其中 192.168.1.113 是本地网络上打印机的 IP 地址。

如果端口是“开放”的,请使用网络浏览器打开此IP地址并找出设备名称
Kyocera 的名称显示在右上角。 我的主机名是: KM31DC19

确定并检查 IPPS 打印机的 IP 地址

如果事先不知道打印机的功能,则需要找出其 IP 地址并检查打印机上开放的 IPPS 端口。 要确定 IPPS 技术的存在:

nmap 192.168.1.113 -p 443
nmap 192.168.1.113 -p 631
卷曲-vvI 192.168.1.113

其中192.168.1.113是本地网络上打印机的IP地址,443和631是IPPS端口,命令curl -vvI ...显示https安全。

就像 IPP 的情况一样,使用 IPPS,我们通过在 Web 浏览器中打开打印机地址来查找主机名 http://ip_地址:

就我而言:
KM31DC19

如何使用 IPP 设置网络打印机(旧打印机或不使用 IPP Everywhere)

    1. 在运行 Linux 的个人计算机上,转到 CUPS 设置 - 在 Web 浏览器中,您需要在地址栏中输入: http://本地主机:631/
  1. 在 CUPS 网页上,选择菜单项 行政管理-添加打印机
  2. 然后 “其他网络打印机”-“IPP”,点击继续
    1. 手动输入 ipp://KM31DC19.local/ipp [标记](без косой черты в конце!)[/mark] - 将 KM31DC19 替换为实际的打印机主机名。 单击继续
  3. 填写字段 “名字”- 没有空格。 例如。 Kyocera_IPP(名称不得包含空格、下划线 _ 可接受)点击继续
  4. 在“创建”字段中指定制造商,例如 Kyocera。 单击继续
  5. 在顶部列表中指出 打印机驱动程序,与 MFP(打印机)后面板上或包装上标明的型号相对应。 例如,对于 Kyocera M2540dn 多功能设备型号,您可以选择驱动程序Kyocera ECOSYS M2540dn (KPDL)、driverless、cups-filters指定驱动程序:“使用 PPD 文件” 并选择文件[标记]*.ppd[/mark],之前从打印机制造商的网站下载。点击 “添加打印机”.
  6. 指定纸张尺寸 (A4)、纸盘(自动或纸盘 1)、介质类型(自动)、双面打印(纵向)/关闭)、纸张输出 输出纸盘:顶部、打印缩放:自动。 在策略选项卡上,检查 “重试打印机”
  7. 点击 保存参数 打印机已添加。
    10.检查打印机是否可以通过名称在网络上访问
    ping KM31DC19.local
    如果执行错误为“ping:KM31DC19.local:未知名称或服务”,请在主机文件中添加如下条目:
    192.168.1.115 KM31DC19.local
    其中 192.168.1.115 是打印机的 IP 地址。 保存主机文件。
    11.现在您需要启用打印机并将其设置为“默认”:

    开始 - 管理 - 打印机 - 打印机名称- 右键单击并安装 “活跃”“设置为系统范围的默认打印机”

! 如果作业离开(“正在打印”),但打印机不打印(在开始 - 管理 - 打印机 - 打印机名称 -“查看打印队列” 状态“渲染完成”或“延迟”、“暂停”等) - 当使用带有 IPP:// 连接的重新填充或非原装墨盒时会发生这种情况。 因为无法确定_墨粉_或墨水量。 使用另一台打印机 ipp://Pantum-4AF471.local/ipp 则没有此问题。 使用IPPS模式时Kyocera也没有问题(见下一段)。

 

如何使用 IPPS 协议设置网络打印机(旧打印机或_不_使用 IPP Everywhere)

    1. 在运行 Linux 的个人计算机上,转到 CUPS 设置 - 在 Web 浏览器中,您需要在地址栏中输入: http://本地主机:631/
  1. 在 CUPS 网页上,选择菜单项 行政管理-添加打印机
  2. 然后 “其他网络打印机”-“IPP”,点击继续
    1. 手动输入 http://KM31DC19.local:631/ipp [标记](без косой черты в конце!)[/mark] - 将 KM31DC19 替换为实际的打印机主机名。 单击继续
  3. 填写字段 “名字”- 没有空格。 例如。 Kyocera_IPPS(名称不得包含空格、下划线 _ 这么说吧)。 单击继续
  4. 在“创建”字段中,指定制造商,例如“Kyocera”。 单击继续
  5. 在顶部列表中指出 打印机驱动程序,与 MFP(打印机)后面板上或包装上标明的型号相对应。 例如,Kyocera ECOSYS M2540dn (KPDL)、无人驾驶、cups-filters指定驱动程序:“使用 PPD 文件” 并选择文件[标记]*.ppd[/mark],之前从打印机制造商的网站下载。 点击 “添加打印机”.
  6. 指定纸张尺寸 (A4)、纸盘(自动或纸盘 1)、介质类型(自动)、双面打印(纵向)/关闭)、纸张输出 输出纸盘:顶部、打印缩放:自动。 在“策略”选项卡上,检查“错误策略”参数 - 值 “重试作业”
  7. 点击 保存参数 打印机已添加。
    10.检查打印机是否通过网络名称 ping 通。

    ping KM31DC19.local
    如果执行错误为“ping:KM31DC19.local:未知名称或服务”,请在主机文件中添加如下条目:
    192.168.1.115 KM31DC19.local
    其中 192.168.1.115 是打印机的 IP 地址。 保存主机文件。
    11.现在您需要将打印机启用为活动并将其设置为默认打印:

    开始 - 管理 - 打印机 - 打印机名称- 右键单击并选中该框 “活跃”,在菜单项“用作默认值” -“设置为系统范围的默认打印机”“设置为当前用户的默认打印机”


如何使用 IPPS 设置网络打印机(使用 IPP EverywhereTM 的新打印机)

    1. 在运行 Linux 的个人计算机上,转到 CUPS 设置 - 在 Web 浏览器中,您需要在地址栏中输入: http://本地主机:631/
  1. 在 CUPS 网页上,选择菜单项 行政管理-寻找打印机“添加打印机”
  2. 然后选择提到无驱动打印的打印机 “(无人驾驶)”。 例如,“京瓷 ECOSYS M2540dn (KPDL)(无人驾驶) (京瓷 ECOSYS M2540dn (KPDL))”。 单击继续
  3. 下一个屏幕将显示完整 DNS 名称包含的连接设置 “._ipps._tcp.local/” 单击继续
  4. 更正字段 “名字”- 没有空格。 例如。 Kyocera_IPP_Everywhere(名称不得包含空格、下划线 _ 这么说吧)。 单击继续
  5. 选择列表的第一行 - 提及的打印机型号 IPP 无处不在TM 然后点击下面 “添加打印机”
  6. 点击 保存参数 打印机已添加。

3.1.3 - 使用cups-browsed 服务检测到的打印机进行IPP/IPPS 打印

cups-browsed 服务会在计算机启动时搜索支持 IPP/IPPS 的网络打印机和多功能设备 (MFP)。 将来,访问菜单时可以看到找到的打印机 “文件”-“打印”。 打印机列表是动态的;打印机检测时间可能需要几秒钟。

cups-browsed服务由开发团队开发 开放打印 和来自美国的 PWG(印刷工作组)。 Linux 操作系统一部分的项目之一。 作者 cups-browsed :蒂尔·坎皮特、迪帕克·帕坦卡。 Apache 许可证 v2.0。

不需要手动设置连接;当您选择打印机时,它是自动的。
cups-browsed连接协议如下: implicitclass://printer_name/ 这样。 与打印机的连接是通过软件层进行的,这极大地方便了打印机的设置和打印。 如上所述,缺点是使用杯子浏览时会出现轻微延迟,并且中央处理器的负载会增加。

杯子浏览的好处:

  • 不需要通常意义上的打印机设置。 您只需选择所需的检测到的网络打印机即可。

  • 连接后,使用ipps协议,但其详细信息对用户隐藏。

  • 与固定或动态 IP 地址 (DHCP) 无关。

    杯浏览的缺点:

  • 菜单打开延迟 文件 - 打印 (例如,在 Linux Mint 或 Linux Green 中)发现网络打印机所需的。

  • 漏洞,因为对外开放 端口 631。 攻击者可以向端口 631 发送任意 UDP 数据包,这在最好的情况下会导致服务崩溃,在最坏的情况下会劫持计算机的控制权。

要消除延迟,您需要手动安装打印机并禁用该服务

sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
sudo systemctl restart cups

如果我们想自动检测打印机,请重新启用该服务:

sudo systemctl enable cups-browsed
sudo systemctl start cups-browsed

从外部封锁防火墙上的631端口(解决漏洞问题)。

sudo apt install ufw
sudo ufw enable
sudo ufw deny 631 #阻塞端口
sudo ufw status numbered
须藤 ufw 重新加载

本系列文章的第 4 部分介绍了开箱即用的使用 Cups-Browsed 的 Linux 发行版。




相关出版物