如何在windows连接在linux系统共享的打印机

如何在windows连接在linux系统共享的打印机,第1张

方法:

(1)正确安装和配置Samba服务器。

(2)将运行Windows9x/2000上的打印机设置为共享。

(3)在Linux系统的/etc/printcap中为网络打印机建立一个新的队列,如下:

smb: \

:sd=/var/spool/lpd/smb: \

:mx # 0: \

:sh: \

:lp=/dev/null: \

:af=/var/spool/lpd/smb/acct: \

:if=/var/spool/lpd/smb/filter:

将Samba软件包提供的smbprint拷贝到Samba安装目录/bin子目录里并设置成可执行模式。

(4)在/var/spool/lpd/smb/目录下,创建打印过滤器文件filter。

# ! /bin/sh

DEVICE=“打印机型号名称(如:LJET4)”

RESOLUTION=600600

PAPERSIZE=“打印纸型号(如:A4)”

SENDEOF=

nenscript -TUS -ZB -p-|

if [" $ DEVICE"="PostScript"]; then

cat - | /usr/local/samba/bin/smbprint –

else

gs -q -s DEVICE=$DEVICE \

-r $RESOLUTION \

-s PAPERSIZE=$PAPERSIZE \

-d NOPAUSE \

-d SAFER \

-s Outputfile=-- | /usr/local/samba/bin/smbprint –

fi

if ["$ SENDEOF"!=""]; then

printf""

fi

exit 0

以上smbprint运行时需要一个config的打印信息文件,这个文件在printcap定义的/var/spool/lpd/smb目录下建立,如下:

server=“打印服务器名称(如:SISKIN)”

service=“打印机型号名称(如:LJET4)”

password=“网络打印机共享名及口令”

(5)重新启动打印管理器

# lpc restart all

(6) 打印

% lpr –P smb 文件名

如何在linux字符界面下设置打印机printer

可以用字符命设置打印机,但是太麻烦了。可以用更加简单快睫方法实现打印机的与服务器的联接,并且可以网络共享打印机。

用以下命令:

#apt-get install cupsys(这个就可以了。以下作用不大)

#apt-get install foomatic-filters

#apt-get install cupsys-client

#apt-get install cupsys-bsd

#apt-get install samba(共享所用到)

#apt-get install smbclient

其实有图形界面的话,就不需要安装下步了

#apt-get install lynx(字符界面浏览器)

其实今天我的服务器的图形界面崩溃了,又急着用网络打印机,所以只能在字符界面下作业了。

主要步骤如下:

#lynx http://127001:631(http://localhost:631)

用上下光标键选择(注意不要用左右选择,它们是其它功能键)

administrator-(enter)->add printer-(enter)->writer_the_printer_name->continu

如要要选择打印机类型,请用按Enter(回车键)出现下拉式菜单供你选择。

然后打驱动(PPD)选上。如果要下载请到wwwlinuxprintingorg上找

然后回到administrator,把Share published printers connected to this system这一项选上(用回车)

这样就可以用了。

你可以反过来想,我给你找了篇文章,你看看。

一 在Linux上使用Windows9x/2000上的打印机

Server Message Buffer(SMB)协议能够实现Windows9x/2000局域网上打印机共享,Linux也能使用SMB实现与Windows9x/2000等操作系统上的打印机共享,其位于Samba软件包中(Samba软件包可以从提供免费的Linux网站上获得)。实现Linux上使用Windows9x/2000上的打印机,设置步骤如下:

(1)正确安装和配置Samba服务器。

(2)将运行Windows9x/2000上的打印机设置为共享。

(3)在Linux系统的/etc/printcap中为网络打印机建立一个新的队列,如下:

smb:

:sd=/var/spool/lpd/smb:

:mx # 0:

:sh:

:lp=/dev/null:

:af=/var/spool/lpd/smb/acct:

:if=/var/spool/lpd/smb/filter:

将Samba软件包提供的smbprint拷贝到Samba安装目录/bin子目录里并设置成可执行模式。

(4)在/var/spool/lpd/smb/目录下,创建打印过滤器文件filter。

# ! /bin/sh

DEVICE=“打印机型号名称(如:LJET4)”

RESOLUTION=600600

PAPERSIZE=“打印纸型号(如:A4)”

SENDEOF=

nenscript -TUS -ZB -p-|

if [" $ DEVICE"="PostScript"]; then

