目录

linux 网络文件系统 nfs

NFS 的简介

NFS 就是 Network File System 的缩写,即网络文件系统,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。nfs 服务端相当于远程存储器,客户端像挂载 U 盘一样使用它。
网文:
Ubuntu16.04安装nfs的两种方式

Ubuntu 平台

1、nfs 的安装

nfs 需要 RPC 服务,事先要安装 RPC 服务程序。RPC 服务器的 portmap 进程维护着一张 RPC 程序号到 Internet 端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap 进程通过这张映射表来提供程序号-端口号之间的转化功能。

1
2
3
sudo apt-get install portmap                #依赖的RPC服务安装
sudo apt-get install nfs-kernel-server      #nfs服务端安装
sudo apt-get install nfs-common             #nfs客户端安装
2、nfs 的配置

我们要共享服务端哪个文件夹,需要通过配置文件进行配置,例如配置是否可读写、是否指定客户端访问等。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo gedit /etc/exports                     #打开exports配置文件(具体配置内容请看下面介绍)
sudo chmod 777 /home/xiaomi/nfs             #修改文件(夹)权限,确保其权限正确性(事先创建的文件夹)

#在exports配置文件加入内容:
/home/xiaomi/nfs *(rw,sync,no_root_squash)  #/home/xiaomi/nfs共享出去,所有客户端都可访问和读写
                                            #[rw              ] 读/写权限(如果ro:只读);
                                            #[sync            ] 数据同步写入内存和硬盘;
                                            #[no_root_squash  ] NFS服务器共享目录用户的属性;
                                            #[no_subtree_check] 不检查父目录的权限。
                                            #也可共享给指定网段的客户端:
                                            #/home/xiaomi/nfs 192.168.2.*(rw,sync,no_root_squash)
3、nfs 的开启

nfs 服务端安装后,需要我们手动启动运行,否则客户端无法连接服务端。
如果开启了系统防火墙(Firewall)将可能影响 nfs 服务,请关闭它(需要重启设备):
sudo ufw disable #关闭防火墙
sudo ufw status #查看防火墙状态

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo /etc/init.d/portmap restart            #重启RPC服务
sudo /etc/init.d/nfs-kernel-server restart  #重启nfs服务
showmount -e                                #查看共享目录

#其它常用命令:
sudo /etc/init.d/nfs-kernel-server start    #启动nfs服务
sudo /etc/init.d/nfs-kernel-server stop     #停止nfs服务
sudo /etc/init.d/nfs-kernel-server restart  #重启nfs服务
sudo /etc/init.d/nfs-kernel-server status   #查看nfs服务当前状态
                                            #如果运行中: 
                                            nfsd running
4、nfs 的挂载

与挂载 U 盘一样挂载即可,成功后所有操作与本地操作完全一样。当不需要操作时,取消挂载。

1
2
3
4
5
6
sudo mount -t nfs -o nolock 192.168.2.28:/home/xiaomi/nfs /mnt
                                            #将另一台机的/home/xiaomi/nfs目录挂载到本机/mnt目录下
                                            #[-t nfs   ] UNIX(LINUX) 文件网络共享
                                            #[-o nolock] 不使用NFS文件锁(原因:很多嵌入式设备的根文件系统中不带portmap)

umount /mnt                                 #取消挂载(注:要在其它路径操作,否则系统提示忙不能取消挂载)