前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下用CUPS的打印机服务

Linux下用CUPS的打印机服务

原创
作者头像
用户1685462
修改2021-07-28 10:25:11
3.5K0
修改2021-07-28 10:25:11
举报
文章被收录于专栏:网站教程网站教程

 目前的Linux发行版本基本上都使用cups作为Linux下管理打印的服务应用。CUPS软件为Unix/Linux用户提供了有效而可靠的方式来管理打印的方法。它生来就支持IPP,并有LPD、SMB和JetDirect接口。CUPS本身可以提供网络打印机功能,使用它可以非常方便的令Linux与Linux之间、Linux与Windows之间实现打印共享。

 今天提到这个问题,是由于发现很多的用户在使用Linux的时候,沿用的是Windows下的习惯,用Samba进行打印机共享。其实Linux下的Samba打印机共享,是Samba连接本地的cups服务,然后提供出来的,这样会有几个问题:

引用

1、打印状态在Windows下看不到; 2、从Windows下访问Samba需要访问密码; 3、容易出现由于网络复杂,导致使用UDP协议的Samba连接超时或连接时间很长的问题。

 解决的最简单的方法,就是直接通过cups打印,它不需要密码,而且可以通过TCP协议进行,速度和质量都更有保障。

※测试平台

服务器系统: 红旗 DC Server 5.0 for x86,IP:192.168.228.153

桌面系统:Windows XP SP2 和 红旗 桌面 4.1/5.0

网络:192.168.228.x网段

一、配置允许远程访问

 红旗DC Server 5.0安装后就已经配置有cups服务,可以通过下面的命令获得版本:

代码语言:javascript
复制
# rpm -qa|grep cups
cups-libs-1.1.22-0.rc1.9.6.3AX
gimp-print-cups-4.2.7-2.1AX
libgnomecups-0.1.12-5
libgnomecups-devel-0.1.12-5
cups-1.1.22-0.rc1.9.6.3AX
cups-devel-1.1.22-0.rc1.9.6.3AX

 但默认的配置中,cups是只允许本地打印,我们要修改它。修改/etc/cups/cups.conf文件,把:

引用

代码语言:javascript
复制

Order Deny,Allow
Deny From All
Allow From 127.0.0.1

改为:

引用

代码语言:javascript
复制

Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.228.*

 若你要使用远程管理的,再把:

引用

代码语言:javascript
复制

AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1

改为:

引用

代码语言:javascript
复制

AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.228.*

☆不使用远程管理的,不要修改/admin节。

 最后,重新cups服务:

# service cups restart

 可以看到631端口已经打开:

# netstat -ln|grep 631 tcp        0      0 0.0.0.0:631                 0.0.0.0:*                   LISTEN udp        0      0 0.0.0.0:631                 0.0.0.0:*

二、配置服务器的打印机

 有两种方法可以选择:一是使用lpadmin命令增加打印机;二是使用Web和XWin下的配置界面。既然我已经打开了远程管理,当然是使用Web最简单咯。

1、使用浏览器访问http://192.168.228.153:631/

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

2、点击“Manage Printers”,然后输入root管理员的用户名和密码后,点击“Add Printer”;

3、在Name中输入打印机名字,点击“continue”;

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

4、选择服务器连接的本地打印机,一般是usb或并口,可以在图中看到;

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

5、选择打印机厂商

由于我们只是通过cups进行管理,并不是一定要在本地进行打印工作,所以可以使用raw(原始打印机)的方式。

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

6、选择打印机驱动

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

7、完成即可。点击上面的“Administration”回到管理主界面,进入“Manage Printer”,点击“Print Test Page”可以进行测试页打印。

 到此,服务器的打印机是已经添加完成了。

三、添加客户端打印机

1、Windows客户端

 在使用cups连接的网络打印服务前,必须停止XP的防火墙服务,或添加631的协议。否则会引起问题的。安装步骤如下:

1)从控制面板 双击 “打印机”

2)在弹出的对话框中选择 “添加打印机”

3)选择添加的打印机类型为 “网络打印机”

在URL下输入地址:http://192.168.228.153:631/printers/printer,如图:

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

※千万不要漏了端口。如果cups版本是1.1.21以前,需要先建立类classes才能连接,这个在最后描述。(红旗DC 5.0是不需要的)

 如果提示URL错误,请纠正。否则点击“下一步”,然后提供Windows下的打印机驱动即可。

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

2、Linux客户端

 这里我使用的是红旗桌面 5.0,其实就是在Xwin下本地的cups服务连接到远程的cups服务器上,方法是非常简单的。但有个前提,就是客户端必须有打印机在linux下的驱动,否则机器是不能打印或打印有错的。相关的打印驱动,可以咨询红旗公司,或查询下面的网站:

www.linuxprinting.org

1)进入“控制面板”,点击“打印机管理”;

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

2)选择添加“网络打印机”

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

3)在URI中输入地址:http://192.168.228.153:631/printers/printer

并点击子网下的“设置”按钮,输入网段192.168.228,确认后,按“扫描”,然后点“下一步”;

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

4)选择打印机厂商和型号,点击“下一步”;

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

5)若需要测试,可以在这里打印测试页,点击“下一步”;

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

6)最后给个喜欢的名字它,然后确认即可。

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

※采用类似的方法,你可以在本地访问http://localhost:631/,然后在添加打印机的时候,使用internet printer protocol(http)协议,并输入正确的URI地址和驱动也可以。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档