NFS文件共享配置

nfs一种基于tcp/ip传输的网络文件系统协议
基础配置:
实验结构:

server linux ip 5.140
client windows ip 5.1
client linux ip 5.141

服务端配置

服务器nfs共享/data目录

[root@5-140 ~]# rpm -qf /etc/exports
setup-2.8.71-11.el7.noarch
[root@5-140 ~]# yum -y install nfs-utils rpcbind

打开配置文件里面是空的。/etc/exports
里面添加共享什么目录 ,共享给谁 //可以是某个网段可以是某个ip地址,某个域名,共享什么权限 ro或rw,//共享是否等同于root权限,(root_squash, 压缩,不等于root权限,只能是其他用户权限)(no_root-squach,不压缩 等同于root权限)squash:压缩压榨 , async异步传输,比较快。sync同步传输,需要写入硬盘,IO比较慢较为安全。 参数
root_squash
当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash
当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash
无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync
同步,同时将数据写入到内存与硬盘中,保证不丢失数据

[root@5-140 ~]# mkdir /data  #创建共享目录
  oot@5-140 ~]# vim /etc/exports
/data 192.168.5.*(rw,no_root_squash,async)  #通配符*允许192.168.5.0/24这个ip地址段连接,也可以直接写ip.
[root@5-140 ~]# systemctl start nfs
[root@5-140 ~]# systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since 四 2022-12-29 15:21:54 CST; 5min ago
  Process: 3713 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 3696 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 3694 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 3696 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

12月 29 15:21:54 5-140 systemd[1]: Starting NFS server and services...
12月 29 15:21:54 5-140 systemd[1]: Started NFS server and services.
[root@5-140 ~]# 

Linux客户端访问

[root@5-141 ~]# showmount  -e 192.168.5.140
Export list for 192.168.5.140:
/data 192.168.5.*

客户端查看nfs共享 showmount -e 服务器ip地址
mount -t nfs 192.168.5.140:/data /mnt 把共享目录挂载到/mnt 路径

[root@5-141 ~]# df -TH
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  938M     0  938M    0% /dev
tmpfs                   tmpfs     956M     0  956M    0% /dev/shm
tmpfs                   tmpfs     956M   11M  945M    2% /run
tmpfs                   tmpfs     956M     0  956M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        19G  5.7G   13G   31% /
/dev/sda1               xfs       1.1G  179M  886M   17% /boot
tmpfs                   tmpfs     192M   41k  191M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
[root@5-141 ~]# mount  -t nfs 192.168.5.140:/data /mnt/
[root@5-141 ~]# df -TH
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  938M     0  938M    0% /dev
tmpfs                   tmpfs     956M     0  956M    0% /dev/shm
tmpfs                   tmpfs     956M   11M  945M    2% /run
tmpfs                   tmpfs     956M     0  956M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        19G  5.7G   13G   31% /
/dev/sda1               xfs       1.1G  179M  886M   17% /boot
tmpfs                   tmpfs     192M   41k  191M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
192.168.5.140:/data     nfs4       39G   11G   28G   29% /mnt
[root@5-141 ~]# 

客户端测试

[root@5-141 ~]# cd /mnt/
[root@5-141 mnt]# ls
[root@5-141 mnt]# touch  111
[root@5-141 mnt]# ls
111

服务器端

[root@5-140 ~]# cd /data/
[root@5-140 data]# ls
111

能否写入要在/etc/exparts 里面定义。还要看共享目录得权限
Exportfs -rv,也能重启服务,重新生效配置。
查看 /var/lib/nfs/etab,也能查看配置是否生效

[root@5-140 data]# cat /var/lib/nfs/etab        
/data   192.168.5.*(rw,async,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash)

Windows客户端访问

开启nfsclient
image-1672299249160

C:\Users\Administrator>showmount  -e 192.168.5.140
导出列表在 192.168.5.140:
/data                              192.168.5.*

C:\Users\Administrator>

映射网络驱动器
image-1672299934075
image-1672299968083
新建一个目录123测试,这里的权限会有问题,因为我采用的administrator挂载的默认其他人没有权限写,chmod 755 /data。
image-1672301231819
总结:
权限控制
/etc/exports 配置文件中的ip和括号要紧紧相连
不然会出现 配置的ip只有ro 权限 而所有人任何ip都拥有 rw权限。
如果可读写也要看父目录的其他人权限。
防火墙配置
防火墙开启状态 开启图形化 firewall-config 打开nfs和rpc-bind,mountd即可
端口为nfs2049和rpc111

[root@5-140 ~]# firewall-cmd  --add-service=nfs --permanent
success
[root@5-140 ~]# firewall-cmd  --add-service=rpc-bind --permanent
success
[root@5-140 ~]# firewall-cmd  --add-service=mountd --permanent  
success
[root@5-140 ~]# firewall-cmd  --add-port=2049/tcp --permanent 
success
[root@5-140 ~]# firewall-cmd  --add-port=111/tcp --permanent    
success
[root@5-140 ~]# firewall-cmd  --reload
success
[root@5-140 ~]# firewall-cmd  --list-port
2049/tcp 111/tcp
[root@5-140 ~]# firewall-cmd  --list-service
dhcpv6-client mountd nfs rpc-bind ssh

正在使用时无法拖挂载。

文章作者: emporer
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Emporer-Linux
linux nfs
喜欢就支持一下吧