专栏首页星辰日记打印机+树莓派=网络打印机?

打印机+树莓派=网络打印机?

前言

  之前买了台pi zero,然后一直仍在家里当网站服务器,感觉有点浪费。正好家里有台打印机,于是找了根OTG线连接打印机实现局域网内共享打印机。

什么是CUPS

  CUPS(Common UNIX Printing System,即通用Unix打印系统)是linux下一款可以创建打印机服务器的软件,内置了常用打印机的驱动,并且配有WEB页面,可以说是一款很棒的软件了。

准备

树莓派*1(此处使用的是raspbian系统)
路由器*1
打印机*1
电脑*1(用于配制树莓派)
一双敢于尝试的双手

开始

  1.将树莓派通电,并连接打印机(打印机应处于开机状态)

  2.电脑连接树莓派SSH.

  3.提权,并安装cups(中途需要输入Y回车同意安装).

sudo -s
apt-get install cups

  4.安装完成后将pi添加到Ipadmin如果你使用其他用户登录,则添加你自己的用户名.

sudo usermod -a -G lpadmin pi

  5.接下来,先介入将cups服务停止,然后编辑配置文件(这边推荐使用vim因为习惯了吧).

sudo service cups stop
apt-get install vim
vim /etc/cups/cupsd.conf

  编辑配置内容为:

cupsd.conf

#
# Configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
# complete description of this file.
#

# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
LogLevel warn
PageLogFormat

# Deactivate CUPS' internal logrotating, as we provide a better one, especially
# LogLevel debug2 gets usable now
MaxLogSize 0

# Only listen for connections from the local machine.
# Listen localhost:631
# Listen /run/cups/cups.sock
Listen 0.0.0.0:631
...
...
...
# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow from @Local
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow from @Local
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow [email protected]
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# Set the authenticated printer/job policies...
<Policy authenticated>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# Set the kerberized printer/job policies...
<Policy kerberos>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Negotiate
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Negotiate
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Negotiate
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

  TIP:不同版本的cups配置内容应不同,但修改配置主要是为了是局域网内的计算机都能访问到cups server(cups默认只允许本机访问,就是加个显示屏浏览器输入127.0.0.1:631)

  然后,重新启动cups服务.

sudo service cups start

  6.接着浏览器访问http://你的树莓派IP地址:631进入cups的配置界面,可以看到cups还是挺注重用户使用的,制作了网页来方便用户配置吧。在上面菜单栏中找到Administrator点击进入.

  7.进入后点击Printers中的add printer.按照提示访问https://ip:631/admin/,自签证书提示不安全很正常,此处我们点击高级-继续前往ip(不安全)。打开后重新点击add printer,这是提示登录,输入自己第四步添加权限的用户名以及ssh密码即可.

  8.选择你自己的打印机(本人使用的是Lenovo_M7206)并点击continue

  9.勾选share this printrt 再次点击continue.

  10.下一页面是用来选择自己打印机驱动的,cups内置了大多数常见的打印机驱动,如果没有你适配的请联系打印机供应商提供linux版本的打印机驱动(由于我的打印机并没有找到驱动,但该打印机驱动是gdi驱动的,所以我就直接使用的同款gdi驱动的brother驱动)选择好后点击add printer

  11.打印机选项这边直接默认即可,直接点击Set Default Options此时,您已成功配置cups server并连接至打印机了.

