概述:
如果你有两台主机,一台是Windows系统,一台是Linux,如果我希望两台主机文件共享怎么办呢?根据之前的笔记所讲的内容,我们可以选择SSH,但是在Windows配置SSH稍微有点复杂(需要下在软件,修改环境变量,比如openssh),而且不方便,这次就介绍几个文件共享的方式,其中CIFS是Windows可以很容易实现的文件共享文件系统;NFS则多用于Linux上,本次介绍nfs服务端的搭建,客户端的使用,还有使用autofs自动挂载nfs;最后的FTP则用处非常广泛,但他属于文本传输服务,也就是说不能像前面两个一样直接挂载到主机上,而是需要C/S这样的模型来使用(需要服务端和客户端)。
tips:
1、NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
(场景:用于 *NIX 之间文件的共享,用于小型存储服务或者小型网站)
2、Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
(场景:用于 *NIX 与 Windows 之间文件的共享,用于小型跨系统服务或者小型公司办公区文件共享)
3、CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问和打印的协议。
(场景:CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现)
1.cifs(Common Internet File System)
1.1)smb的windows服务端搭建
这个其实就是我们Windows常用的网络共享,首先建立CIFS文件分享的服务端(在久违的XP上)
进入共享文档
创建一个叫做CIFS的文件夹
对这个文件夹单击右键
弹出了这个共享的选项,将在“在网络上共享这个文件夹”勾选,点击“应用”,确定
这时在下面出现了一个手的样子。
1.2)linux上smb客户端的使用
回到Linux上,我们使用samba客户端,这个客户端的功能非常强大,是许多服务以及协议的实现,其包括TCP/IP上的NetBIOS(NBT)、SMB、CIFS(SMB的增强版本)、 DCE/RPC或者更具体来说MSRPC(网络邻居协议套件)、一种 WINS服务器(也被称作NetBIOS Name Server(NBNS))、NT 域协议套件(包括NT Domain Logons、Secure Accounts Manager(SAM)数据库、Local Security Authority(LSA)服务、NT-style打印服务(SPOOLSS)、NTLM以及近来出现的包括一种改进的Kerberos协议与改进的轻型目录访问协议(LDAP)在内的Active Directory Logon服务)。
[root@foundation3 ~]# yum list installed | grep samba
samba-client.x86_64 4.1.12-21.el7_1 @anaconda/7.1
samba-common.x86_64 4.1.12-21.el7_1 @anaconda/7.1
samba-libs.x86_64 4.1.12-21.el7_1 @anaconda/7.1
我之前已经安装过了,就是上面红字处的软件。
[root@foundation3 ~]# smbclient -L //192.168.1.186
Enter root's password:
Domain=[MO-9EC043A583D8] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
IPC$ IPC 远程 IPC
CIFS Disk
ADMIN$ Disk 远程管理
C$ Disk 默认共享
Domain=[MO-9EC043A583D8] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Server Comment
--------- -------
Workgroup Master
--------- -------
在这里我们可以看到我们分享的文件,就是那个CIFS。这个-L参数就是一个扫描的作用,发现CIFS目录被分享。
Domain=[MO-9EC043A583D8] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
. D 0 Mon Nov 14 19:27:17 2016
.. D 0 Mon Nov 14 19:27:17 2016
1.txt A 8 Mon Nov 14 19:27:21 2016
nihao D 0 Mon Nov 14 17:55:00 2016
40946 blocks of size 1048576. 38684 blocks available
这时我们就进入了Windows上面的共享目录,里面有一个叫“1.txt”的文件。我们可以使用get命令下载。
1.3)在linux上挂载CIFS
通过上面那种方式访问远程目录已经很方便了,但是里面的SHELL总是感觉怪怪的,没有Bash来的方便,我们现在介绍如何直接把远程目录挂载到本机的目录下。
[root@foundation3 ~]# mount //192.168.1.186/CIFS /mnt/
Password for root@//192.168.1.186/CIFS:
[root@foundation3 ~]# cd /mnt/
[root@foundation3 mnt]# ls
1.txt nihao
这样可以以root身份挂载远程文件系统
[root@foundation3 mnt]# mount //192.168.1.186/CIFS /mnt/ -o username=guest
Password for guest@//192.168.1.186/CIFS:
也可以使用-o参数将用户名指定为guest。
如果想永久挂载的话,提供了两种方案
第一种: