NFS为网络文件系统,允许网络中的计算机通过TCP/IP协议进行网络资源共享。
软件安装:
$ sudo apt-get install nfs-kernel-server
(1)服务器端
1)创建共享目录
使用命令行创建共享的目录:
$ mkdir /home/xxx/filename
2)修改配置文件
文件配置格式:<输出目录> 客户端 (选项:访问权限,用户映射,其他)
输出目录:NFS系统中所定义的给客户端使用的文件系统
客户端:网络中可以访问NFS共享目录的IP地址或域名等,常用的指定方式
a)指定ip地址的主机:192.168.100.1
b)指定一个子网:192.168.100.0/24 也可以写成:192.168.100.0/255.255.255.0
c)指定域名的主机:david.bsmart.cn
d)指定域中的所有主机:*.bsmart.cn
e)所有主机:*
选项:用来设置输出目录的访问权限,用户映射等,主要有3类选项
1)共享文件访问权限选项
ro:设置输出目录只读
rw:设置输出目录读写
2)用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)
3)其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)
insecure:允许客户端从大于1024的tcp/ip端口连接服务器
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
no_wdelay:若有写操作则立即执行,应与sync配合使用
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
NFS配置例程如下所示
打开配置文件:
$ sudo vim /etc/exports
写入共享目录的绝对路径:
在配置文件的最后添加目录路径,例如
/home/xxx/filename *(rw,sync,no_root_squash) 意义: ro:只读权限 rw:读写权限 sync:资料同步写入到内存和硬盘中 no_root_squash:不将root用户及所属组都映射为匿名用户或用户组 *:代表IP地址段
配置完成,保存配置文件。
3)重启服务
$ sudo service nfs-kernel-server restart
(2)客户端
1)挂载服务器共享目录
$ mount IP(服务器IP地址):共享目录(/home/xxx/filename) /mnt
2)基本操作
共享目录挂载成功后,便可以进入到/mnt内进行基本的文件操作