首先准备两台机器
机器一 服务端 IP:xxx.xxx.xx.100
机器二 客户端 IP:xxx.xxx.xx.111
机器一 服务端 IP:xxx.xxx.xx.100 配置
yum -y install nfs-utils 装NFS的软件包
mkdir -p /home/abc 任意创建一个共享目录
chmod 777 /home/abc 给个权限(755也行)
echo hello > /home/abc/1.txt 新建1.txt文件 并写入hello
vim /etc/exports 修改NFS配置文件(默认是空的)加入 如下方图一所示(ip后的括号不要与ip有间隔)
加入的内容: /home/abc 192.168.44.111(rw,sync,all_squash,anonuid=1000,anongid=1000)
systemctl start rpcbind 启动服务(启动NFS服务之前先启动 rpcbind 因为 NFS依赖 rpcbind)
systemctl enable --now rpcbind 设置开机自启动
systemctl start nfs-server 启动nfs服务(正常情况下 启动nfs时会自动启动rpcbind服务)
systemctl enable --now nfs-server 设置开机自启动
firewall-cmd --set-default-zone=trusted 设置防火墙信任所有或者关闭防火墙
systemctl stop firewalld 关闭防火墙
机器二 客户端 IP:xxx.xxx.xx.111
yum -y install nfs-utils 装NFS的软件包
systemctl stop firewalld 关闭防火墙
showmount -e 192.168.44.100 测试是否能连通 如图二
mkdir 123 创建任意目录
mount -t nfs 192.168.44.100:/home/abc /123
表示将192.168.44.100(服务端)下的/home/abc 挂载到我本地的(客户端) /123目录下 -t表示指定是什么类型的共享
如图二 挂载到/mnt下
图一的nfs 配置选项介绍
sync 同步模式,内存数据实时写入磁盘
async 非同步模式
no_root_squash 客户端挂载nfs共享目录之后,root用户不受约束 权限很大
root_squash 客户端root 用户受到约束,被限定成为某个普通用户
all_squash 客户端上所有用户在使用nfs共享目录时都被限定成为一个普通用户
anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
设置开启自动挂载
vim /etc/fstab 打开配置文件 加入下方一行内容
192.168.44.100:/home/abc /mnt nfs defaults 0 0
验证:
[root@localhost ~]# umount /mnt 取消挂载
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
exportfs
在服务端使用
在服务端上使用
exportfs -a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录
vim /etc/exports 可以重新挂载一个目录 如
/usr/ 192.168.44.0/24(rw,async,no_root_squash)
exportfs -arv 使用这个不用重启nfs服务也可以直接加载出来改过的配置文件
在客户端使用
-o (字母o) 挂载时指定新选项
如:
mount -t nfs -oro ip:/root/123.txt /mnt 使用-o 指定挂载时新加的配置
- 用上面的mount 挂载设备或者网络共享,立刻生效,不管你是否适用共享,mount都会挂载共享, autofs 也可以挂载设备或者网络共享,不同的是它仅在你使用共享的一瞬间连接共享(比如你进去的一瞬间开始共享)
autofs 自动挂载 (正题开始)
- 不使用不挂载,使用时立刻自动挂载
- 服务器2作为客户端,使用autofs自动访问服务器1的NFS共享(在服务器2上操作)
- yum -y install autofs 安装autofs软件包
- vim /etc/auto.master 修改主配置文件
- /home /etc/123.txt 在任意行添加这个内容
比如我想访问服务器1的NFS共享,把服务器1的共享目录挂载到我的/home目录下 就是访问/etc/123.txt下的文件 将它挂载到我的 /home目录下
服务器1的信息,IP,共享目录都会出现在上面弄的/etc/123.txt里面
- vim /etc/123.txt 新建一个上面在autofs配置文件中添加的文件
- 1234 -type=nfs 172.25.0.25:/123/123 加入该行保存退出
这里的type 跟fstype 意思一样
表示访问 172.25.0.25:/123/123挂载到 我们的/home/1234下。而home下的/etc/123.txt文件写入的内容就是需要访问的服务器1的设置过的NFS共享目录(格式就是服务器1的ip和设置的共享目录172.25.0.25:/123/123)
1234 -type=nfs 172.25.0.25:/123/123
等于 mount -t nfs 172.25.0.25:/123/123 /123
- systemctl enable autofs --now 立即启动服务
- 验证
ls /home 是空的 cd /home/1234 能进去表示是对的 进去之后ls可查看
- 总的来说就是我想访问的在/etc/123.txt 文件里面 (是根据要求指定的)而里面写入的共享地址在文件中按格式写的指定挂载到了 home下的 1234 目录下 而1234目录 是这里的来的1234 -type=nfs 172.25.0.25:/123/123(文件的各种中创建得来的)