NFS,全称是 Network File System,用于在不同的服务器之间建立文件共享的通道,使得从其他服务器上访问共享目录时,就如同访问服务器自己本地的文件夹一样方便,这在分布式系统上得到广泛的应用。比如, k8s 集群,就会采用 NFS 来实现共享存储

在需要开放共享的机器上,启动一个 NFS Server,需要访问共享的机器上,用 NFS Client 挂载共享目录到本地目录上,就能够直接打开本地目录进行读写

在不同操作系统上安装 NFS Server

Mac OS

Mac 默认安装了 NFS Server,使用如下命令检查 nfsd 的启动状况

$ sudo nfsd status

nfsd service is enabled

nfsd is running (pid 19394, 8 threads)

如果没有开启,执行下列指令启动

$ sudo nfsd enable

$ sudo nfsd start

Linux Centos 7

$ yum install nfs-utils -y

Windows 10

安装一个 NFS Server 应用

https://www.hanewin.net/nfs-e.htm

在不同操作系统上设置共享目录

Mac OS

配置共享目录,通过编辑 /etc/exports

$ sudo vi /etc/exports

$ cat /etc/exports

V4: / -sec=sys

/Users/mac/nfs-share -alldirs -maproot=root:wheel -network=192.168.0.0 -mask=255.255.0.0

其中/Users/mac/nfs-share 是要开放共享的目录,默认是可读写,如果只让可读,加入参数 -ro

接下来,依次执行检查配置状态,重启服务,查看挂载状态的指令

# 检查配置状态

$ sudo nfsd checkexports

exports:1: got host/group with no directory?: /Users/mac/nfs-share

# 重启服务

$ sudo nfsd restart

# 查看挂载状态

$ showmount -e

Exports list on localhost:

/Users/mac/nfs-share 192.168.0.0

最后可以看到,已经把刚刚设置的共享目录挂载上去了,接下来本地验证一下

先以客户端的身份检查 IP 地址下的挂载情况

$ showmount -e 192.168.31.103

Exports list on 192.168.31.103:

/Users/mac/nfs-share 192.168.0.0

该 IP 地址下存在一个共享的目录,于是客户端将这个目录挂载到本地的目录上

$ sudo mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.31.103:/Users/mac/nfs-share /Users/mac/demo

没有报错,就表示成功了,通过查看 Finder 中的连接情况,发现已经连接到共享目录

访问挂载到本地的目录,就能直接访问到远程的共享目录

Linux

Centos 上跟 Mac 的操作方式是有一些不同的地方

首次下载 nfs-util 后,需要先重启 rpcbind 服务

$ systemctl restart rpcbind

配置共享目录到 /etc/exports,然后更改共享目录的所有者,并重启 NFS Server 服务

# 编辑共享目录, * 表示共享给所有 IP 的服务器,rw 表示可读写

# 常用的是配置成同一个局域网内的服务器 192.168.1.0/24

$ vim /etc/exports

$ cat /etc/exports

/home/nfs-share *(rw,sync,all_squash)

# 更改共享目录的所有者,nfsnobody 用户组是 nfs-util 安装包创建的

$ chown -R nfsnobody:nfsnobody /home/nfs-share

# 重启服务

$ systemctl restart nfs-server

接下来在客户端上进行连接测试,这里我们就在本地进行,如果在其他的机器,也需要先安装 nfs-util

查看共享服务器上的目录,并挂载 NFS 共享目录到本地目录

# 查看共享目录

$ showmount -e 192.168.1.3

Export list for 192.168.1.3:

/home/nfs-share *

# 挂载共享目录

$ mount -t nfs 192.168.1.3:/home/nfs-share /home/nfs-data

这样访问本地的 /home/nfs-data 即可

Windows 10

启动在上一步安装的 haneWIN NFS Server ,在 Edit-Preferences-Exports 中配置要共享的目录

Windows 10 默认没有安装 NFS Client,需要在控制面板中安装

接下来打开 cmd 命令行窗口,输入挂载命令

> mount 192.168.71.64:/d/test-nfs G:

G: 现已成功连接到 192.168.71.64:/d/test-nfs

命令已成功完成。

这里要注意两点:

书写共享目录路径时,不能写成 Windows 盘符的路径,即:D:\test-nfs,而是参考 NFS Server 中 Exports 界面下的路径,写成 /d/test-nfs,Mac 或者 Linux 访问 Windows 也是如此

