如果想要共享文件,在Linux对Linux的环境下,最简单的办法就是使用NFS;在windows对windows的环境下,最简单的办法就是使用“网上邻居” CIFS;那么如果局域网中既有windows环境,又有Linux环境,而且想要共享文件的话,就可以使用SAMBA服务器。
1. samba的发展及由来
在早期的网络世界当中,文件数据在不同的主机之前的传输大多是使用FTP文件服务器,但是FTP无法直接修改Linux主机上的文件,需要将该文件从FTP服务器下载下来之后再去修改,所以该文件在服务器和客户端均会存在。
samba可以让Linux加入windows的网上邻居支持,既可以用于windows和Linux之间的文件共享,也可以用在于Linux和Linux之间的资源共享,不仅如此,samba也可以让Linux上面的打印机成为打印机服务器Printer Server。
常见文件服务器的比较:
服务名称 | 使用范围 | 服务端 | 客户端 | 局限性 |
FTP | 局域网和公网 | Windows & Linux | Windows & Linux | 无法直接修改服务端的文件 |
NFS | 局域网和公网 | Linux | Linux | 只能在Linux之间使用 |
SAMBA | 局域网 | Windows & Linux | Windows & Linux | 只能在局域网中使用 |
2. samba常见的应用
2.1 samba的主要功能
- 共享文件与打印机服务
- 可以提供用户登录samba主机时的身份认证,以提供不同身份用户的个别数据
- 可以进行windows网络上的主机名解析(NetBIOS Name)
- 可以进行设备的共享(ZIP、CD-ROM等)
2.2 samba服务器的应用实例
Windows XP对于网上邻居的连接限制依版本而有所不同,以企业常见的专业版(Professional)来说,它仅能提供最多同时10个连接到网上邻居的连接能力。但SAMBA稳定、可靠又没有连接数限制。
2.2.1 利用软件直接编辑WWW主机上面的网页数据
利用个人计算机将网页制作完毕后,用类似FTP之类的服务将网页上传到WWW主机上,同时在客户端和WWW主机上都有一份网页数据,时常忘记哪份资料是最新,并且容易将FTP中的旧数据下载下来并且覆盖本地最新的文件,使用不便。
samba可直接连接到远程服务器所提供的目录,并修改主机的文件数据,类似于在线编辑功能,修改完成后可在Internet上面立刻检验,使用方便。
2.2.2 做成可直接连接的文件服务器
由于用户在登录samba这个服务器主机时需要输入用户数据(帐号与密码),而不同的登录者会取得不一样的目录资源,所以可以避免自己的数据在公用计算机上被窥视,此外,在不同的公用计算机上面都可以登录samba主机,数据的使用上确实相当棒。
2.2.3 打印机服务器
samba除了共享文件系统外,也可以共享打印机。
3. samba使用的NetBIOS通信协议
samba这个文件系统是架构在NetBIOS(Network Basic Input/Output System。NetBIOS)这个协议上面所开发出来的。
最早IBM发展出NetBIOS的目的仅是要让局域网内少数计算机进行网络连接的一个通信协议而已,并不针对大型网络,因此,NetBIOS是无法跨路由的(Route / Gateway)。但是目前我们已有NetBIOS over TCP/IP技术,这样就可以跨路由使用samba服务器所提供的功能,当然,目前samba还是比较广泛的使用在LAN(局域网)中。
4. samba使用的daemons
4.1 取得对方主机的NetBIOS定位该主机所在
当我们想要登录某台windows主机使用它所提供的文件数据时,必须要加入该windows主机的工作组(workgroup),并且我们的机器也必须设置一个主机名(简单称为NetBIOS Name),注意,这个主机名和hostname不一样,在同一个组中,NetBIOS Name必须是独一无二的。
4.2 利用对方给予的权限访问可用资源
samba是通过两个服务来控制这两个步骤:
- nmbd:这个daemon是用来管理工作组、NetBIOS Name等的解析。主要利用UDP协议开启port 137、138来负责名称解析的任务
- smbd:这个daemon的主要功能就是用来管理samba主机共享的目录、文件与打印机等。主要利用可靠的TCP协议来传输数据,开放的端口为139及445(不一定存在)
5 连接模式介绍
5.1 Peer/Peer(workgroup model , 对等模式)
在局域网中的所有PC均可以在自己的计算机上面管理自己的帐号与密码,同时每一台计算机也都具有独立执行各项软件的能力,只是通过网络将各个PC连接在一起而已的一个架构。每台机器可以同时为client与server。这就是peer/peer架构了。
一般适用于家用或者小型办公室,或者不需要经常进行网络数据共享的网络环境,或者是每个用户都独自拥有计算机的拥有权(个人电脑而非公用电脑)。
优点:网络中的每一台都是独立运行,不受其他电脑的干扰,不会因为一台计算机的关掉而影响其他机器的正常使用。
缺点:如果一台电脑要访问网络中每一台电脑的共享资源,那么就需要知道每一台电脑多对应的帐号和密码,不是很方便。
Peer / Peer(workgroup Model)模式图如下:
5.2 Domain model (主控模式)
将所有的帐号与密码都放置在一台主控计算机(Primary Domain Controller,PDC)上面,在我的网络里面,任何人想要使用任何计算机时,都需要在屏幕前输入帐号和密码,然后全部利用PDC服务器的辨识后,才给予适当的权限。也就是说,不同的身份还具有不一样的计算机资源权限。
适用于人来人往的企业架构,当系统管理员要管理新进人员的计算机资源使用权时,可以直接针对PDC来修改,不需要每一台主机都去修改,对于系统管理员来说,这样的架构在控制帐号资源上,当然是比较简单的。
Domain model 模式图如下:
参考链接:
1.《鸟哥的Linux私房菜-服务器架设篇》