当前位置:Linux教程 - Linux - LINUX与WINNT共享打印机的方法

LINUX与WINNT共享打印机的方法



        
    作 者: 闫建勇


      虽然现在我们已经进入了网络的时代,email和在线信息已经成为我们交流的纽带,但是我们仍然离不开书面的文章和资料,因此,打印机也就理所当然的成为了必不可少的工具。然而,每一台计算机都配备打印机是不现实的,所以,网络打印机也就成为了局域网的最佳选择。那么,在一个象拥有LINUX和WINNT等多种操作系统的工作组中,怎样共用一台网络打印机呢?下面,我就根据本人多年的经验,讲述一下LINUX和WINNT共享网络打印机的方法和技巧。

      总的来说,不同操作系统之间进行通讯有两种方法。一是让客户机以服务器的工作方式与服务器相互联系。例如,在网络文件共享中,WINDOWS客户通过NFS协议与LINUX服务器进行通讯。第二种方法是服务器利用客户机操作系统本身的工作原理与之交流。比如LINUX通过Samba与WINDOWS操作系统互通信息。在本篇文章中,我将两种方法都介绍给大家,大家可以根据自己的需要选择LINUX和WINNT共享网络打印机的方法。

      我介绍一下WINDOWSNT以Linux的 LPD形式打印。我先假设你已经熟悉Linux下打印机的配置,因为我们今天重点讨论WINDOWSNT与Linux打印的结合,其余的不作详述。

      首先,我们在Linux服务器上定义一个叫queso的打印池,要记住我们只介绍WIDOWS NT客户怎样向Linux服务器打印机传输作业,我认为这是最佳的选择。虽然Berkeley LPD打印系统比较稀少,WINNT本身还是内置了对它的支持,不论是客户端的lpr.exe 和 lprmon.dll以及服务器端的lprsvc.dll都有。lpr.exe 和 LPR 端口监视器提供了传输作业的方法。LPD服务允许远程计算机向使用标准LPR协议的WINNT打印服务器传送作业,虽然两台WINNT机器之间也可以用LPR协议进行打印作业传输,但是这并不是一个好主意。

      在安装LPD之前,我们需要先解释一下Windows NT端口监视器以及打印是怎样工作的。为防止用户级的应用程序直接操作硬件,Windows NT以一种保护模式运行。为了让用户能够使用打印机,Windows NT使用一种虚拟打印机技术接受用户作业并把它们传送给真正的打印机。所有列在Windows NT打印机控制面板中的打印机都是虚拟打印机,它们被允许与硬件通话。Windows NT支持与打印机对话的端口监视器,这种功能使设置一个懂得LPR的虚拟打印机成为可能。

      为了配置一个新的LPR端口,首先我们需要在Windows NT客户机上安装LPR工具,该程序包称为微软 TCP/IP 打印。可通过网络控制面板中的服务页进行安装。安装完毕后需要重新启动以使LPR工具生效。然后,你需要完成象安装本地打印机一样的步骤,唯一的不同只是必须指定一个与打印机连接的端口。除了打印机名字外,还要指出LPD宿主的IP地址或域名。一旦端口增加完了,打印机也就配置好了,你可以象使用普通打印机一样使用它了。需要注意的一点是,LPR端口监视器缺省情况下以RAW数据类型传送数据,而lpr.exe程序使用TEXT的数据格式传送作业,你可以通过注册表或命令行选项改变缺省的设置。在此不做叙述,详细情况查看Windows NT 4.0 Workstation Resource Kit。

      接下来介绍Linux利用Samba以WINDOWS的原理进行联网打印。你已经听说过Samba了吧,如果不熟悉的话,请查看有关资料。Samba是LINUX下对微软和其它SMB客户文件和打印机共享的支持程序。使用Samba 比上一个方法的优势在于, WINDOWS客户机可以不管Linux服务器上使用什么打印系统。Samba的宗旨就是,UNIX可以向它打印,我Samba也可以。这就允许你使用LPR 和System V的lpsched打印系统。

      这里我不详细介绍Samba的配置文件,针对我们的例子,我只使用一个很简单的smb.conf。

      [global]

      netbios name = QUESO

      workgroup = CHIPSNDIPS

      printing = bsd

      printcap name = /etc/printcap

      public = no

      [printers]

      comment = printers from /etc/printcap

      printable = yes

      writeable = no

      在启动Samba的后台程序smbd 和 nmbd后,我们需要在WINNT客户机上安装所需打印机。重新使用打印机安装智能向导,只不过这次要连接网络打印机服务器,这将配置一个LanManager打印端口,完成后联网打印就可以进行了。目前,Samba的一个缺陷是不能实现真正的WINNT形式的打印,不过这个功能的实现只是迟早的问题,因为Jean Francois Micouleau(Samba小组中的一位)已经完成了大部分的代码。对我们的目的来说,对LanManager的打印支持已经足够了。不能实现真正的WINNT形式打印只是意味者NT客户不能象原来那样改变一些打印特性,再就是不能象Windows 9x那样直接从Samba服务器上下载打印驱动程序。



      最后,我介绍一下我认为比较好的综合联网方法。见上图。我们已经看到了两种可能的打印联网方案,但两者都有不足。第一种虽然在服务器上不需要增加软件包,因为LPD打印系统已经缺省安装了,但是客户机被限制只能进入支持LPR协议的服务器;第二种方法虽然消除了客户机的限制,但是需要在每一个NT客户需要进入的Linux服务器上安装Samba。下面我就介绍一个能结合两者各自优点的方法。

      我们把运行Samba的Linux服务器配置成一个单独的打印服务器。这台服务器监听所有在/etc/printcap中列出的打印机,并通过LPR向它们传输作业。WINNT客户将所有的打印作业传送给Samba服务器,这里的Samba服务器称作打印网关。以这种方法,既能避免每台Linux服务器上安装Samba,又能不受LPD的限制,实用效果甚佳。

      以我自己的观点,WINNT管理小型局域网的打印比较合适,对于大型的网络,需要复杂的打印方案,使用运行Samba的服务器做为打印网关是最佳选择。好了,我的介绍完了,如果有问题,请给我写信,我的信箱是[email protected]
    发布人:netbull 来自:Linux技术支持网站