Apr 29

[原]用好Linux下的CUPS打印机服务 夜晚

linuxing , 16:48 , 网络服务 » 常见服务 , 评论(3) , 引用(0) , 阅读(99319) , Via 本站原创 | |
 目前的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服务,可以通过下面的命令获得版本:
# 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文件,把:
引用

Order Deny,Allow
Deny From All
Allow From 127.0.0.1

改为:
引用

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

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

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

改为:
引用

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地址和驱动也可以。
四、附录
1、打印类Classes
在cups 1.1.21之前的版本,需要采用打印类的方式才能提供远程网络打印服务,可以在“Manage Printer Classes”中添加打印类。方法比较简单,建立类后,添加组员打印机即可。但远程连接的URI表示有点不同:
2、远程URI的表示方式,一般有两种:
引用
http://CUPS服务器的IP地址:631/classes/打印机类名


引用
http://CUPS服务器的IP地址:631/printers/打印机名称

请根据不同的情况进行选择。
3、手动安装的cups打印机的一些命令,范例:
/usr/sbin/lpadmin -p LaserJet -E -v parallel:/dev/lp0 -m laserjet.ppd

1. 添加名为 LaserJet 的打印机 (-p)
2. 启用要使用的打印机 (-E)
3. 设置要使用的设备和设备类型 (-v)
4. 使用驱动程序/PPD 文件 laserjet.ppd (-m)
字符下打印:
/usr/bin/lp -d LaserJet /etc/aliases

lp 语法将文件 /etc/aliases 打印到 LaserJet 打印机 (-d)。
临时禁用和启动打印机:
/usr/bin/disable -r "Changing Paper" LaserJet
/usr/bin/enable LaserJet

 更详细的资料和商业的解决方法,请参考:ESP Print Pro
Tags: ,
123
2018/09/29 14:52
very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.very good.
very good.
123
2016/05/18 20:53
请问只能打印测试页是什么问题?
forever
2009/09/30 16:39
兄台,請問紅旗linux5.0連接windows下共享打印機的問題,我用SMB服務連接網絡打印機,打印機是找到了,需要安裝驅動,驅動系統里自帶有是HP5100的,可發送測試頁打印,卻打印不出來,這是什麽原因啊?請兄台指點下,感激不盡.
linuxing 回复于 2009/10/04 23:07
应该是驱动不行,因为系统中虽然带了不少打印机的驱动,但都是从www.linuxprinting.org等开源网站获得的。但由于受不同区域硬件固件版本等原因,以及无法完全测试实际市场上的所有机器兼容性问题。导致系统中有很多的驱动,虽然型号匹配,但可能实际是无法使用的。你可以先试试使用裸设备打印一张测试页,如果成功的话,说明就是硬件连接是正常的,但驱动不行。建议你升级到6.0 SP2,该版本的驱动兼容性更好。(可以从红旗网站获得)
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]