网络共享磁盘大家都用过,在windows上叫共享文件夹,linux叫共享目录,linux上配置网络共享目录也有很多中方式samba和nfs,各自有各自的优点,nfs是比较常用的。
1.安装NFS 服务
在需要共享文件夹所在的主机上安装nfs server
1.1查看系统是否已安装NFS
[root@bogon ~]# rpm -qa | grep nfs
[root@bogon ~]# rpm -qa | grep rpcbind
1.2安装NFS
[root@bogon ~]# yum -y install nfs-utils rpcbind
1.3设置开机启动nfs相关服务
[root@nfs_server ~]# systemctl enable rpcbind
[root@nfs_server ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs_server ~]# systemctl enable nfs-lock
[root@nfs_server ~]# systemctl enable nfs-idmap
1.4启动nfs service
[root@nfs_server ~]# systemctl start rpcbind
[root@nfs_server ~]# systemctl start nfs-server
[root@nfs_server ~]# systemctl start nfs-lock
[root@nfs_server ~]# systemctl start nfs-idmap
1.5创建需要共享的目录
[root@nfs_server ~]# mkdir -p /application/share -p 级联创建
[root@nfs_server ~]# chmod -R 777 /application/share 更改share文件夹及其子文件夹权限为777
1.6配置需要共享的目录
配置需要共享的目录到 /etc/exports下,xxx.xxx.xxx.xxx为需要共享的对象ip地址(要共享给谁)。
vim /etc/exports
修改内容如下
/home/test 192.168.22.*(rw,sync,no_root_squash)
/home/share 192.168.10.10(rw,sync,no_root_squash)
/data/share 10.22.77.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
上面案例中我配置了将 /data/share 文件目录设置为允许 IP 为该 10.222.77.0/24 区间的客户端挂载,当然,如果客户端 IP 不在该区间也想要挂载的话,可以设置 IP 区间更大或者设置为 * 即允许所有客户端挂载,
例如:/home *(ro,sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。
exportfs -a 使exports的修改生效
1.7参数列表
参数 |
说明 |
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 |
1.8修改防火墙配置
如果网络不通可以修改一下
[root@nfs_server ~]# firewall-cmd --add-service=nfs --permanent --zone=public
success
[root@nfs_server ~]# firewall-cmd --add-service=mountd --permanent --zone=public
success
[root@nfs_server ~]# firewall-cmd --add-service=rpc-bind --permanent --zone=public
success
[root@nfs_server ~]# firewall-cmd --reload 重新载入配置,使其生效
success
2.安装NFS挂载客户端
2.1安装nsf客户端 不需要安装服务端
[root@nfs_client ~]# yum -y install nfs-utils
2.2 检查共享目录是否设置正确
xxx.xxx.xxx.xxx 为共享服务器地址
[root@nfs_client ~]# showmount -e 192.168.0.240
Export list for 192.168.0.240:
/application/share 192.168.0.*
2.3 挂载远程服务器NFS分区到本地目录
创建本地文件夹 :-p 确保目录名称存在,如果目录不存在的就新创建一个
[root@nfs_client ~]# mkdir -p /application/share
挂载共享目录
[root@nfs_client ~]# mount -t nfs 192.168.0.240:/application/share /application/share
然后 就可以测试 读写共享目录是否正常了
2.3取消挂载
最后附上取消挂载的命令
方式一
umount 192.168.0.240:/application/share
方式二
umount /application/share