Raspberry Pi3 安装 NFS Server

安装必要服务:

sudo apt-get install portmap

sudo apt-get install nfs-kernel-server

 

———————
sudo vi /etc/exports
在文件的最后一行添加:
/mnt/nfs *(rw,sync,no_root_squash)
/mnt/nfs是Ubuntu根目录下的一个文件夹(创建 sudo mkdir /mnt/nfs)
#  * 表示任何IP都可以共享,如果你想限定个别IP,用IP替代
#no_root_squash不太安全,可以改为root_squash,这里是特殊应用
保存并退出
启动NFS服务
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
———————

l  编辑文件

sudo vim /etc/exports

添加:

/home/pi/Myself      192.168.123.*(rw,sync,no_subtree_check)

* 表示最后一段任何IP都可以共享,如果你想限定个别IP,用IP替代

注意要事先创建要共享的目录

 

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID

l  启动NFS Server

/etc/init.d/nfs-kernel-server start

 

l  检查是否启动

showmount   –e localhost

 

发现启动不起来,卡主不动。解决方法:

l  在服务器上先停止rpcbind 和nfs在启动 注意顺序

sudo /etc/init.d/rpcbind stop                     停止rpcbind

sudo /etc/init.d/nfs-kernel-server stop        停止nfs

sudo /etc/init.d/rpcbind start                      启动rpcbind

sudo /etc/init.d/nfs-kernel-server start         启动nfs

 

l  查看nfs状态:

pi@raspberrypi:~ $ showmount -e localhost

Export     list for localhost:

/home/pi/Myself     192.168.123.*

出现目录和访问地址即可

 

l  客户端进行连接

 mount -t nfs -o nolock 192.168.123.20:/home/pi/Myself  /mnt/nfs

 

注意事先创建目录