摘要
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_squash | NFS会将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
检验有无出现客户端目录的挂载信息。