nfs服务器ubuntu部署
@
服务端部署;ubuntu22
客户端部署;centos
部署nfs
安装软件包
apt install -y nfs-kernel-server
创建共享目录,并开放777权限
mkdir /opt/nfs_share
chmod 777 /opt/nfs-share/
编辑配置文件
vim /etc/exports
#配置参数详解
/opt/nfs-share:为共享目录(若没有这个目录,请新建一个)。
192.168.200.0/24:可以为一个网段,一个IP,也可以是域名。域名支持通配符,例如,*.qq.com。
rw:read-write,可读写。
ro:read-only,只读。
sync:文件同时写入硬盘和内存。
async:文件暂存于内存,而不是直接写入内存。
wdelay:延迟写操作。
no_root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,拥有匿名用户权限,通常它将使用nobody或nfsnobody身份。
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端共享的目录来说,都拥有匿名用户权限。
anonuid:匿名用户的UID(User Identification,用户身份证明)值,可以在此处自行设定。
anongid:匿名用户的GID(Group Identification,共享资源系统使用者的群体身份)值。
subtree_check 如果共享/usr/bin或者/opt之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
具体配置如下
/opt/nfs_share 192.168.200.0/24(rw,no_root_squash,no_subtree_check)
生效配置
exportfs -r
启动nfs服务
systemctl start nfs-server
查看可挂载网段
showmount -e 192.168.200.160
root@huhy:~# showmount -e 192.168.200.160
Export list for 192.168.200.160:
/opt/nfs_share *
root@huhy:~#
centos客户端测试
安装所需软件包
yum install -y nfs-utils
创建挂载目录
mkdir /opt/nfs_client
将服务端挂载到本地/opt/下的目录
mount -t nfs 192.168.200.160:/opt/nfs_share /opt/nfs_client
查看挂载
[root@huhy ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 50G 1.4G 49G 3% /
/dev/mapper/centos-home xfs 46G 33M 46G 1% /home
/dev/sda1 xfs 1014M 151M 864M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
192.168.200.160:/opt/nfs_share nfs4 20G 6.8G 12G 37% /opt/nfs_client
[root@huhy ~]#
测试客户端创建,服务端查看
客户端
touch /opt/nfs_client/hello.txt
服务端
root@huhy:~# ll /opt/nfs_share/
total 8
drwxrwxrwx 2 root root 4096 Nov 3 12:37 ./
drwxr-xr-x 3 root root 4096 Nov 3 12:23 ../
-rw-r--r-- 1 root root 0 Nov 3 12:37 hello.txt
root@huhy:~#
ubuntu一键脚本部署
#!/bin/bash
dir=/opt/nfs_share
ip=192.168.200.0/24
apt install -y nfs-kernel-server
mkdir $dir
chmod 777 $dir
cat >> /etc/exports << eof
$dir $ip(rw,no_root_squash,no_subtree_check)
eof
exportfs -r
systemctl start nfs-server
showmount -e 192.168.200.160