当多台电脑需要使用打印机的时候,最方便的做法是通过打印机的网络接口(无线或有线)将打印机添加到电脑,作为一个“本地打印机”使用。但是很多打印机不带网络功能,这时候就需要准备一台专门的电脑,使用USB连接打印机,再从这台电脑把打印机共享出去。

常见的共享做法是直接使用“文件和打印机共享”,通过samba,将打印机用类似于文件共享的做法进行发布,并没有什么值得过多介绍的地方。本文将介绍另一种方案,使用CUPS(Linux)搭建打印服务器。

1. 环境:

  • 操作系统:Ubuntu 18.04 LTS
  • 打印机:京瓷1800

2. 软件安装

2.1 安装打印机驱动/打印机原厂软件

总的原则就是到打印机官网找到与服务器操作系统以及CPU体系构架相匹配的驱动(如Linux 64位)。如果是HP打印机,在ubuntu的安装源里有专门的官方工具包叫hplip,包含了驱动、打印机维护组件等一系列打印机支持的内容。

安装好驱动后,系统就可以识别出打印机并能与打印机正常通信了。

2.2 安装CUPS,并启动服务

CUPS服务内置了一个httpd服务器,默认监听在localhost:631上,这时候有两种选择:使用反向代理发布localhost:631到外网,或者直接修改cupsd.conf,把侦听地址改为0.0.0.0:631。

apt install cups -y

sed -i "s/.*localhost.*/Listen 0.0.0.0:631/g" /etc/cups/cupsd.conf
systemctl restart cups
systemctl enable cups
ss -lnopt | grep 631
# cups服务使用631端口

3. 向CUPS服务添加打印机以及在PC中安装

  • 添加打印机(所有管理性质的操作,都需要认证用户身份)
  • 打印机详情页面有两套命令:Maintenance, Administration分别用于打印机作业维护和打印机管理。
  • 打印机列表

在http://xxxxxx:631/printers 页面下,可以查看所有打印机,具体每台打印机的网址,则是http://xxxxxx:631/printers/打印机名称,如http://xxxxxx:631/printers/Kyocera_TASKalfa_1800,点击打印机名称即可查看详情,向PC添加打印机时,指定打印机位置时就用这个链接。