在Ubuntu上设置CUPS打印服务器(你好,IPP,Samba,AirPrint)
- 技术文档
- 2022.03.23
- 浏览:894
文章目录[隐藏]
本教程将向您展示如何在同一网络上与Windows、macOS和iOS客户端共享连接到Ubuntu计算机的打印机。CUPS(通用Unix打印系统)是Linux、FreeBSD和macOS上的默认打印系统。Linux桌面环境可能有一个专用的打印机配置实用程序,但它们都使用罩杯。
CUPS打印机可以通过多种协议在网络上共享,包括:
- Bonjour+IPP:Bonjour,也称为mDNS/DNS-SD(多播DNS/DNS服务发现),允许计算机在本地网络上查找服务。IPP(互联网打印协议)是传输协议。
- SMB:又名Samba,主要用于与Windows客户端共享文件和打印机。
- AirPrint:允许iPhone、iPad和macOS客户端通过Wi-Fi进行打印。
每种协议都有其优缺点。首先,我将向您展示如何安装和配置CUPS。然后我们将学习如何通过上述3个协议共享CUPS打印机。我建议使用这三种方法共享打印机,这样用户就可以在本地网络上轻松找到可用的打印机。
第一步:在Ubuntu上安装和配置CUPS
Ubuntu桌面版预装了CUPS。如果你使用Ubuntu server edition,你需要运行以下命令从默认的Ubuntu存储库安装CUPS。
sudo-apt-install-cups
然后开始喝咖啡。
sudo systemctl启动杯
启动时启用自动启动。
sudo systemctl启用cups
检查其状态:
systemctl状态杯
样本输出:
接下来,使用命令行文本编辑器(如Nano)编辑CUPS主配置文件。
sudo nano/etc/cups/cupsd。形态
首先,我们需要在本地网络上显示共享打印机。找到下面这行。
浏览
换成
浏览
因此,同一网络中的其他计算机可以看到连接到Ubuntu计算机的打印机。
默认情况下,CUPS web界面仅在localhost:631上可用。如果你运行的是Ubuntu server edition,你可能还想让CUPS监听所有可用的网络接口,这样你就可以从其他计算机访问CUPS网络接口。找到下面这行。
听本地主机:631
换成
631端口
所以CUPS将监听所有网络接口。然后找到下面几行。
<;地点/>;命令允许、拒绝</地点>;
上述配置仅允许从本地主机访问CUPS web界面。要允许从同一网络中的其他计算机进行访问,请将allow@LOCAL添加到如下配置中。
<;地点/>;命令允许,拒绝允许@LOCAL</地点>;
还将其添加到/admin目录,以允许从本地网络进行远程管理。
<;地点/管理>;命令允许,拒绝允许@LOCAL</地点>;
您还可以允许特定的IP地址,如下所示:
<;地点/>;订单允许,拒绝允许192.168.0.101</地点>;
保存并关闭文件。然后重新启动CUPS,使更改生效。
sudo systemctl重新启动cups
注意,如果你在Ubuntu上启用了UFW防火墙,你需要允许同一网络中的客户端访问你的Ubuntu盒上的631端口。例如,我的专用网络使用192.168.0.0~192.168.0.255网络范围,因此我运行以下命令。
sudo ufw允许从192.168.0.0/24进入任何端口631
CUPS网络界面可在https://IP-address-of-Ubuntu-box:631.在本文中,我们不需要使用web界面,但是如果您想使用它,那么您需要将您的用户帐户添加到lpadmin组,以便在CUPS web界面中进行更改。
sudo adduser你的用户名lpadmin
第2步:在Ubuntu上安装打印机驱动程序
你需要在Ubuntu上安装驱动程序,这样它才能识别和使用打印机。如果您有HP打印机,可以使用以下命令轻松安装驱动程序。
sudo apt安装hplip
我还建议安装打印机驱动程序gutenprint软件包,该软件包为佳能、爱普生、惠普和兼容打印机提供CUPS驱动程序。
sudo apt安装打印机驱动程序gutenprint
如果您有其他打印机,可以在openprinting上找到驱动程序。组织。
安装驱动程序后,您可能需要将打印机重新连接到Ubuntu计算机的USB端口。要测试驱动程序是否正常工作,可以在Ubuntu上创建一个文本文件:
echo“LinuxBabe太棒了!”>;文件txt
然后运行以下命令从命令行打印此文本文件。
lp文件。txt
这是一个非常基本的方法,所以现在不用担心打印质量。
步骤3:通过Bonjour/IPP协议共享CUPS打印机
安装Avahi守护进程
CUPS可以通过mDNS(多播DNS)和DNS-SD(DNS服务发现)协议(也称为Bonjour)宣布其在网络上的存在。为了做到这一点,你需要安装并运行avahi daemon,这是一个类似于Apple Bonjour服务的服务,它允许计算机自动发现本地网络上的共享设备和服务。
sudo apt安装avahi守护进程
启动avahi守护进程。
sudo systemctl启动avahi守护程序
启动时启用自动启动。
sudo systemctl启用avahi守护程序
Avahi守护进程监听UDP端口5353。在防火墙中打开它。
sudo ufw允许5353/udp
IPP无人驾驶打印
Bonjour用于在本地网络上宣传打印机。为了使客户端和CUPS服务器相互通信,需要IPP(Internet打印协议)。IPP的优点是,客户端可以使用共享打印机,而无需在自己的设备上安装任何驱动程序。CUPS支持开箱即用的IPP,所以通过IPP共享CUPS打印机不需要做任何其他事情。
步骤4:在客户端计算机上添加打印机
macOS和Linux客户端
因为macOS和大多数Linux桌面发行版都安装了CUPS作为默认打印系统,一旦您在Ubuntu box上通过Bonjour/IPP启用了打印机共享,macOS和Linux用户在同一网络中就可以自动使用打印机。当他们在应用程序(文字处理器、电子邮件阅读器、照片编辑器和web浏览器)中单击打印选项时,打印机将自动可用。他们不必明确地添加打印机。这是魔法。
如果Linux计算机找不到打印机,则系统可能没有ippfind命令。运行以下命令将其安装在基于Debian的Linux发行版上。
sudo apt安装cups ipp utils
在CentOS 8上,运行以下命令。
sudo dnf安装工具
然后在客户端计算机上重新启动CUPS。
sudo systemctl重新启动cups
窗户
Windows 10附带IPP客户端。在左下搜索栏中输入打印机,然后打开打印机&;扫描仪。然后单击添加打印机或扫描仪按钮。它将扫描本地网络上可用的打印机。
如您所见,它找到了我的HP Deskjet打印机。选择找到的打印机,然后单击添加设备。它将在几分钟后添加到打印机列表中。
如果您使用的Windows版本不同,无法以这种方式添加打印机,则可以安装Bonjour打印服务。安装后,启动Bonjour打印机向导。它将自动扫描本地网络上可用的打印机。从屏幕截图中可以看到,它找到了我的HP打印机。
单击“下一步”,然后需要为此打印机选择驱动程序。您可以选择默认安装在系统上的Microsoft IPP类驱动程序。
单击“下一步”,打印机将被添加到Windows系统中。
在Linux上手动添加打印机
如果由于任何原因没有看到打印机,可以手动添加一台。要在桌面Linux上添加Bonjour共享打印机,请在系统设置或应用程序菜单中搜索打印机配置实用程序。单击“添加”按钮添加新打印机。
然后单击网络打印机,它会自动扫描本地网络上可用的打印机。如您所见,它找到了我的HP Deskjet打印机。单击“前进”按钮。
然后你可以给打印机一个名字和描述。我只是接受默认值。点击Apply,你就完成了。
在macOS上手动添加打印机
要在macOS上添加Bonjour共享打印机,请转到系统首选项->;打印机及;扫描仪。单击加号(+)按钮添加打印机。
它会自动扫描本地网络上可用的打印机。如您所见,它找到了我的HP Deskjet打印机。
单击“添加”按钮,它将出现在打印机列表中。
第5步:通过Samba共享CUPS打印机
Samba是针对Unix和Linux的免费开源SMB/CIFS协议实现,允许Unix/Linux和Windows机器在局域网中共享文件和打印。它主要用于与Windows客户端共享文件和打印机。
要在Ubuntu上安装Samba,只需在terminal中运行以下命令。
sudo apt安装samba samba公共bin
要检查Samba服务是否正在运行,请发出以下命令。
systemctl状态smbd systemctl状态nmbd
要启动这两项服务,请发出以下命令:
sudo systemctl start smbd sudo systemctl start nmbd
然后编辑主配置文件。
sudo nano/etc/samba/smb。形态
共享打印机时,建议启用spoolssd服务。当有大量打印作业时,这将使Samba更加高效。只需在[global]部分添加以下两行即可启用spoolssd服务。
rpc_服务器:spoolss=外部rpc_守护进程:spoolsd=fork
接下来,转到文件的末尾,您将看到[printers]部分。在Nano文本编辑器中,您可以通过按Ctrl+W,然后按Ctrl+V跳转到文件末尾。找到以下两行。
可浏览=没有客人确定=没有
换成
browseable=是客人ok=是
保存并关闭文件。然后重启Samba。
sudo systemctl重新启动smbd nmbd
在Windows中添加Samba共享打印机。
打开文件浏览器,在地址栏中输入Ubuntu计算机的IP地址,如//192.168.0.110。现在应列出打印机。
双击打印机将其添加到Windows系统。然后单击“确定”按钮选择要安装的驱动程序。安装驱动程序后,打印机将添加到Windows系统中。
第6步:通过AirPrint与iOS客户端共享CUPS打印机
AirPrint允许iPhone、iPad和macOS客户端通过Wi-Fi进行打印,而无需在客户端设备上安装驱动程序软件。CUPS支持AirPrint,但默认情况下avahi守护程序不会在本地网络上宣布AirPrint服务。我们需要创造一个。打印机的/etc/avahi/services/目录中的服务文件,使用带有以下命令的Python脚本。我的打印机型号是DeskJet 2130系列。将其替换为您自己的型号名称。
sudo nano/etc/avahi/services/AirPrint-DeskJet-2130-series。服务
在文件中添加以下行。
<;?xml版本='1.0'编码='UTF-8'>&书信电报;!DOCTYPE服务组系统“avahi service.dtd”>&书信电报;服务集团>&书信电报;name replace wildcards=“yes”>;AirPrint DeskJet-2130-series@%h</名称>&书信电报;服务>&书信电报;类型>_ipp_tcp</类型>&书信电报;亚型>_通用的_sub._ipp_tcp</亚型>&书信电报;港口>;631</港口>&书信电报;txt记录>;txtvers=1</txt记录>&书信电报;txt记录>;qtotal=1</txt记录>&书信电报;txt记录>;透明=T</txt记录>&书信电报;txt记录>;URF=无</txt记录>&书信电报;txt记录>;rp=打印机/DeskJet-2130-series</txt记录>&书信电报;txt记录>;注=HP DeskJet 2130系列</txt记录>&书信电报;txt记录>;产品=(GPL Ghostscript)</txt记录>&书信电报;txt记录>;打印机状态=3</txt记录>&书信电报;txt记录>;打印机类型=0x2900c</txt记录>&书信电报;txt记录>;pdl=application/octet流、application/pdf、application/postscript、application/vnd。cups光栅、image/gif、image/jpeg、image/png、image/tiff、image/urf、text/html、text/plain、application/vnd。adobe reader postscript,应用程序/vnd。cups pdf</txt记录></服务></服务集团>;
保存并关闭文件。重新启动Avahi守护进程。
sudo systemctl重启avahi守护进程
现在,同一网络中的iOS和macOS客户端应该能够使用您的打印机。下面的屏幕截图显示我的iPhone成功找到了AirPrint打印机。
收尾
我希望本教程能帮助您在Ubuntu 20.04、18.04和21.10上安装CUPS打印服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。您可能还想阅读下面的文章来设置Samba文件共享服务器。
- 在Ubuntu上设置Samba服务器进行文件共享