周末出差回来,洋洋跟我说,共享的服务器挂掉了。之前是用的联想的一台小机器在内部共享的服务器,装得是xp,接的是Epson L211的打印和扫描一体机。这台机器跑了有四年多了,cpu的风扇不行了,温度过高,系统自动关机。
咋整呢?再买一台机器?有点浪费。正好去年入手一台HP的Gen8微型服务器,装的是Ubuntu 14.04的系统,闲来无事,搞搞吧。
目标:使用Gen8这台机器来做团队内部的文件共享、打印机共享、扫描仪共享、DNS缓存服务器。
第一步先搞定打印机,先找找ubuntu有没有内置的驱动吧。
$ apt-cache search epson
printer-driver-escpr - printer driver for Epson Inkjet that use ESC/P-R
看样子也不像,到网上搜索驱动。搜来搜去,网上的包都是这个epson-inkjet-printer-201207w包。Gen8的系统是64位的,下载64位的deb安装包。可以在这个网站找到驱动:Printer: Epson L210 Series
下载下来之后,直接安装,需要依赖lsb这个包。我也没有仔细去研究这个包的作用,网上搜了下,大概的意思是新版本的linux都不用这个包了。继续搜索吧。
在http://askubuntu.com网站上找到了这样一篇文章:printing - How to install Epson printer drivers on Ubuntu 16.04?
思路就是使用trusty这个版本的源。
sudo nano /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ trusty main
sudo apt-get update
sudo apt-get install lsb
sudo dpkg -i epson-inkjet-printer-201207w_1.0.0-1lsb3.2_amd64.deb
安装lsb的时候会安装很多的依赖包,网络慢的话估计会花时间。
好,到这一步的话,驱动安装上了,第二个问题,怎么把打印机跑起来呢?
第二步:配置CUPS服务
继续在网络上搜索,发现linux下面现在用的最多的是CUPS 这个服务。继续安装。大家可以参考这篇文章:CUPS (简体中文)
总体来讲CUPS的完善度还是很不错的,有web控制界面。
sudo apt-get install cups
就可以把包安装上。cups的web界面的端口是631,但默认只能本机访问。一开始还没有搞清楚他们的配置文件,先想办法看看它的web界面吧。怎么办呢,用ssh的端口转发,直接转发到我的机器的631端口。
然后打开浏览器,访问http://localhost:631,就能看到cups的页面了。默认配置是需要用root帐号登录的。
进去之后,选择Add printer添加打印机。
添加打印机的时候,cups会自动检测到EPSON L211的打印机。
然后下一步是选择型号驱动,cups自带的驱动里面并没有,这时候就需要我们来选择ppd文件了。将刚才下载下来的deb包解压缩,找到L210的这个文件,再解压缩,会得到一个ppd的文件,然后将这个文件在cups的页面上传上去。
如果顺利的话,打印机就可以正常工作了。你可以在cups里面打印测试页。
第三步:配置打印机共享
配置打印机共享有两种方式,一种是使用samba来提供共享服务,还有一种就是直接使用cups的服务。实际测试过程中,发现samba提供打印共享服务响应速度比较慢,我就采用了第二种。
打开/etc/cups/cupsd.conf文件,在里面加上访问的限制。
9 <Location />
10 Order allow,deny
11 Allow From 192.168.1.0/24
12 </Location>
13 <Location /admin>
14 Order allow,deny
15 Allow From 192.168.1.0/24
16 </Location>
其中的Allow from根据实际的网络情况来配置就行。
然后重启cups服务,添加打印机的时候,直接把 http://192.168.1.22:631/printers/epson这样的地址来当作打印机的地址就可以了。
windows客户端需要自己下载驱动,然后在添加打印机的时候,选择从磁盘安装,这个就不赘述了。顺利的话,就可以打印了。
搞定了打印机,下面我们来搞扫描仪。
第四步,安装扫描仪的驱动。
linux下面扫描的程序是sane这个包,先来安装。
sudo apt-get install sane sane-utils
sane-utils里面提供了一个命令行的扫描工具scanimage,我们后面会用到。
sane默认带的驱动还是不支持L211系列,没办法,继续搜索驱动。Linux Scanner Driver Download 到这个地址下载驱动,然后安装。这个下载解压缩之后,有一个install.sh,直接执行这个脚本就好了。
安装成功之后,会在/etc/sane.d/dll.d里面安装了一个文件。
这时候如果顺利的话,执行下面的命令,就可以看到相应的设备了。
sudo scanimage -L
device `epkowa:usb:001:004' is a Epson L210/L350/L351 Series flatbed scanner
这时候可以尝试的扫描下:
sudo scanimage -d epkowa:usb:001:004 >/tmp/test.pnm
如果顺利的话,就能扫描到文件了。
第五步,共享扫描仪。
sane其实也是一个c/s架构的,所以可以在window下面安装sane的客户端,然后连接到sane服务器来完成扫描功能。sane本身并没有提供守候进程的接口,所以需要用到xinetd。在sane的文档里面有讲述,大家也可以参考这篇文章:How to share a scanner on your network
我考虑到还需要在每个机器上安装客户端(兼容性问题比较多),还不如做一个web界面的。和小鲁说了下,给用户提供了一个php的界面,上面一个按钮,点一下扫描,就触发扫描事件,然后将扫描后的文件放到一个共享的目录下面,自己去取。
同事可以站在扫描仪前面,用手机访问这个扫描的页面,点一下,扫描,然后再换要扫描的文档,也不错。
在搜索过程中,还发现了一个比较好玩的东东,叫做Scanbuttond。它可以响应扫描仪的按键事件,来触发相应的脚本。不过可惜的是它现在还不支持L211系列,放弃。
第六步:配置共享服务器
这个网络上的资料有很多,我就不赘述了。
第七步:配置DNS服务器
大家可以参考这篇文章:How To Configure Bind as a Caching or Forwarding DNS Server on Ubuntu 14.04