两台服务器ubuntu20.x 直接文件共享,文件挂载 nfs

需求:在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_squashall_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

要在Linux中使用NFS(Network File System)共享文件夹,可以按照以下步骤进行设置: 1. 在两台电脑上安装NFS软件包。在大多数Linux发行版上,可以通过包管理器来安装。例如,在Ubuntu上,可以使用以下命令安装: ``` sudo apt-get install nfs-kernel-server nfs-common ``` 2. 在服务器上创建一个共享文件夹。可以选择一个现有的文件夹或创建一个新的文件夹。假设要共享文件夹是`/home/user/shared`。 3. 编辑NFS服务器的导出文件`/etc/exports`。可以使用文本编辑器进行编辑,例如: ``` sudo nano /etc/exports ``` 4. 在配置文件中添加以下内容: ``` /home/user/shared <client_IP>(rw,sync,no_subtree_check) ``` 将`<client_IP>`替换为允许访问共享文件夹的客户端IP地址。如果要允许多个客户端访问,可以用逗号分隔它们。 5. 保存并关闭文件。 6. 重新加载NFS服务器配置: ``` sudo exportfs -a ``` 7. 在客户端电脑上,安装NFS软件包(如果尚未安装)。 8. 在客户端电脑上创建一个用于挂载共享文件夹的目录。假设要将共享文件挂载到`/mnt/shared`目录。 9. 使用以下命令在客户端上挂载共享文件夹: ``` sudo mount <server_IP>:/home/user/shared /mnt/shared ``` 将`<server_IP>`替换为NFS服务器的IP地址。 10. 现在,你可以在客户端上访问`/mnt/shared`目录,其中包含NFS服务器共享文件夹的内容。你可以在此目录中读取和写入文件。 请注意,为了进行访问,你可能需要在防火墙中允许NFS流量(默认为UDP端口2049)。 这样,你就可以在两台Linux电脑之间使用NFS共享文件夹及其子文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风.foxwho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值