Linux下nfs服务器搭建技巧

时间:2021-08-24 15:50:25

使用linux进行嵌入式开发的时候,为了方便开发,通常是将开发板挂载到宿主机的文件系统上,然后将代码放到共享给开发板的目录中,再通过开发板运行。 
首先查看是否安装了 nfs 软件包,yum list installed | grep nfs。如果安装,则可进行下面设置。 
nfs 服务器端配置: 
1.首先建立共享目录:在根目录下建立share目录。执行 mkdir /share 
2.然后对 exports 文件进行编辑:vim /etc/exports 
如果之前没有通过 nfs 共享过目录,该文件是空的,向里面填入如下内容: 
 

复制代码

代码如下:


/share *(sync,rw,no_root_squash)

 

各部分解释: 
/share 为本机要对外共享的目录名称 
* 为允许外部访问本机共享目录的 ip 地址。 
sync 为将数据先保存在内存缓冲区中,必要时才写入磁盘。 
rw 为外部主机对本地共享目录享有读写权限 
no_root_squash 为访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组。 
上述各部分其余选项有: 
1->.客户端的指定方式 
指定ip地址的主机:192.168.0.100 
指定子网中的所有主机:192.168.0.0/24 或 192.168.0.0/255.255.255.0 
指定域名的主机:nfs.test.com 
指定域中的所有主机:*.test.com 
所有主机:* 
2->.选项说明 
ro:共享目录只读; 
rw:共享目录可读可写; 
all_squash:所有访问用户都映射为匿名用户或用户组; 
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组; 
root_squash(默认):将来访的root用户映射为匿名用户或用户组; 
no_root_squash:来访的root用户保持root帐号权限; 
anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534); 
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534); 
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器; 
insecure:允许客户端从大于1024的tcp/ip端口连接服务器; 
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; 
async:将数据先保存在内存缓冲区中,必要时才写入磁盘; 
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,可以提高效率; 
no_wdelay:若有写操作则立即执行,应与sync配合使用; 
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限; 
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,可以提 
高效率; 
3.使设置生效:exportfs -ra 或者 service nfs restart 
4.通过命令查看共享目录输出情况:exportfs -v 
nfs 客户端配置: 
客户端可通过 showmount -e ip 查看远程服务器的对外共享目录。 
1.启动 nfs 服务 
2.建立挂载点,mkdir /mnt/nfs 
3.挂载:mount -t nfs ip:/share /mnt/nfs 
4.卸载:umount /mnt/nfs 
第3步的 ip 表示对外共享目录的主机 ip,也就是服务器 ip。此处可以使用localhost代替ip地址,表示用nfs挂载本机的目录到另一目录 
可以将挂载信息写入 /etc/fstab 文件,实现对 nfs 服务的自动挂载,格式如下: 
ip:/share /mnt/share nfs defaults 0 0 
其中: 
ip:/share 为远程主机的 ip 地址和共享目录 
/mnt/share为要挂载到本地的目录 
nfs为文件系统类型 
defaults 0 0为挂载选项 
使用 mount | grep nfs 命令可以显示当前主机挂载的 nfs 目录。 
卸载已挂载的目录:umount /mnt/nfs

以上所述是小编给大家分享的Linux 下nfs服务器搭建技巧,希望本文所述对大家有所帮助。