摘要

NFS是Network File System的缩写 ,是在网络层面,NFS(Network File
System)网络文件系统会经常用到,用于在网络上共享存储。这样讲,你对NFS可能不太了解,阿铭举一个例子来说明一下NFS是用来做什么的。假如有三台机器A,
B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C.
但是使用NFS只需要放到A上,然后A共享给B和C即可,B和C把A共享的目录放在本地,这个动作叫做挂载。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。其主要特点就是允许一个系统和网络上的他人共享目录和文件。

安装 NFS

Centos

sudo yum install nfs-utils
systemctl enable nfs-server
systemctl start nfs-server

Ubuntu

sudo apt install nfs-kernel-server
service nfs-kernel-server start
service nfs-kernel-server restart

配置

服务端

#编辑/etc/exports 文件:
sudo vi /etc/exports
#追加内容:
/media/alic/asus 172.31.131.151(rw,sync,no_subtree_check,no_root_squash)

其中:‘/media/alic/asus’根据实际情况变更位置,此目录路径为被共享文件夹路径。
‘172.31.131.151’ 为需要挂载该文件夹的远程服务器IP地址。
最后部分为权限信息
文件权限选项解释:

选项说明
ro只读
rw可读写
nohide如果被挂载的目录下的其他目录也是挂载的,此选项将使它们可见
insecure允许客户端不使用保留端口
sync每次写操作要同步到物理存储器上(而不是仅写入内存)
no_root_squash不启用root_squash
root_squashNFS会将UID或者GID为0的访问用户映射为anonymous
all_squash所有访问用户都做为anonymous映射
anonuid,anongid指定anonymous用户的uid,gid

配置完成后,使用重启命令即可生效。

service nfs-kernel-server restart

最后请放行 TCP 2049 端口,UDP 4046 端口。

iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp --dport 4046 -j ACCEPT
service iptables save

多说一句,撤销端口指令为:(此处不需要)

iptables -A OUTPUT -p tcp --dport 端口号-j DROP

客户端

安装NFS软件后,直接挂载磁盘。

mkdir -p /www/wwwroot/share
mount -t nfs 43.226.26.223:/media/alic/asus /www/wwwroot/share

'43.226.26.223' 为服务端IP,根据实际修改。
‘/media/alic/asus’为服务端被共享文件夹目录,根据实际修改。
‘/www/wwwroot/share’ 为客户端目录,被共享文件夹中的内容将在客户端目录呈现,根据需要修改。

umount /www/wwwroot/share

执行上述步骤可以撤销挂载。

挂载检验

#查看磁盘占用情况
df -h

检验有无出现客户端目录的挂载信息。

最后修改:2020 年 05 月 02 日 09 : 38 AM
如果觉得我的文章对你有用,请随意赞赏,感谢您支持6zgm.com !