windows连接打印机

  1.打开设置,点击设备.

  2.选择打印机和扫描仪,点击添加打印机或扫描仪,便很快能找到你的打印机(电脑和打印机要在同一个局域网下)如果找不到可以手动添加http://树莓派ip:631/printers/设置的打印机名即可.

  3.接着你便可以在word等常见应用找到该打印机.


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用树莓派DIY波士顿机器狗,帮你省下50万:教程开源,人人皆可上手

    一种是小跑姿态。这种4相步态下,机器狗对角线上的两腿同时移动,能达到更快的移动速度。

    磐创AI
  • 树莓派构建无线打印服务器

    如果没有你的打印机驱动也不要紧,上网搜搜PPD文件来告诉CUPS如何配置你的打印机即可。这个文件,我也没有测试过,可以肯定的是有这个东西~~~,如果你编译不了,...

    云深无际
  • 在树莓派上设置家庭网络的家长控制

    家长们一直在寻找保护孩子们上网的方法,从防止恶意软件、横幅广告、弹出窗口、活动跟踪脚本和其他问题,到防止他们在应该做功课的时候玩游戏和看 YouTube。许多企...

    用户8639654
  • 奇怪的拍立得,按下快门,你就被AI变成一张简笔涂鸦 | 补童年·有代码

    量子位
  • 怎样在 Linux 下用 SSH 搭建个人文件服务器

    树莓派是一个有用且价格低廉的家庭服务器,可用于很多事情。我的树莓派最常用来做打印服务器,可以在我的家庭网络中共享激光打印机,或作为个人文件服务器保存项目副本和其...

    用户8639654
  • 给智能音箱种上这个“蘑菇”,你就能防止它偷听啦 | 附DIY教程

    去年5月,一位亚马逊Echo用户和她丈夫讨论家里的木地板,结果谈话内容居然被音箱偷偷录下来发给了别人。

    量子位
  • “为了看星星,我自己做了一个行星观测器”

    观测器从 NASA 获取已知行星的坐标数据,然后可以自动调整角度,聚焦这颗行星,让我们很方便地观测它们。

    树枝990
  • 7月Top10树莓派改装项目:跨界改装无人机、GPS接收器、Game Boy

    树莓派(Raspberry Pi)由英国树莓派基金会开发,希望通过低价硬件和免费软件来促进学校的基本计算机科学教育。

    新智元
  • 200行代码落地人脸识别开锁应用

    2019年国庆,帮朋友实现了一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。几个月来运行稳定,体验良好,借着这个春节宅家的时间,整理一下这个应用的实现过...

    高树磊
  • 用树莓派做一个人脸识别开锁应用

    ? 作者:eckygao,腾讯 CSIG 云产品部 1.案例概述 1.1 背景 实现一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。总的来说,需求...

    腾讯技术工程官方号
  • C# 热敏打印机 Socket 网络链接 打印 图片 (一)

    跟着阿笨一起玩NET
  • C# 热敏打印机 Socket 网络链接 打印 图片 (二)

    跟着阿笨一起玩NET
  • 1:1还原,自制树莓派复古街机:教程已开源

    八九个月前,来自 Combient Mix 的数据科学家 Max Fischer 开始了一个从头开始构建全尺寸街机的项目,这台街机的核心计算设备就是树莓派。

    机器之心
  • 树莓派家用指北

    前两天刚刚入职,最近几天忙着租房搬家,忙活了几天总算是住进了自己小屋里,作为一个软件工程师,怎么可以没有一台家用服务器呢?方案有很多种,上至几千元的 NAS,下...

    出其东门
  • 树莓派4裸机基础教程:环境搭建

    树莓派4作为一款学习嵌入式arm开发的开发板,是非常不错的选择。嵌入式开发往往需要的不仅仅是理论知识,还需要动手操作,然后实际体验效果。由于目前开发板要么资料太...

    bigmagic
  • 外网登录访问树莓派Raspberry Pi

    本地的树莓派 Raspberry Pi,只能在局域网内访问,怎样从公网也能登录访问树莓派 Raspberry Pi?

    码路
  • 难道没人想用Jetson NANO来试试这个?

    今天Lady看到一个视频,有一个Oracle开发者团队构建了一个庞大的树莓派集群。

    GPUS Lady
  • 树莓派4最小化安装Linux

    Raspberry Pi 4 Model B发布了半年了,其强大的性能与低廉的价格使得其非常的热门。

    bigmagic
  • 用树莓派,我做了一台和红牛罐儿一样高的迷你iMac

    在树莓派的帮助下,计算机正发展的红红火火,因为树莓派能将大量的计算能力整合到一块体型不大的硅片中。最近的一次升级中,它甚至获得了可观的RAM。

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券