一、Samba服务所使用的端口和协议:

 1.Port 137 (UDP) - NetBIOS 名字服务 ; nmbd

 2.Port 138 (UDP) - NetBIOS 数据报服务

 3.Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)

 4.Port 389 (TCP) - 用于 LDAP (Active Directory Mode)

 5.Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)

 6.Port 901 (TCP) - 用于 SWAT,用于网页管理Samba
windows系统之间的文件共享协议:NetBEUI(NetBIOS Extend User Interface)协议和IPX/SPX协议
   NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。 NETBEUI缺乏路由和网络层寻址功能,既是其最大的优点,也是其最大的缺点。因为它不需要附加的网络地址和网络层头尾,所以很快并很有效且适用于只有单个网络或整个环境都桥接起来的小工作组环境。 因为不支持路由,所以NETBEUI永远不会成为企业网络的主要协议。NETBEUI帧中唯一的地址是数据链路层 媒体访问控制 (MAC)地址,该地址标识了网卡但没有标识网络。 路由器 靠网络地址将帧转发到最终目的地,而NETBEUI帧完全缺乏该信息。 NetBEUI协议主要用于本地局域网中,一般不能用于与其他网络的计算机进行沟通。
   IPX/SPX (Internetwork Packet Exchange/Sequences Packet Exchange,Internet分组交换/顺序分组交换IPX/SPX)是Novell公司的通信协议集。与NetBEUI形成鲜明区别的是IPX/SPX比较庞大,在复杂环境下具有很强的适应性。这是因为IPX/SPX在设计一开始就考虑了网段的问题,因此它具有强大的路由功能,适合于大型网络使用。
IPX主要实现网络设备之间连接的建立维持和终止;SPX协议是IPX的辅助协议,主要实现发出信息的分组、跟踪分组传输,保证信息完整无缺的传输。 其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。
   LINUX系统之间文件共享 和 LIUNX与WINDOWS系统之间的文件共享IBM SMB,服务器信息块协议
   服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI之上。


二、samba安装

1.# yum -y install samba
   使用yum命令安装samba,加入-y参数,如遇询问自动选择y,全自动下载并安装samba,此过程需要一点时间。

2.# rpm -qa | grep samba
   检查samba服务包的安装情况,会显示类似如下两个包:
   samba-common-3.0.33-3.7.el5_3.1   //服务器和客户端均需要的文件
   samba-3.0.33-3.7.el5_3.1                //服务器端文件

3.# whereis samba
   由于是yum安装,可以用此命令查看samba安装位置,得到类似如下内容:
   samba: /etc/samba /usr/lib/samba /usr/share/samba /usr/share/man/man7/samba.7.gz

4.# vi /etc/samba/smb.conf
   根据步骤3得知smb.conf的位置,配置samba:
   (1)[global]       找到全局设置标签,在下面进行配置
           workgroup = MYGROUP      #找到此行,改为workgroup = WORKGROUP,这里以 Windows XP 默认的“WORKGROUP”为例
           ; hosts allow = 192.168.1. 192.168.2. 127.      #找到此行,去掉行首的“;”,并制定访问限制改为hosts allow = 192.168.0. 127.,指定内网IP地址及本地,只允许这两种情况的访问
   (2)配置最简单访问目录几个基本属性:
           [share]      #windows客户端查看时看到的文件夹名
           path = /var/samba/share      #共享目录位置,要系统中存在的目录,也可以配置完再创建
           read only = no
           public   = yes

5.给配置的共享目录设置权限:
   # mkdir /var/samba/share      如刚才配置的共享目录不存在则创建
   # chown -R nobody. /var/samba/share      设置共享目录归属为 nobody
   # chmod 777 /var/samba/share      将共享目录属性设置为 777

6.# smbpasswd -a username(这里是Linux中已经存在的用户)      将linux系统已存在用户 username(例)加入到 Samba 用户数据库,windows访问samba共享目录时需要输入此用户名和密码
   New SMB password:      在此输入密码
   Retype new SMB password:      重复密码

7.启动sabma

     # service smb start

  #chkconfig add smb

   #chkconfig list |grep smb

8.centos 6.4卸载samba

   1)首先检查Samba服务包,输入命令#rpm -qa | grep samba,会出现下面两到三个包:
       samba-common-2.2.7a-7.9.0.i386    //服务器和客户端均需要的文件
       samba-2.2.7a-7.9.0.i386                  //服务器端文件
       samba-client-2.27a-7.9.0.i386          //客户端文件

   2)逐个删除,输入命令#rpm -e samba,首先卸载samba-2.2.7a-7.9.0.i386;

       然后输入命令#rpm -e samba-common-2.2.7a-7.9.0.i386,卸载samba-common-2.2.7a-7.9.0.i386;
       如果有samba-client-2.27a-7.9.0.i386也卸载掉,一般不会有。

   3)samba-common-2.2.7a-7.9.0.i386可能会出现不能删除的情况,输入命令#rpm -e --nodeps samba-common-2.2.7a-7.9.0.i386就可以了。


9.从windows客户端连接samba

   1)打开运行(windows键+R),输入配置samba服务器的主机名或者IP(格式: \\192.168.0.3)

   2)进入samba可以看到我们配置的共享目录名,此为上文步骤4.2配置的为share

   3)第一次登录需要输入用户名和密码,此为上文步骤6配置的为username的用户名,可勾选记住我的密码,以后在此机器访问samba服务器就可以直接登录了。


10.Linux上测试使用

   \\192.16.0.3无法访问到,但是在linux上测试是可以使用成功的testparm:测试smb.conf是否配置错误.

   smbclient -L //192.168.20.196:使用客户端“Anonymous login successful”是成功的

   iptables -F 防火墙是否有问题