如何在windows连接在linux系统共享的打印机
方法:
(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下都没办法。
0条评论