cat - | /usr/local/samba/bin/smbprint –

else

gs -q -s DEVICE=

-r

-s PAPERSIZE=

-d NOPAUSE

-d SAFER

-s Outputfile=-- | /usr/local/samba/bin/smbprint –

fi

if ["$ SENDEOF"!=""]; then

printf""

fi

exit 0

以上smbprint运行时需要一个config的打印信息文件,这个文件在printcap定义的/var/spool/lpd/smb目录下建立,如下:

server=“打印服务器名称(如:SISKIN)”

service=“打印机型号名称(如:LJET4)”

password=“网络打印机共享名及口令”

(5)重新启动打印管理器

# lpc restart all

(6) 打印

% lpr –P smb 文件名

需要注意的是:smbprint在第一次使用网络打印队列前,要保证/tmp下没有smb-printlog这个缺省日志文件,它在smbprint第一次运行时会自动创建。

二 在Windwos9x/2000上使用Linux上的打印机

在Windows9x/2000看来Linux上的共享打印机分为PCL和PostScript两种打印机,使用Linux中RedHat的printtool产生的打印机队列,打印过滤器会自动区分PCL文件和其它格式的文件,所以从外界看来是PCL打印机。而本例使用的简单打印过滤器产生的打印机队列,没有区分文本文件和PCL文件,必须使用PostScript打印机的驱动程序。设置步骤如下:

使用Linux上的Samba服务器将Linux上的打印机设置共享。

在Windows9x/2000中添加网络打印机,即Linux上的共享打印机。

安装相应型号打印机的PostScript网络打印机驱动程序。

至此,Windows9x/2000上的打印作业转换为PostScript文件,发送到Linux的网络打印机上输出。

其他的 Linux 发行版本和 X-Windows 环境,请参照此方法设置。 适用机型:HP JetDirect 610n、615n、620、170x、175x、300x、500x、en3700 网络打印服务器。 操作步骤:1、点击 打印机配置工具 主窗口上的 新建 按钮;2、在 名称 中输入一个打印机名称;注意:打印机名称不能包含空格,必须以字母开头;打印机名称可以包含字母、数字、短线(-)和下划线(_);您还可以输入关于打印机的简短描述,其中可以包含空格。3、从 选择队列类型 菜单中选择 联网的 JetDirect ,然后点击 前进 ;4、在以下选项的文本段中针对具体情况作相应的设置: 打印机 —JetDirect 打印机的主机名或 IP 地址;

端口— JetDirect 打印机监听打印作业的端口,默认端口为 9100;

然后点击 前进 选择打印机型号;5、打印机按照生产厂家分类,当选择了一个不同的生产厂家后,打印机型号列表都会被更新,从打印机型号列表中选择打印机型号;6、如果设置正确,则点击 应用 来确认打印机的配置添加打印队列,否则,点击 后退 来修改打印机配置;7、在主窗口中点击 应用 按钮来保存改变并重新启动打印机守护进程;8、应用了改变后,打印一张测试页来确定配置的正确性。

方法:

(1)正确安装和配置Samba服务器。

(2)将运行Windows9x/2000上的打印机设置为共享。

(3)在Linux系统的/etc/printcap中为网络打印机建立一个新的队列,如下:

smb: \

:sd=/var/spool/lpd/smb: \

:mx # 0: \

:sh: \

:lp=/dev/null: \

:af=/var/spool/lpd/smb/acct: \

:if=/var/spool/lpd/smb/filter:

将Samba软件包提供的smbprint拷贝到Samba安装目录/bin子目录里并设置成可执行模式。

(4)在/var/spool/lpd/smb/目录下,创建打印过滤器文件filter。

# ! /bin/sh

DEVICE=“打印机型号名称(如:LJET4)”

RESOLUTION=600600

PAPERSIZE=“打印纸型号(如:A4)”

SENDEOF=

nenscript -TUS -ZB -p-|

if [" $ DEVICE"="PostScript"]; then

cat - | /usr/local/samba/bin/smbprint –

else

gs -q -s DEVICE=$DEVICE \

-r $RESOLUTION \

-s PAPERSIZE=$PAPERSIZE \

-d NOPAUSE \

-d SAFER \

-s Outputfile=-- | /usr/local/samba/bin/smbprint –

fi

if ["$ SENDEOF"!=""]; then

printf""

fi

