linux-nfs
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
C:\Users\Administrator>showmount -e 192.168.5.140
导出列表在 192.168.5.140:
/data 192.168.5.*
C:\Users\Administrator>
映射网络驱动器
新建一个目录123测试,这里的权限会有问题,因为我采用的administrator挂载的默认其他人没有权限写,chmod 755 /data。
总结:
权限控制
/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
正在使用时无法拖挂载。