红联Linux门户
Linux帮助

新手求助~~linux打印机共享问题!!

发布时间:2008-06-27 23:20:59来源:红联作者:ghawaii
公司最近把所有有的PC系统都换成了FC5系统,我在一台LINUX机器下做了CUPS打印服务,并且通过了打印测试成功,但是底下的其他linux不知道怎么连接上这台服务器。!!
文章评论

共有 1 条评论

  1. ghawaii 于 2008-06-27 23:24:20发表:

    “Linux中cups打印服务实战设置
    两天花了些时间研究了一下cups的打印设置,发现网上的资料说得不清不楚,于是决定把我的设置记录下来供大家将来参考。
    我的LINUX是 redhat enterprise 3
    在这篇文章中,假设CUPS打印服务器的主机名为: server, 打印机的主机名为: HP, 客户端主机名为: client。

    首先,要启动CUPS打印服务,用下面这个命令:
    /etc/init.d/cups start

    然后在CUPS服务器主机server中,我们要做好2个文件的设置,这两个文件分别是:
    /etc/cups/cupsd.conf
    /etc/cups/printers.conf

    其中,cupsd.conf是控制cups服务的设置,而printers.conf则是对打印机进行设置的。

    设置这两个文件并不复杂,这里不建议手工修改,因为可以用web方式来设置,然后自动生成。
    只要在本机的网页浏览器输入这个网址,就可以进入CUPS的web设置界面:

    http://服务器主机名:631 例如: http://server:631

    不过在这里,觉得需要介绍一下这两个文件里面的内容,这样对大家的理解会有好处。
    而且,我发现如果要限制用户的话,好像还是需要手动修改printers.conf文件的。

    cupsd.conf文件中的内容:
    #================================

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

    #上面这个部分是设定对CUPS服务管理的权限,一般只准许从本机进行对CUPS服务的修改控制。
    #所以可以看到 allow地址是 127.0.0.1


    Order Deny,Allow
    Deny From All
    Allow From All

    #上面这个部分是对CUPS服务的功能权限默认设置,一般如此,没有什么特别的。

    #
    # End of "$Id: cupsd.conf.in,v 1.16 2004/08/18 17:53:47 mike Exp $".
    #

    # Lines below are automatically generated - DO NOT EDIT
    #下面这部分是设置打印机在CUPS中的使用。因为服务器毕竟只是电脑,真正要打印还是通过打印机
    #从设置看基本上也是全部使用权限开放,如果要限制IP地址区域的话,需要在Allow 后面进行设置。

    #注意上面这一行,其中HP是打印机的名字,要和printers.cups中设置的一样才可以其作用。
    Order Deny,Allow
    Deny From All
    AuthType None
    Allow from All


    #================================

    printers.conf文件中的内容:
    #================================
    #下面这一行中的HP是打印机的名字,为方便设置,建议和打印机的网络主机名一致

    Info Created by redhat-config-printer 0.6.x
    DeviceURI lpd://HP/PORT1
    State Idle
    Accepting Yes
    JobSheets none none
    QuotaPeriod 0
    PageLimit 0
    KLimit 0
    AllowUser root
    AllowUser PETER
    AllowUser SUSAN

    #================================
    这里,要重点说一下上面这部分中的黑体字那一行
    DeviceURI lpd://HP/PORT1
    这一行是定义打印机与CUPS服务器之间通过什么协议来连接,还有一些其它的候选协议如下:
    file:/path/to/filename.prn
    http://hostname:631/ipp/
    http://hostname:631/ipp/port1
    ipp://hostname/ipp/
    ipp://hostname/ipp/port1
    lpd://hostname/queue
    socket://hostname
    socket://hostname:9100

    以上这些打印协议中,hostname指的是打印机的网络主机名,也可以用打印机的IP地址代替,631则是CUPS服务的端口号
    这其中,port1一般是惠普打印机的默认queue,如果是多queue打印机,你可以通过ftp协议登陆到打印机上,然后看看打印机系统上根目录下有哪些目录,从中可以判断出queue的名字

    这里要注意一个问题,因为我在实际操作中,发现 redhat-config-printer-gui 图形界面的打印机设置只支持 LPD 协议的打印机设置。也就是说,如果你采用 IPP, HTTP, 或者 socket,即使配置成功,测试页也可以打印,但是就是不可以使用 redhat-config-printer-gui 图形界面来对打印机进行进异步设置。为了方便起见,我建议大家还是选用 LPD 来设置CUPS服务器和打印机之间的连接。

    还有 AllowUser 语句,通过这条语句,可以允许或限制特定用户的打印权限,假如没有这条语句,就是所有用户可以打印。
    这条语句是需要手动添加的。
    *注意每次通过redhat-config-printer-gui 图形界面进行设置后,AllowUser 语句都会被自动删掉,需要重新添加
    另外有关于 cupsd.conf 文件的补充内容:
    在做好上面的设置后,发现如果要限制IP网段的话,手工配置很麻烦,于是通过redhat-config-printer-gui图形界面来配置。
    下面这一部分是采用redhat-config-printer-gui图形界面设置后自动在cupsd.conf文件产生的,不建议手动添加。
    不过要注意的是,如果想要采用redhat-printer-config-gui图形界面来修改设置,在printers.conf文件中,网络打印协议要采用LPD协议:
    #============================
    Browsing On
    BrowseProtocols cups
    BrowseOrder Deny,Allow
    BrowseAllow from @LOCAL
    BrowseAddress 255.255.255.255
    Listen *:631
    #============================

    这其中 Listen 语句是设定允许使用CUPS服务的网络限制的。"*"代表所有的网络
    我在一些资料中看到,说是如果要设置网络区域,是要写成如下格式:
    Listen 0.0.0.0:631
    但实际上是错误的,如果写成象上面那样,会导致CUPS服务启动出错。
    会给出如下的出错信息:Child exited with status: 98!
    所以,正确方法还是用 *号代替所有网络。
    至于其它区域段IP网络设置,大家可以通过 redhat-printer-config-gui图形界面中的 share 选项进行控制,非常方便,在此就不一一列举。

    做完以上这些,重新启动一下CUPS服务就可以.
    用 lpq.cups 命令看一下打印机的状态, 如果有 "HP is ready" 字样,就说明CUPS服务器设置成功了。

    客户端设置:
    前提是CUPS服务器的防火墙要打开,至少631端口号不能屏蔽。
    客户端的设置非常简单,只需要配置一个文件:
    /etc/cups/client.conf

    client.conf文件内容:
    #======================
    #ServerName CUPS服务器地址或服务器名,例如:

    ServerName server

    #======================
    的确是很简单吧,设置好后重启一下CUPS服务就可以了。 ”

    我是通过上面的那篇文章设置的,前面的服务器设置都正常,问题可能处在客户端的设置,上面的帖子说要把客户端里面的/etc/cups/client.conf修改下,但是问题是现在所有的F5系统主机名字都是一样的 而其我是该了好几次的主机名都没办法改。用HOSTNAME命令和在HOTS下都没办法。
    客户端的连接有简单的办法吗?? 是不是照上面的设置就可以了 我觉得客户端的设置怎么就那么几步骤,是不是还缺少什么来的??好像说的有点不清楚