exit 0

以上smbprint运行时需要一个config的打印信息文件,这个文件在printcap定义的/var/spool/lpd/smb目录下建立,如下:

server=“打印服务器名称(如:SISKIN)”

service=“打印机型号名称(如:LJET4)”

password=“网络打印机共享名及口令”

(5)重新启动打印管理器

# lpc restart all

(6) 打印

% lpr –P smb 文件名

首先,要启动CUPS打印服务,用下面这个命令:

/etc/initd/cups start

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

/etc/cups/cupsdconf

/etc/cups/printersconf

其中,cupsdconf是控制cups服务的设置,而printersconf则是对打印机进行设置的。

设置这两个文件并不复杂,这里不建议手工修改,因为可以用web方式来设置,然后自动生成。

只要在本机的网页浏览器输入这个网址,就可以进入CUPS的web设置界面:

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

不过在这里,觉得需要介绍一下这两个文件里面的内容,这样对大家的理解会有好处。

而且,我发现如果要限制用户的话,好像还是需要手动修改printersconf文件的。

cupsdconf文件中的内容:

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

AuthType Basic

AuthClass System

Order Deny,Allow

Deny From All

Allow From 127001

#上面这个部分是设定对CUPS服务管理的权限,一般只准许从本机进行对CUPS服务的修改控制。

#所以可以看到 allow地址是 127001

Order Deny,Allow

Deny From All

Allow From All

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

#

# End of "$Id: cupsdconfin,v 116 2004/08/18 17:53:47 mike Exp $"

#

# Lines below are automatically generated - DO NOT EDIT

#下面这部分是设置打印机在CUPS中的使用。因为服务器毕竟只是电脑,真正要打印还是通过打印机

#从设置看基本上也是全部使用权限开放,如果要限制IP地址区域的话,需要在Allow 后面进行设置。

#注意上面这一行,其中HP是打印机的名字,要和printerscups中设置的一样才可以其作用。

Order Deny,Allow

Deny From All

AuthType None

Allow from All

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

printersconf文件中的内容:

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

#下面这一行中的HP是打印机的名字,为方便设置,建议和打印机的网络主机名一致

Info Created by redhat-config-printer 06x

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/filenameprn

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 语句都会被自动删掉,需要重新添加

另外有关于 cupsdconf 文件的补充内容:

在做好上面的设置后,发现如果要限制IP网段的话,手工配置很麻烦,于是通过redhat-config-printer-gui图形界面来配置。

下面这一部分是采用redhat-config-printer-gui图形界面设置后自动在cupsdconf文件产生的,不建议手动添加。

不过要注意的是,如果想要采用redhat-printer-config-gui图形界面来修改设置,在printersconf文件中,网络打印协议要采用LPD协议:

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

Browsing On

BrowseProtocols cups

BrowseOrder Deny,Allow

BrowseAllow from @LOCAL

BrowseAddress 255255255255

Listen :631

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

这其中 Listen 语句是设定允许使用CUPS服务的网络限制的。""代表所有的网络

我在一些资料中看到,说是如果要设置网络区域,是要写成如下格式:

Listen 0000:631

但实际上是错误的,如果写成象上面那样,会导致CUPS服务启动出错。

会给出如下的出错信息:Child exited with status: 98!

所以,正确方法还是用 号代替所有网络。

至于其它区域段IP网络设置,大家可以通过 redhat-printer-config-gui图形界面中的 share 选项进行控制,非常方便,在此就不一一列举。

做完以上这些,重新启动一下CUPS服务就可以

用 lpqcups 命令看一下打印机的状态, 如果有 "HP is ready" 字样,就说明CUPS服务器设置成功了。

客户端设置:

前提是CUPS服务器的防火墙要打开,至少631端口号不能屏蔽。

客户端的设置非常简单,只需要配置一个文件:

/etc/cups/clientconf

clientconf文件内容:

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

#ServerName CUPS服务器地址或服务器名,例如:

ServerName server

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

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

我是通过上面的那篇文章设置的,前面的服务器设置都正常,问题可能处在客户端的设置,上面的帖子说要把客户端里面的/etc/cups/clientconf修改下,但是问题是现在所有的F5系统主机名字都是一样的 而其我是该了好几次的主机名都没办法改。用HOSTNAME命令和在HOTS下都没办法。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在windows连接在linux系统共享的打印机

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情