SAMBA
FTP文件传输服务可以让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件,而非共享文件,因此要想通过客户端直接在服务器上修改文件内容还是一个问题。
微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题。
SAMBA工作原理
- 协议协商
客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB类型。Samba服务器根据客户端的情况,选择最优的SMB类型,并做出回应; - 建立连接
当SMB类型确认后,客户端会发送session setup指令数据包,提交帐号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文作出回应,并为用户分配唯一的UID,在客户端与其通信时使用。 - 访问共享资源
客户端访问Samba共享资源时,发送tree connect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源。 - 断开连接
共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接
SAMBA工作协议
Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口;后期SMB经过开发,可以直接运行于TCP/IP协议上,使用TCP协议的445端口。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议
SAMBA端口
TCP 139/445,UDP 137/138
SAMBA服务安装及配置
1.关闭防火墙&Selinux
[root@linux ~]# systemctl stop firewalld
[root@linux ~]# setenforce 0
[root@linux ~]# getenforce
Disabled
2.安装SAMBA服务器及客户端
[root@linux ~]# yum install samba -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package samba.x86_64 0:4.6.2-8.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================
Package Arch Version Repository Size
==================================================================================
Installing:
samba x86_64 4.6.2-8.el7 c7 633 k
Transaction Summary
==================================================================================
Install 1 Package
Total download size: 633 k
Installed size: 1.8 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : samba-4.6.2-8.el7.x86_64 1/1
Verifying : samba-4.6.2-8.el7.x86_64 1/1
Installed:
samba.x86_64 0:4.6.2-8.el7