低成本的无线打印:群晖上通过Docker容器实现Airprint

2019-04-13 18:13:34 124点赞 1289收藏 220评论

群晖NAS得益于高质量的软件设计和方便的使用体验深受家庭用户喜爱。随着使用场景的扩展,各种功能的发掘也随着需求的增长不断出现。打印虽然是个古老的话题了,但是对于有打印需求的用户来说,有些时候还真的离不开。

于是利用群晖NAS配合低成本打印机,实现家庭(小型办公环境)打印机共享的方案深受欢迎。但是对于有无线打印需求的用户来说,如果打印机本身不带Airprint功能,那么有没有办法实现呢?

前一段时间,我写了个利用群晖的虚拟机实现无线打印的文章,有些同学提出来,能不能利用Docker来实现。于是周末抽空玩了一下,把结果分享一下。

方案描述

由于驱动支持的原因,有一部分打印机没有办法利用Synology内置的CUPS驱动实现AirPrint。但是Synology系统上没有很好的办法自定义驱动安装打印机。
由于Docker镜像可定制性高,可以很方便的安装自定义驱动和软件,所以利用Synology系统的Docker容器,挂载NAS上的打印机,实现局域网打印机共享,和移动设备打印需求。尤其是iOS,由于系统原因,很多无线打印都是通过安装第三方软件来实现。这个使用体验和系统原生支持的AirPrint还是有一些不同的。

准备工作

1. 打开系统的ssh服务,方便后续操作

低成本的无线打印:群晖上通过Docker容器实现Airprint

2. 打开系统的Bonjour服务发现

低成本的无线打印:群晖上通过Docker容器实现Airprint

3. 连接ssh。如果是Windows 10系统,可以安装一下ssh client或者使用其他软件如putty等

4. 停掉系统内置的CUPS服务,避免端口冲突
synoservicecfg--hard-stop cupsd
synoservicecfg --hard-stop cups-lpd
synoservicectl --stop cupsd
synoservicectl --stop cups-lpd

5. 为Docker容器创建文件夹,方便储存配置文件:我这里创建了docker-aiprint,里面两个子文件夹如图

低成本的无线打印:群晖上通过Docker容器实现Airprint


步骤

1. 准备就绪之后,咱们就开始选docker镜像了,我这里选择的是:

低成本的无线打印:群晖上通过Docker容器实现Airprint

低成本的无线打印:群晖上通过Docker容器实现Airprint

也可以在ssh里面一步到位:

docker run -d --name=airprint
--net="host"
--privileged=true
-e "CUPS_USER_ADMIN"="admin"
-e "CUPS_USER_PASSWORD"="pass"
-e TZ="Asia/Shanghai"
-e HOST_OS="Synology"
-e "TCP_PORT_631"="631"
-v"/volume1/docker/airprint/config":"/config"
-v /dev:/dev
-v"/volume1/docker/airprint/avahi":"/etc/avahi/services"
-v /var/run/dbus:/var/run/dbus"mnbf9rca/cups-google-print"
备注:以手命令里面的"CUPS_USER_ADMIN"="admin"参数是CUPSD服务的管理页面账号,"CUPS_USER_PASSWORD"="pass"是密码。我这里保持默认,自己家用无所谓。

低成本的无线打印:群晖上通过Docker容器实现Airprint

2. 命令执行完之后,容器已经运行了

3. 试一下登录管理页面:https://DSM的IP:631/admin/ 注意这里默认是https。

低成本的无线打印:群晖上通过Docker容器实现Airprint

4. 添加打印机

低成本的无线打印:群晖上通过Docker容器实现Airprint

打印机已经可以发现了

低成本的无线打印:群晖上通过Docker容器实现Airprint

别忘记勾选共享

低成本的无线打印:群晖上通过Docker容器实现Airprint

低成本的无线打印:群晖上通过Docker容器实现Airprint

这一步的时候,如果找不到自己的打印机驱动,可以手动指定驱动。我的HP机器,可以去这里看看:
https://developers.hp.com/hp-linux-imaging-and-printing

低成本的无线打印:群晖上通过Docker容器实现Airprint

低成本的无线打印:群晖上通过Docker容器实现Airprint

我选择了默认A4纸,最佳打印质量

低成本的无线打印:群晖上通过Docker容器实现Airprint

