免费端口映射工具_内网穿透软件_内网映射外网教程交流_nat123论坛客服

 找回密码
 获得新生
查看: 23192|回复: 6

[分享] CUPS&samba+CUPS为Linux安装打印机并共享给Windows

[复制链接]
发表于 2015-11-3 15:25:38 | 显示全部楼层 |阅读模式
本帖最后由 dsouth 于 2015-11-3 15:28 编辑

解决的不是太完美,不能共享给Internet,曾经发过疑问贴,也被热心的管理员很好地解答了,但没解决问题。
经过查询,应该是CUPS的一个BUG,不是nat123的原因,因为输入管理页面的地址后在浏览器可以很好地出现400错
这是BUG贴
帖子说在cupsd.conf文件尾部增加“ServerAlias *”就解决了,但经过实际操作并没有什么♀用

希望论坛里的哪位有兴趣的话可以帮忙解决这个问题,这样打印机的使用范围就不仅限于局域网了

另外经过实测不用samba也可以,在CUPS管理页面勾选“Allow printing from the Internet”和“Allow remote administration”
配置文件改成下面这样,我的CUPS版本是1.5.3
代码似乎不能标红,夹在<font color="Red"></ font>中间的是改动的部分
  1. LogLevel warn
  2. MaxLogSize 1m
  3. # Allow remote access
  4. <font color="Red">Port *:631</font>
  5. Listen /var/run/cups/cups.sock
  6. Browsing On
  7. BrowseOrder allow,deny
  8. <font color="Red">BrowseAllow All</font>
  9. BrowseRemoteProtocols cups ldap slp
  10. BrowseAddress *:631
  11. BrowseLocalProtocols cups dnssd ldap slp
  12. DefaultAuthType Basic
  13. WebInterface Yes
  14. <Location />
  15.   # Allow remote administration...
  16.   Order allow,deny
  17.   <font color="Red">Allow all</font>
  18. </Location>
  19. <Location /admin>
  20.   # Allow remote administration...
  21.   Order allow,deny
  22.   <font color="Red">Allow all</font>
  23. </Location>
  24. <Location /admin/conf>
  25.   AuthType Default
  26.   Require user @SYSTEM
  27.   # Allow remote access to the configuration files...
  28.   Order allow,deny
  29.   <font color="Red">Allow all</font>
  30. </Location>
  31. <Policy default>
  32.   JobPrivateAccess default
  33.   JobPrivateValues default
  34.   SubscriptionPrivateAccess default
  35.   SubscriptionPrivateValues default
  36.   <Limit Create-Job Print-Job Print-URI Validate-Job>
  37.     Order deny,allow
  38.   </Limit>
  39.   <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>
  40.     Require user @OWNER @SYSTEM
  41.     Order deny,allow
  42.   </Limit>
  43.   <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
  44.     AuthType Default
  45.     Require user @SYSTEM
  46.     Order deny,allow
  47.   </Limit>
  48.   <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>
  49.     AuthType Default
  50.     Require user @SYSTEM
  51.     Order deny,allow
  52.   </Limit>
  53.   <Limit Cancel-Job CUPS-Authenticate-Job>
  54.     Require user @OWNER @SYSTEM
  55.     Order deny,allow
  56.   </Limit>
  57.   <Limit All>
  58.     Order deny,allow
  59.   </Limit>
  60. </Policy>
  61. <Policy authenticated>
  62.   JobPrivateAccess default
  63.   JobPrivateValues default
  64.   SubscriptionPrivateAccess default
  65.   SubscriptionPrivateValues default
  66.   <Limit Create-Job Print-Job Print-URI Validate-Job>
  67.     AuthType Default
  68.     Order deny,allow
  69.   </Limit>
  70.   <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>
  71.     AuthType Default
  72.     Require user @OWNER @SYSTEM
  73.     Order deny,allow
  74.   </Limit>
  75.   <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
  76.     AuthType Default
  77.     Require user @SYSTEM
  78.     Order deny,allow
  79.   </Limit>
  80.   <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>
  81.     AuthType Default
  82.     Require user @SYSTEM
  83.     Order deny,allow
  84.   </Limit>
  85.   <Limit Cancel-Job CUPS-Authenticate-Job>
  86.     AuthType Default
  87.     Require user @OWNER @SYSTEM
  88.     Order deny,allow
  89.   </Limit>
  90.   <Limit All>
  91.     Order deny,allow
  92.   </Limit>
  93. </Policy>
  94. BrowseWebIF Yes
  95. ServerAlias *
复制代码
添加成功后,在windows添加网络打印机,输入地址"http://ip:631/printers/打印机名"就可以添加了,驱动自己选w

====================================接下来是samba+CUPS的方法====================================

