Ubuntu
安装服务端
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