如企业可能只用Linux系统来部署一些服务器的应用。因为Linux操作系统其稳定性相对来说比Windows操作系统要强一点,而且又是免费的。故对于大部分企业来说Linux操作系统是服务器操作系统的一个很明智的选择。为此大部分企业可能会在Linux系统上部署文件服务器、Oracle数据库系统等等。
另外在客户端的选择上,企业可能处于工作方便等考虑,会偏向于选择Windows的客户端。不过笔者相信随着后续微软盗版力度的加强,企业在客户端的选择上也会偏向于Linux系统。但是在短时间内由于种种的限制,企业还是采用Windows操作系统作为客户端的情况比较多。而在Windows 操作系统中,网上邻居是一个很有用的网络功能。通过网上邻居用户可以查看网络上的所有共享资源,如共享打印机等等。这对于企业网络资源共享、提高工作效率具有很大的帮助。但是可惜的是,通常情况下通过网上邻居是找不到Linux主机的身影。为此也就不能够通过网上邻居来访问Linux服务器上共享文件与服务。为了解决这个问题,一些Linux系统的志愿者开发了一个叫做SAMBA的服务器软件。它就好像是一个红娘,在为Windows操作系统与Linux 操作系统做介绍。通过这款服务器软件,不仅可以建立两个操作系统之间的连接;还可以作为打印服务器,为Windows客户端提供连接打印功能等网络服务。如下图所示:
假设现在企业采用的是Windows客户端,想通过网上邻居找到网络上的Linux操作系统的主机,该如何处理呢?此时就需要通过SAMBA服务器软件的帮助才行。
一、SAMBA与Windows系统兼容性的体现。
SAMBA其实就是一种在SMB服务上实现的一种在Linux操作系统上部署的服务器软件。目前在Windows等操作系统平台上也有各自的 SMB服务器软件,不过SAMBA只能够运行在Luix、Unix或者其他跟这两个系统类似的操作系统上。SAMBA设计的目的主要是为了向 Windows操作系统与Linux操作系统提供一种沟通的桥梁。为此他具有了一些强而有力的措施来提高两个操作系统之间的兼容性。具体来说,这个兼容性主要体现在以下两个方面。
1、 部署有SAMBA的Linuc系统可以加入到Windows域中。
在Windows的网络环境中,其主要可以分为工作组与域两种操作模式。工作组是一组计算机的集合名词。在工作组中每一台计算机都各自负责自己的共享资源以及相关的安全性。可见工作组的网络环境中其管理是比较分散的,存在着比较大的安全风险。而域的管理方式则正好跟工作组相反。域也是一组计算机的结合,但他与工作组具有很大的不同,即域是以集中式的管理模式来控制共享资源的访问。简单的来说,工作组是每台计算机负责各自的共享资源;而域则相反,网络上的全部共享资源都是通过一些特定的计算机来进行访问控制的,如通过域控制器来实现对共享资源的访问控制。为此如果Linux操作系统要能够跟Windows操作系统兼容的话,那么其就必须能够成为Windows域中的一员。SAMBA正好可以解决这个问题。只要给Linux操作系统部署了SAMBA服务,其就可以加入到Windows的域中。甚至通过一定的配置之后,这台Linux主机还可以成为Windows域中的域控制器,接受来自Windows客户端的登陆请求。
这个兼容性对于企业具有很大的应用价值。如企业可以不用再购买Windows操作系统的服务器版本。因为此时只要采用免费的Linux系统并部署上SAMBA服务,就可以作为域控制器来使用,管理Windows客户端的登陆以及共享资源的管理。为此这可以大大的降低企业的网络部署成本;同时还可以提高域控制器的稳定性。
2、 协议上的兼容性。
Windows操作系统在协议上的兼容性做的不错。其不仅可以支持常规的TCP/IP通信协议,而且还可以支持NETBEUI等协议。为此如果SAMBA想提高与Windows操作系统之间的兼容性,则也必须实现对多协议的支持。否则的话,在网络环境集成的时候仍然会遇到一些问题。如Windows域控制器可以支持多种协议的连接请求,而SAMBA服务器不能够支持的话,则其担任域控制器仍然是不能够胜任的。SAMBA的设计者也考虑到了这一点。
SAMBA是基于SMB服务所开发的。SMB是一种在不同操作系统之间提供打印机服务、文件共享、认证授权、域名解析等网络服务的通信协议。在 Linux操作系统上部署了SAMBA服务器软件之后,他可以使得Linux操作系统了解SMB通信协议,从而提供上述的网络服务。通常情况下,SMB服务本身就支持多种网络通信协议,以支持各种类型的客户端以及为客户端提供最大的服务。为此基于SMB服务实现的SAMBA服务器软件也支持多种网络通信协议。据我所知,现在SAMBA服务器软件已经可以支持TCP/IP、NetBeui、IPX/SPX等网络通信协议。可以毫不夸张的说,现在 Windows客户端可以支持的协议,SAMBA服务器软件基本上也都可以支持。正是如此,更加提高了Linux操作系统与Windows操作系统之间的兼容性。这为Windows客户端与Linux服务器之间和平共存打下了坚实的基础。
二、SAMBA软件包的介绍。
SAMBA服务器之所有可以提供如此高的兼容性与丰富多彩的功能,主要是因为他包含了许多软件包。其实Linux系统的设计者向来都强调小即是美的设计理念。为此在设计SAMBA服务器软件的时候,也遵循了这个设计理念。为SAMBA服务器软件设计了各自相对对立的软件包。后续功能的配置,也是通过对过各个软件包进行配置而实现的。为此想要SAMBA服务器软件真正的称为Windows操作系统与Linux操作系统之间的红娘,则系统管理员必须要了解这些软件包以及其相关的作用。只有如此在具体功能实现的时候,才能够判断到底需要安装哪个软件包来实现。在后续故障维护的时候,了解这些软件包的功能也能够为系统管理员解决错误提供一些参考。具体来说,SAMBA服务器软件提供了如下几个实用的软件包。
一是SMBD软件包。如果要成为域控制器的话,则必须承担起客户端的连接请求、身份验证、授权等任务。这些任务主要是这个SMBD软件包来完成的。它是SAMBA服务器软件中的核心,是其主要程序。它主要用来处理来自客户端(不仅仅是Windows客户端,也包括Linux客户端)的连接、处理文件、认证授权等相关的工作。也就是说,其主要就是负责客户端的连接申请、用户名认证授权等基础性的工作。在部署SAMBA服务器的时候,这个是必须安装的软件包。
二是测试软件包。在Windows网络环境中,如果部署了一台网络打印机可以通过相关的测试功能来测试其配置的准确性。如果在Linux服务器上部署了SAMBA应用并部署了一台网络打印机或者共享打印机的话,也可以通过测试来判断其配置的准确性。为此SAMBA服务器软件专门提供了一些测试的软件包来实现这些功能。如testprms可以用来测试服务器访问打印机的程序是否安装正常;如 testparm则可以用来测试SAMBA配置的准确性等等。如果系统管理员对自己有信心,则这些软件包可以不装。从这里我们可以再次看出Linux操作系统小即是美的设计魅力。
三是nmbd。这是一个域名解析的软件包。对于用户来说,他们希望能够通过主机名字而不是IP地址来访问服务器。此时这个域名服务器的软件包就非常有用。Nmbd软件包就是一个小型的域名服务器,可以用来帮助用户找到服务器的位置,方便他们访问共享资源等等。不过在最新的版本中,nmbd已经不再作为一个独立的软件包,而是内置在SAMBA服务器软件中。即在安装的时候默认会安装。毕竟这是SAMBA服务器软件的有机组成部分。
对于这些软件包的安装配置我将在后续的文章中结合具体的案例进行介绍。并会总结一些我在具体配置过程中的经验。若大家有这方面的需要,可以关注我后续的文章。相信能够给大家带来比较大的收获。