网络共享印刷机
背景:有些打印机只支持有线连接,而不能无线连接。这就导致了使用的不方便。一旦要印刷,那么电脑旁边就变得杂乱。
如果印刷机能接入网络,那么就可以转移杂乱,甚至放印刷机到角落里,高效利用空间。
方案选择
对于这种需求,有商业化的成品方案。在淘宝搜索网络 共享 打印机,可以找到约100元的小模块。
当然,DIY方案的优点是数据安全、灵活、来自社区的长期驱动支持 ......
准备工作
要使用自定义方案,需要一个能或已经安装Linux的机器,能装Docker更好。 物料准备完成后,用线缆连接印刷机和服务器(如NAS)。建议先确定好要使用的USB插口,以后会方便些。
直通 USB
如果你的 Linux 运行在虚拟化平台,则需要这一步。否则 Linux 无法连接打印机。
ESXI
来到某个虚拟机的管理页面,> 编辑 > 添加其他设备 > USB设备。在新添加的项目中,选择要连接到虚拟机的打印机。选项是打印机的设备名,比如Brother HL-1208。
检查
在虚拟机内查看印刷机是否已连接。一般地,Linux中,打印机的代号是lp,第一个打印机就是lp0。
ls /dev/usb # 列出所有已连接的USB设备安装共享软件
编排
name: print
services:
cupsd:
ports:
- 631:631
privileged: true
volumes:
- /dev/bus/usb:/dev/bus/usb
- /var/run/dbus:/var/run/dbus
- /app/cups:/etc/cups # 配置文件目录
container_name: cupsd
image: anujdatar/cups
environment:
- TZ=Asia/Shanghai # 时区
- CUPSADMIN=admin # 管理员用户名
- CUPSPASSWORD=admin # 管理员密码用这个 Docker Compose 文件安装CUPS。不同的镜像支持的印刷机略有区别,如果没有你需要的,可以换一个镜像。在 Docker-Hub 搜索。建议选择更新频繁的镜像。
至于配置文件的保存位置,按自己想法即可。
添加打印机
完成后,打开https://<Server_IP>:631/admin,开始配置。
在 Adminstration 页点击Add Printer。
在本地打印机中选择你的印刷机。 
WARNING
一定要勾选Share This Print,否则它不能在网络中被访问。
选择打印机型号。可以按Ctrl + F来搜索。
远程连接
在CUPS的管理页,点击顶栏的 打印机。然后会来到打印机列表,列出所有已添加的打印机。点击某个打印机,来到某个打印机的专属页面。
此时,浏览器显示的地址就是连接地址。保存它到记事本中,之后的连接需要它。
Windows (10)
系统设置 > 设备 > 打印机和扫描仪,点击 添加打印机或扫描仪,就会冒出我需要的打印机不在列表中,点击它。 选择按名称选择共享打印机,粘贴刚才保存的链接。选择对应的打印机驱动。 
点击下一步。如果没问题、报错,那么添加就算成功完成。
macOS
Android
ISO
测试
建议印刷一次来测试是否正常。
参考资料
NAS上部署CUPS,实现打印机共享+ Airprint隔空打印,让NAS变身打印服务器,复活老式打印机!Docker版CUPS打印服务器安装教程_哔哩哔哩_bilibili