需求:在IP为240服务器,共享访问254服务器中的文件(只读访问)
环境
服务器 ubuntu20.x
客户端
: 服务器240 (访问端): 192.168.0.240
服务端
: 服务器254 (被访问端,被共享端): 192.168.0.254
风.foxwho
安装必须的程序
所有安装修改 全部使用 root 用户权限
服务端 (被访问端,被共享端)
# nfs服务端
apt install nfs-kernel-server -y
# nfs 客户端,如果服务端没有被共享,可以不需要安装
apt install nfs-common
客户端
apt install nfs-common
服务端 (被访问端,被共享端)
配置共享属性
vim /etc/exports
加入或修改内容
/www/wwwroot/www.test.cn 192.168.0.240(ro,sync,no_root_squash,no_subtree_check)
# 多个ip权限
/www/wwwroot/www.test.cn2 192.168.0.240(ro,sync,no_root_squash,no_subtree_check) 172.160.240(ro,sync,no_root_squash,no_subtree_check)
# 192.168.x.x 网段 都可以访问
/www/wwwroot/www.test.cn2 192.168.0.0/24(ro,sync,no_root_squash,no_subtree_check)
# 允许所有ip
/www/wwwroot/www.test.cn2 *(ro,sync,no_root_squash,no_subtree_check)
上面意思是:
/www/wwwroot/www.test.cn
表示共享目录
192.168.0.240
可以被哪些服务器访问,如果是全部都可访问则用*
o,sync,no_root_squash,no_subtree_check
映射选项参数
客户端 常用的指定方式
指定ip地址的主机:192.168.0.240
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主机:www.foxwho.com
指定域中的所有主机:.foxwho.com
所有主机:
访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
参数如下
ro
该主机对该共享目录有只读权限
rw
该主机对该共享目录有读写权限
root_squash
客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash
客户机用root访问该共享文件夹时,不映射root用户
all_squash
客户机上的任何用户访问该共享目录时都映射成匿名用户(nfsnobody)
no_all_squash
与all_squash
取反(默认设置)
anonuid=XXX
将客户机上的用户映射成指定的本地用户ID的用户(UID=xxx)
anongid=XXX
将客户机上的用户映射成属于指定的本地用户组ID (GID=xxx)
sync
资料同步写入到内存与硬盘中,效率低,但可以保证数据的一致性
async
资料会先暂存于内存中,而非直接写入硬盘
insecure
允许从这台机器过来的非授权访问
subtree_check
如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check
和上面相对,不检查父目录权限
wdelay
检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
no_wdelay
如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。若有写操作则立即执行,应与sync配合使用
hide
在NFS共享目录中不共享其子目录
no_hide
共享NFS目录的子目录
secure
NFS通过1024以下的安全TCP/IP端口发送
insecure
NFS通过1024以上的端口发送
重新 刷新配置共享配置文件中的共享目录
exportfs -rv
客户端 访问端
创建挂载目录
mkdir /www/share/test
测试挂载,显示指定的(192.168.0.254 )NFS服务器上export出来的目录
showmount -e 192.168.0.254
输出
Export list for 192.168.0.254:
/www/wwwroot/www.test.cn 192.168.0.240
挂载
mount -t nfs 192.168.0.254:/www/wwwroot/www.test.cn /www/share/test -o nolock
注意:这时候的挂载,在重启服务器后会失效,如果你需要重启服务器后还会生效,请要配置
永久挂载
如果有错误时,可以查看日志
cat /var/log/messages | grep mount
永久挂载
vim /etc/fstab
最后一行,新加入
192.168.0.254:/www/wwwroot/www.test.cn /www/share/test nfs defaults 1 1
取消挂载
umount /www/share/test
如果出现
umount.nfs: /XXX: device is busy
查看占用进程用户
fuser -m -v /XXX/
输出
USER PID ACCESS COMMAND
/home/www/share/test:
root kernel mount /home/www/share/test
root 26641 ..c.. bash
杀死进程
kill -9 26641
一些命令
重启nfs
systemctl restart nfs-server
启动nfs
systemctl start nfs-server
关闭nfs
systemctl stop nfs-server
设置开机启动nfs
systemctl enable nfs-server
查看NFS的运行状态
nfsstat
查看rpc执行信息,可以用于检测rpc运行情况
rpcinfo
显示指定的(192.168.0.254 )NFS服务器上export出来的目录
showmount -e 192.168.0.254
参考
https://blog.csdn.net/lizhou828/article/details/79197848
https://blog.csdn.net/qq_36357820/article/details/78488077