继续学习,这次是在树莓派把联想LJ2400的USB打印机装上,然后就可以共享了,I'm lovein' 共享w
原理是samba共享+CUPS的打印管理,亲测可用!因为联想LJ2400并没有Linux版驱动,所以驱动不正确,但据说他们的产品是仿Brother的,所以我选择了Brother HL-2140 Foomatic/hl1250的驱动,测试页成功。在Windows端安装LJ2400的驱动就可以了。
下面是过程:

安装配置CUPS

先安装必要的包
sudo apt-get install cups cups-pdf cups-bsd

确认CUPS正在运行
ps -ef | grep cups

给账户pi赋予修改权限
sudo usermod -a -G lpadmin pi

修改配置文件
sudo nano /etc/cups/cupsd.conf

修改
Listen localhost:631
变成
Listen 631
有Location的部分,在最后增加一句
<Location />
  allow @LOCAL
</Location>

重启服务
service cups restart

增加打印机的阶段
在浏览器输入
https://树莓派IP:631/admin
点击“Add Printer ”,开始添加!选好要共享的那台打印机以后随便填吧,共享默认是勾上的。
驱动方面,可以上Brother和联想官网对比一下联想和Brother的外观和型号序列,基本上是对应的。我选了Brother的“Brother HL-2140 Foomatic/hl1250”
配置好以后可以在“Printers"看到刚才加的打印机了,点开之后,Mantenance下拉可以打印测试页,Administration可以设置打印机和用户。

打印机方面的配置就结束了,接下来是共享。

安装samba
sudo apt-get install samba  samba-common
更改samba配置文件:
sudo nano /etc/samba/smb.conf

共享打印机:

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = yes
   read only = yes
   create mask = 0700


可以在网上邻居找到打印机了,格式:
\\树莓派IP

双击打印机,手动安装联想驱动。

又解放了一个USB口w

参考文献:
用树莓派做WiFi打印机
Linux和windows之间文件和打印共享方法





评分

参与人数 1N币 +100 收起 理由
nat123god + 100 很有用!期待你再次的分享!

查看全部评分

发表于 2015-11-3 22:45:37 | 显示全部楼层
很值得参考学习。为楼主技术能力点个赞。感谢分享。
发表于 2016-3-6 17:55:33 | 显示全部楼层
请问楼主可以谈谈,外网连接打印机的流程吗?仅仅是windows系统,只要不全端口映射即可,因为觉得不安全。谢谢!
 楼主| 发表于 2016-3-8 19:11:50 | 显示全部楼层
lwonder 发表于 2016-3-6 17:55
请问楼主可以谈谈,外网连接打印机的流程吗?仅仅是windows系统,只要不全端口映射即可,因为觉得不安全。 ...

CUPS是失败了,无法走出内网,WIN的话有个打印服务,你可以查一下
发表于 2016-9-5 00:05:37 | 显示全部楼层
lwonder 发表于 2016-3-6 17:55
请问楼主可以谈谈,外网连接打印机的流程吗?仅仅是windows系统,只要不全端口映射即可,因为觉得不安全。 ...

这要看你连接打印机的服务器用的是什么操作系统,解决方案也不一样,linux是可以用CUPS+SAMBA的。或者是无线打印机直接连路由器也可以,不过要打开路由器的UPnP功能。
发表于 2016-9-5 00:23:07 | 显示全部楼层
本帖最后由 youp 于 2016-9-5 00:25 编辑
dsouth 发表于 2016-3-8 19:11
CUPS是失败了,无法走出内网,WIN的话有个打印服务,你可以查一下

楼主差矣。CUPS是要配置cups.conf文件允许远程访问,同时要在Administration页面允许Allow printing from the Internet选项的。如果有网关路由器,还要设置外网对内网打印服务器或者网络打印机的端口映射,允许外网访问服务器的631端口(别忘了配置iptables)。至于客户端是linux或是windows关系并不大,总要设置远程打印机及安装打印机驱动程序。实测打印成功。
 楼主| 发表于 2017-6-15 17:36:17 | 显示全部楼层
youp 发表于 2016-9-5 00:23
楼主差矣。CUPS是要配置cups.conf文件允许远程访问,同时要在Administration页面允许Allow printing from ...

所言极是,求debian下的具体配置方法及流程

您需要登录后才可以回帖 登录 | 获得新生

本版积分规则

http穿透|80网站穿透|非80网站穿透|内网穿透路由器|内网穿透SVN|内网穿透FTP|内网穿透SSH|内网穿透远程桌面|nat123

GMT+8, 2021-9-17 08:05 , Processed in 0.230138 second(s), 19 queries .

Powered by Discuz! X3.1

© Comsenz Inc. | 反馈:natbbs#163.com(#换成@)

快速回复 返回顶部 返回列表