目录

[TOC]


不要搞这个nfs,我用了好久才发现所有人都可以访问,多个客户端专门设置ip又麻烦,推荐用nfsv4+Kerberos,但是我看了教程感觉好麻烦,索性直接用现成的rclone+sftp


服务端:


Ubuntu下NFS Server安装配置

Ubuntu安装nfs-server

 apt-get install nfs-kernel-server

centos使用这条命令安装

yum install -y nfs-utils rpcbind

关闭防火墙

sudo ufw disable
systemctl stop firewalld.service

启动rpcbind和nfs并设置开机启动

systemctl start rpcbind.service
systemctl start nfs-server.service
systemctl enable rpcbind.service
systemctl enable nfs-server.service

确认NFS服务器启动成功:

rpcinfo -p

建立nfs专用文件夹,这个文件夹将在第3不配置成为与客户端共享的文件夹

mkdir -p /home/nfs/test

配置nfs

 vim /etc/exports

配置如下:

/home/nfs/ *(async,insecure,no_root_squash,no_subtree_check,rw)

注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:
/home/nfs/:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!
*:允许所有的网段访问,建议改成客户端ip
rw:来访者的权限,rw表示可读写,ro表示只能读取不能修改
async:表示异同步,同步用sync,推荐使用async
root_squash 当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。
no_root_squash: 如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限
如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports)相关选项中mount客户端才能正常工作
no_subtree_check:不检查父目录的权限。

重启nfs服务

/etc/init.d/nfs-kernel-server restart

systemctl restart nfs-kernel-server.service

显示共享出的目录,校验配置是否成功

 showmount -e

本机测试挂载

mkdir -p /mnt/nfs-temp
sudo mount -t nfs 127.0.0.1:/home/nfs /mnt/nfs-temp

如果/mnt/nfs-temp中有文件夹test即说明nfs挂载成功

# root @ mx in /mnt [20:34:34] 
$ ls -la /mnt/nfs-temp
total 12
drwxr-xr-x 3 root root 4096 Apr 29 20:34 .
drwxr-xr-x 3 root root 4096 Apr 29 20:33 ..
drwxr-xr-x 2 root root 4096 Apr 29 20:34 test

# root @ mx in /mnt [20:34:36] 

后面客户端也是使用这条命令挂载

卸载本机测试挂载

umount -l /mnt/nfs-temp

删除本机nfs测试挂载路径

rm -r /mnt/nfs-temp

接下来就可以去客户端挂载了


客户端:


Ubuntu下nfs-client安装和配置

Ubuntu安装nfs

sudo apt-get install nfs-common rpcbind

centos使用这条命令安装

yum install -y nfs-utils rpcbind

启动并设置开机自启

systemctl enable rpcbind.service
systemctl start rpcbind.service

客户端不需要启动nfs服务,只需要启动rpcbind服务.

客户端挂载服务端的目录

mkdir -p /mnt/nfs
sudo mount -t nfs 127.0.0.1:/home/nfs /mnt/nfs

127.0.0.1改成服务端ip

取消挂载用这个指命令

sudo umount /mnt

设置开机自动挂载

4、随系统启动自动挂载

编辑

vim /etc/fstab

追加:

127.0.0.1:/home/nfs /mnt nfs rw,tcp,intr 0 1

umount 报错umount.nfs4: /home/test: device is busy

①lsof

lsof /home/test

然后kill掉查出来的PID,再次尝试umount,看是否可以,不可以的话再试试下面的。

②fuser

fuser -mv /home/test

-v选项会打印出PID,这时候去kill掉或者直接这样:

fuser -kmv /home/test

直接会kill掉,不用再单独kill了。(小心有可能ssh或者其他重要的东西会被停止)
再次尝试umount

Last modification:May 11, 2024
V50%看看实力