设置完后回到打印机这一页,可以看到打印机处于空闲状态

低成本的无线打印:群晖上通过Docker容器实现Airprint

可以打印一个测试页

低成本的无线打印:群晖上通过Docker容器实现Airprint

手机端打印测试

低成本的无线打印:群晖上通过Docker容器实现Airprint

低成本的无线打印:群晖上通过Docker容器实现Airprint


总结

是不是很简单?资源占用明显比之前的虚拟机方案小太多了。

低成本的无线打印:群晖上通过Docker容器实现Airprint

顺便附上CUPSD的配置文件,如果登录CUPSD管理页面有问题的,可以参考(重点是注释掉AuthType Default和添加Allow from all)。

#比如默认位置

# Restrict access to the server...

#AuthType Default
Allow from all
Order deny,allow


#管理页面
# Restrict access to the admin pages...

#AuthType Default
#Require user @SYSTEM
Allow from all

Order deny,allow


其他位置酌情修改即可。

展开 收起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4099元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器 京东云定制版(J3355、2GB)

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器 京东云定制版(J3355、2GB)

暂无报价

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

13746元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起
220评论

  • 精彩
  • 最新
  • 老铁你太仗义了,上篇文章说这个docker的教程,这就出来了,必须点赞。这月的碎银子都是你的 [高兴]

    校验提示文案

    提交
    谢谢大佬支持, [赞一个]

    校验提示文案

    提交
    收起所有回复
  • Win7下面怎么把打印机🖨️变成Airprint呢?

    校验提示文案

    提交
    win7下的实现应该可以通过安装某些软件来实现,我有空的话研究一下

    校验提示文案

    提交
    收起所有回复
  • HP1000 1005 1018 1020,群晖论坛有解决方案,不需要Docker或者虚拟机。去看看 按照zizitop的回复进行操作,我的hp1020在黑群晖DAM6上驱动成功。

    校验提示文案

    提交
    你好,我是hp m28a的打印机,那个dl文件要去哪里找啊,没找到,谢谢

    校验提示文案

    提交
    能否写个中文版教程,方便广大小白的使用

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 群晖自带的太差了,我也试试群主的方案

    校验提示文案

    提交
    群晖的驱动支持是有点差,我也是试过不少方案,甚至试过命令行安装,不过由于系统限制,多少都有遗憾。群晖上docker的方案算是比较简单高效的,相比虚拟机资源占用少,安装配置方便。同时支持Windows, Linux, Android, iOS, macOS.

    校验提示文案

    提交
    收起所有回复
  • 为啥一直说我的密码不正确啊

    校验提示文案

    提交
    看文章最后一段,关于改cupsd的web interface的默认验证,黑体加粗的部分是需要修改的

    校验提示文案

    提交
    收起所有回复
  • 这个打印机得连接到NAS上吧?

    校验提示文案

    提交
    是的,打印机连接NAS, 用NAS上的docker容器挂载和共享打印机。使用体验上跟NAS上直接安装打印机一样,但是可以很方便的自定义驱动。

    校验提示文案

    提交
    明白了,不过我的NAS在衣帽间,没有放打印机的地方了。

    校验提示文案

    提交
    收起所有回复
  • 使用这种方法对于windows下网络打印有影响吗

    校验提示文案

    提交
    Windows下打印机的连接配置方法略有变化,需要重新安装,不过使用起来是一样的

    校验提示文案

    提交
    收起所有回复
  • “停掉系统内置的CUPS服务”这里显示权限被拒绝“ Permission denied”,是要在root权限下进入SSH吗

    校验提示文案

    提交
    需要用具有sudoer权限的账号,并且运行命令的时候使用sudo或者su提升权限

    校验提示文案

    提交
    还得麻烦楼主,本人对命令行简直一窍不通。docker run -d --name=airprint 这句命令,返回显示"docker run" requires at least 1 argument(s)然后我改成docker run -d: --name="irprint"返回显示unknown shorthand flag: ':' in -:简直一头雾水啊

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 打印机无线连的路由的话这种方式识别不出来啊,必须直连NAS么

    校验提示文案

    提交
    这个并不是唯一的实现方式,cupsd本身就支持安装网络打印机。也就是说,把打印机通过网络协议连接到docker里面的cups服务之后,再共享依然可以实现airprint。不过cups里面的打印机设置跟我这个略有不同

    校验提示文案

    提交
    道理懂了,得去找找教程,多谢 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 上次用n1盒子装cups连家里的爱普生,也是用ppd安装驱动,不知道什么原因无法打印测试页,估计是驱动或者usb连接问题

    校验提示文案

    提交
    这种问题多半是驱动造成的

    校验提示文案

    提交
    驱动不对,光有ppd是不行的

    校验提示文案

    提交
    收起所有回复
  • Windows和安卓下如何安装打印机呢?

    校验提示文案

    提交
    下一篇文章打算详细介绍一下

    校验提示文案

    提交
    收起所有回复
  • 大妈上还有玩docker的?k8s搞不搞? [高兴]

    校验提示文案

    提交
    见笑见笑,玩无定法。祝各位老铁玩的愉快

    校验提示文案

    提交
    收起所有回复
  • 打印机不都基本无线打印了么

    校验提示文案

    提交
    不一定哦,有些打印机虽然支持无线,却并不支持airprint

    校验提示文案

    提交
    收起所有回复
  • [喜极而泣] 我的216play装不了docker

    校验提示文案

    提交
    不支持docker的话只能考虑一下别的方案了

    校验提示文案

    提交
    你需要一只蜗牛了

    校验提示文案

    提交
    收起所有回复
  • 请问楼主,对于本来就是无线打印机,但是不支持airprint的,可以通过这个方案无线接入群晖,再airprint出来吗?也就是免去直接USB接群晖。

    校验提示文案

    提交
    理论上是可以的,不过我手头上没有这种打印机,所以没办法实际验证

    校验提示文案

    提交
    可以的,我就是曲线救国,打印机先连到破路由器上的cups,又接到docker里的

    校验提示文案

    提交
    收起所有回复
  • 请教楼主一个问题,出现了以下两个情况,无法解决
    前提:已经通过ssh禁用了4项服务,是在docker界面进行设置的容器,而不是用ssh命令,但是命令中设置的几个变量都在图形界面中添加到环境变量中,卷文件夹也设置了。
    1、网络模式采用bridge桥接时,设置端口631会提示与其他服务冲突,设置成其他的,比如632可以成功。也能通过浏览器访问,用户名密码可以认证通过,并设置打印机。但是手机却无法发现打印机。
    2、网络模式采用与本机相同,应该就是host模式,并在环境变量中添加631端口的变量。启动后通过631端口可以访问,但是用户名密码无论如何都无法通过验证。用户名和密码的环境变量是已经设置好了的。

    请教楼主有没有什么解决办法?

    校验提示文案

    提交
    再更新一下,直接在ssh里用命令新建容器,也还是无法通过用户名密码验证。真是奇怪

    校验提示文案

    提交
    看描述应该是没有停掉系统内置的cups服务,端口冲突。其次cups由于默认的安全限制,需要修改配置文件解除限制。关于配置文件修改请看文章末尾

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 老铁,我咨询一下,虚拟机和docker哪一种能实现重新开机后,自动连接打印机到自建的打印服务器,而不是群晖的打印服务器,谢谢!!!

    校验提示文案

    提交
    Docker可以,虚拟机由于系统抢占,需要每次手动挂载USB设备。

    校验提示文案

    提交
    收起所有回复
  • 有没有安卓版的教程docker设置?

    校验提示文案

    提交
    看系列文章之二,装谷歌云打印插件

    校验提示文案

    提交
    收起所有回复
  • 我虽然终止了cups进程,但是群晖里自带的外接打印机还是不时会弹出来,于是我docker打印的作业只是显示完成但是实际上却一直没有打印。请问怎么解决?

    校验提示文案

    提交
    给它一顿老拳:synoservice --hard-disable cupsd
    synoservice --hard-disable cups-lpd
    synoservicectl --stop cupsd
    synoservicectl --stop cups-lpd
    synoservicecfg --hard-disable cupsd
    synoservicecfg --hard-disable cups-lpd

    校验提示文案

    提交
    你好,请问我是威联通nas,如何禁用系统自带的的打印服务呢?

    校验提示文案

    提交
    收起所有回复
  • 这个对打印机有要求吗?普通的不带无线的打印机——我的是P1106,可以用吗

    校验提示文案

    提交
    可以的,BD

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.2K
扫一下,分享更方便,购买更轻松