服务端
redhat & centos
服务端yum install -y nfs-utils rpcbind
ubuntu & debian & deepin
搜索nfs-开头的软件apt-cache search nfs-
服务端apt install nfs-kernel-server
共享目录
1 | mkdir -p /data/nfs/share |
NFS配置文件
1 | vim /etc/exports |
格式: 共享目录 客户机ip 共享方式(ro,rw) ro:只读 rw:读写 sync:同步 async:异步(默认)
/share (ro, sync) # ‘’表示所有ip
/share 192.168.2.250(rw, sync)
deepin linux:
(rw,sync,no_root_squash,no_subtree_check)
启动 RPC 服务
1 | service rpcbind start |
查看 NFS 服务项 rpc 服务器注册的端口列表,有些系统需要sudo
sudo rpcinfo -p localhost
或
sudo rpcinfo -p localhost | grep nfs
启动 NFS 服务
1 | sudo service nfs-server start |
再查看一下rpcinfo -p localhost,可以看到有nfs了。
如何知道nfs service名字
1 | sudo service --status-all | grep nfs |
也就是说 nfs-kernel-server也可以,简写就是nfs-server。
检查NFS配置
showmount -e localhost
如果列表为空,说明nfs配置有问题。
showmount表示查看目标地址的共享目录,下面客户端的时候,后面的地址就是服务端IP了。
修改后重新加载配置文件:
sudo exportfs -rv
当然修改后,你也可以重启nfs服务
开机自启
1 | sudo chkconfig rpcbind on |
查看服务是否开机启动,支掉-a只显示active
sudo systemctl -la |grep rpc
sudo systemctl -la |grep nfs-
客户端
一般服务端安装完了,本地就有客户端
1 | sudo apt install nfs-common |
查看目标地址共享目录
showmount -e 192.168.20.110
showmount -e 192.168.45.168
确认自身是否在允许的列表中
可使用ifconfig查看自身ip信息,确保自身的ip在允许的列表中
创建挂载点
使用mkdir命令创建一个共享目录的挂载点,如果已经有挂载点,可省略此步骤。
本次创建挂载点命令为mkdir -p /data/nfs/client
挂载NFS服务器共享目录到本地
sudo mount -t nfs 192.168.20.110:/data/nfs/share /data/nfs/client
如果服务端共享的是/data/nfs/share目录,那么可以直接挂载它下面的子目录,它会自动创建,例如AAA:
sudo mount -t nfs 192.168.20.110:/data/nfs/share/AAA /data/nfs/client
为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
sudo mount -t nfs 192.168.20.110:/data/nfs/share /data/nfs/client -o proto=tcp -o nolock
卸载 NFS 挂载
sudo umount /data/nfs/client
验证
查看目录挂载
df -h
服务端执行
sudo touch /data/nfs/share/test
vim /data/nfs/share/test
‘Welcome to NFS server’
注意以下这种没有成功,因为share目录无法进入,权限是666,但是可以通过vi使用。
#sudo echo ‘Welcome to NFS server’ > /data/nfs/share/test
在客户端验证并写入
1 | vim /data/nfs/client/test |
服务端验证
vim /data/nfs/share/test
实现开机自动挂载
1 | vim /etc/fstab |
固定nfs服务端口
NFS启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。
1 | vim /etc/sysconfig/nfs |
重启
service nfs-server restart
查看结果
rpcinfo -p localhost