Ubuntu部署安装NFS服务
一、服务器端:
1.1安装NFS服务:
#执行以下命令安装NFS服务器, #apt会自动安装nfs-common、rpcbind等13个软件包 sudo apt install nfs-kernel-server
1.2编写配置文件:
#编辑/etc/exports 文件: sudo vim /etc/exports #/etc/exports文件的内容如下: /data/use *(rw,sync,no_subtree_check,no_root_squash)
解析:
/data/use——NFS服务器端的目录,用于与nfs客户端共享
*——允许所有的网段访问,也可以使用具体的IP
rw——挂接此目录的客户端对该共享目录具有读写权限
sync——资料同步写入内存和硬盘
no_root_squash——root用户具有对根目录的完全管理访问权限
no_subtree_check——不检查父目录的权限
1.3创建共享目录
#在服务器端创建/data/use共享目录 sudo mkdir -p /data/use
1.4重启nfs服务:
sudo service nfs-kernel-server restart
1.5常用命令工具:
#在安装NFS服务器时,已包含常用的命令行工具,无需额外安装。 #显示已经mount到本机nfs目录的客户端机器。 sudo showmount -e localhost #将配置文件中的目录全部重新export一次!无需重启服务。 sudo exportfs -rv #查看NFS的运行状态 sudo nfsstat #查看rpc执行信息,可以用于检测rpc运行情况 sudo rpcinfo #查看网络端口,NFS默认是使用111端口。 sudo netstat -tu -4
二、客户端:
2.1安装客户端工具:
#在需要连接到NFS服务器的客户端机器上, #需要执行以下命令,安装nfs-common软件包。 #apt会自动安装nfs-common、rpcbind等12个软件包 sudo apt install nfs-common
2.2查看NFS服务器上的共享目录
#显示指定的(hcg-bg-as-01)NFS服务器上export出来的目录 #hcg-bg-as-01为服务端主机名或IP地址 sudo showmount -e hcg-bg-as-01
2.3创建本地挂载目录
sudo mkdir -p /data/use
2.4挂载共享目录
#将NFS服务器192.168.3.167上的目录,挂载到本地的/data/use/目录下 mount -t nfs hcg-bg-as-01:/data/use /data/use mount -t nfs -o sync,noac hcg-nfs-01:/data/freeswitch /data/freeswitch
2.4自动挂载
vim /etc/fstab hcg-nfs-01:/data/freeswitch /data/freeswitch nfs defaults 0 0 hcg-nfs-01:/data/freeswitch /data/freeswitch nfs sync,noac 0 0
#注:在没有安装nfs-common或者nfs-kernel-server软件包的机器上, #直接执行showmount、exportfs、nfsstat、rpcinfo等命令时, #系统会给出友好的提示, #比如直接showmount会提示需要执行sudo apt install nfs-common命令, #比如直接rpcinfo会提示需要执行sudo apt install rpcbind命令。
附录
NFS常用参数 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