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

2019-04-13 18:13:34 124点赞 1291收藏 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)

2314.11元起

DS923+ 双核心 四盘位 NAS网络存储服务器 私有云 文件服务器

DS923+ 双核心 四盘位 NAS网络存储服务器 私有云 文件服务器

4020.64元起

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

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

3214.15元起

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 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

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

8599元起

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

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

7196元起

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

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

1315元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6699元起

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

5167.19元起

Synology 群晖 DS423+四盘位中小企业NAS网络存储服务器 备份一体机企业私有云网盘 DS420+升级版

Synology 群晖 DS423+四盘位中小企业NAS网络存储服务器 备份一体机企业私有云网盘 DS420+升级版

3484元起

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

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

4099元起

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

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

14203元起

Synology 群晖 DS723+ 2盘位NAS(R1600、2GB)

Synology 群晖 DS723+ 2盘位NAS(R1600、2GB)

3999元起

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)

2199元起
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

    校验提示文案

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

取消
确认
评论举报

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

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束::
每天领现金,最高24888元
红包按钮
最新文章 热门文章
1.2K
扫一下,分享更方便,购买更轻松