Windows 只能挂载到一个未经使用的盘符上,而不是某个具体的目录下,如上图中的 G:

访问任务管理器中的 G 盘,就可以访问到共享目录

mac共享文件夹 linux,一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署相关推荐

  1. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿

    一文搞定 Linux 压缩.解压哪些事儿 Linux 常用的解压和压缩命令如下: 1..tar # 解包 tar xvf FileName.tar # 打包 tar cvf FileName.tar ...

  2. Linux实战教学笔记22:企业级NFS网络文件共享服务

    第二十二节 企业级NFS网络文件共享服务 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载 ...

  3. linux激活输入法,搞定Linux输入法

    搞定Linux输入法 使用Linux有些日子了,一切都还好,唯独不适应的还是输入法问题,一连好些天fictx都不正常工作,需要重启才能切换回中文输入法.今天我彻底失去了耐心,确定重塑它,我将fictx ...

  4. 一文搞定Linux进程和线程(详细图解)

    Linux 进程和线程 本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程.系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文件和 I/O 来说都 ...

  5. 一文搞定 | Linux 网络子系统

    今天分享一篇经典Linux协议栈文章,主要讲解Linux网络子系统,看完相信大家对协议栈又会加深不少,不光可以了解协议栈处理流程,方便定位问题,还可以学习一下怎么去设计一个可扩展的子系统,屏蔽不同层次 ...

  6. 一文搞定 Linux 设备树

    设备树是一种描述硬件的数据结构,它起源于OpenFirmware(OF). 在Linux 2.6中, ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/ma ...

  7. 一文搞定Linux环境下线程编程,这些东西老师也不会教你。(史上最详细的线程攻略)

    一.线程的概念 1.1 什么是线程 线程是一个实体,是CPU调度和分派的基本单元,有时我们也可以称它为轻量级的进程.每个线程都包含有表示执行环境所必须的信息,其中包括标识线程 的线程ID.一组寄存器值 ...

  8. 一文搞定Linux shell脚本编程( 史上最全汇总 )

    目录 Shell是一种脚本语言 第一个Shell脚本 Shell编程语法 Shell变量 字符串 Shell数组 位置参数 内建命令 echo read printf exit test 流程控制 i ...

  9. 一文搞定MAVLINK软件协议

    转载:https://mp.weixin.qq.com/s/iGURlSS7V-5iBCEtgpzT7w 一文搞定MAVLINK软件协议 原创 L君 TBUS社区 2019-11-06 本文纯属资深程 ...

最新文章

  1. Java 字节数组(byte[])和整型(int)的相互转换
  2. 监控程序崩溃重启_第十四章 Homeassistant服务器安全及状态监控(下)
  3. 每天一小时python官方文档学习(五)————数据结构之元组、集合与字典
  4. IDEA快捷键及xml文件中网址报错
  5. Logistic回归的牛顿法及DFP、BFGS拟牛顿法求解
  6. Oracle NetSuite:异军突起的云原生ERP
  7. 给Python初学者的入门课程建议
  8. 对联广告(jQuery)
  9. Oracle GoldenGate 之 Director 监控工具安装和邮箱报警
  10. 路由侠(连接外网工具) v1.0 官方最新版
  11. 基于PLC四层电梯模型控制系统课程设计
  12. Sql中的触发器(Triggers)
  13. Linux登录公开ftp命令,linux下登录ftp, lftp命令详解
  14. BLE蓝牙的连接和配对过程
  15. 两台笔记本一台连接不上wifi
  16. Python计算圆的周长与面积
  17. Gmail邮箱怎么获取授权码?熟悉一下
  18. 华为云 对象存储服务 OBS 上传文件 上传图片 PHP Laravel
  19. WEB开发(7) Hibernate篇(上)
  20. 黑苹果安装界面选择语言

热门文章

  1. mysql二进制安装方法
  2. Minimum Size Subarray Sum 最短子数组之和
  3. Android开发之重力传感器
  4. MPEG文件中什么是GOP
  5. Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案
  6. 解决https无法缓存的问题
  7. java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决
  8. 解决安装YouCompleteMe与Vim版本不兼容问题
  9. 速成pytorch学习——11天. 使用GPU训练模型
  10. ole db 访问接口 sqlncli 无法启动分布式事务_分布式事务,看这篇就够了