Ubuntu

安装服务端

  1. sudo apt install nfs-kernel-server -y

创建共享目录

$ sudo mkdir /opt/nfs

设置目录访问权限


$ sudo chown nobody:nogroup /opt/nfs
$ sudo chmod 755 /opt/nfs

添加 NFS 共享目录

sudo vim /etc/exports

添加如下内容,* 表示允许任何网段 IP 的系统访问该 NFS 目录

/opt/nfs *(rw,sync,no_root_squash,insecure)
  • /opt/nfs代表的是共享的目录
  • *代表是允许所有的网络访问
  • ro 该主机对该共享目录有只读权限
  • rw 该主机对该共享目录有读写权限
  • root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
  • no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
  • all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户anonuid 将客户机上的用户映射成指定的本地用户ID的用户
  • anongid 将客户机上的用户映射成属于指定的本地用户组ID
  • sync 资料同步写入到内存与硬盘中
  • async 资料会先暂存于内存中,而非直接写入硬盘insecure 允许从这台机器过来的非授权访问
  • insecure,允许客户端从大于1024的tcp/ip端口连接服务器

配置生效,无需重启

sudo exportfs -rv

exportfs命令
常用选项
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录

启动

$ sudo systemctl restart nfs-kernel-server

或者

sudo /etc/init.d/nfs-kernel-server start    或者  
sudo /etc/init.d/nfs-kernel-server restart

查看启动状态

$ sudo showmount -e
Export list for VM-0-11-ubuntu:
/opt/nfs *

客户端挂载

showmount -e 服务端ip
// 查看服务端共享目录,若超时了,可能防火墙有问题,需要开放相应端口
mount -t nfs 服务端ip:共享目录 挂载目录

eg

mkdir /var/www

挂载

sudo mount  107.54.85.8:/opt/nfs /var/www

CentOS

nfs网络文件系统常用于共享音视频,图片等静态资源。将需要共享的资源放到NFS里的共享目录,通过服务器挂载实现访问。
安装

yum -y install nfs-utils rpcbind

设置开机自启动

systemctl enable nfs
systemctl enable rpcbind

创建共享目录

mkdir -p /opt/nfs

vi /etc/exports

/opt/nfs 192.168.1.0/24(rw,sync,no_root_squash)

启动nfs服务

[root@centos7 ~]# service rpcbind start
Redirecting to /bin/systemctl start rpcbind.service
[root@centos7 ~]# service nfs start
Redirecting to /bin/systemctl start nfs.service

其他服务器安装

yum -y install nfs-utils rpcbind
systemctl start rpcbind
systemctl start nfs
$ showmount -e 192.168.1.111
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

centos7 需要关闭防火墙

sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

再次查看

showmount -e 192.168.1.111
Export list for 192.168.1.111:
/opt/nfs 192.168.1.0/24

挂载nfs

[root@localhost ~]# mkdir /var/www
[root@localhost ~]# mount 192.168.1.111:/opt/nfs /var/www/
[root@localhost www]#echo "hello world" > /var/www/index.html

登录192.168.1.111服务器查看

$ cat /opt/nfs/index.html
hello world

磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。

卸载挂载

sudo umount -v /var/www

参考

https://blog.csdn.net/nicai888/article/details/69367294