网络文件系统——NFS

NFS:

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

环境:

cnetos7 1708

IP:

192.168.13.1 linux-node1.example.com

192.168.13.2 linux-node2.example.com

nfs 服务搭建的安装包
实现nfs 服务器搭建(确保开机自启动)

ps:主要进程:

nfsd:2049端口 注册实现nfs服务。

mountd: 实现挂载,半随机端口,nfs提供。

nfs 的配置文件 /etc/exports

配置文件简单格式
showmount 查看共享的目录 ip:nfs-server的ip

客户端:

192.168.13.2 linux-node2.example.com

客户端需要安装nfs-utils

客户端同样可以查看
mount 挂在使用
权限限制为只读

修改配置文件,在不重启服务的情况下读取配置文件:

exportfs的使用相当于reload(-r 导出所有的文件系统)
ps: -u 取消所有导出的文件系统
查看是否生效

文件系统导出属性:

ro:只读

rw:读写

sync:同步

async:异步

root_squash:将root用户映射为来宾账号(默认开启)

no_root_squash:保留管理员权限

all_squash:无论什么转换为来宾账号

anonuid,anongid:指定来宾账号的UID和GID

服务器端创建linux_node1 用户授权并且赋予权限
客户端创建相同uid gid 不同的用户客户端显示linux_node2
服务器端显示为linux_node1
客户端切换为root 没有权限删除文件
创建nfstest用户,指定为来宾用户
此时用户为510 才有写权限

实现开机自动挂在:

标准添加

mountd 开随机端口进行提供服务,如果占用3360 或者使用的端口,将影响改服务的使用。

编辑配置文件,固定mountd,使用的端口
此时mountd 为固定端口892

PS:

由于业务需求,需要在windows 使用NFS:

这里以win7系统为例。

第一步,我们需要安装一个工具。

点击开始 -> 控制面板。

点击“程序”。

点击“打开或关闭windows功能”。

勾选上“基于unix的应用程序子系统”和展开NFS服务,勾选“NFS客户端”和“管理工具”然后点确定。

点击确定。等待安装完成之后,窗口会自动关闭。

这时我们按下win + r,打开运行界面:输入cmd进入命令提示符。

输入 mount -h

没有提示错误即可用。

我这边的nfs共享目录是nfs服务器的/home/pi/Server文件夹。

那么,我们输入命令mount \\NFS的IP地址或者主机名\nfs目录名 挂载点

例如我这边就是:mount \\192.168.1.4\home\pi\Server x:

输入该命令后按回车。提示成功即可。

这时我们可以按下win + e打开计算机资源管理器。可以看到,我们挂载的X盘确实存在,我们进去看看。

那么如何取消挂载呢?

我们只要”umount  挂载点”即可断开啦。

例如:umount x:

这样就可以取消挂载了。

虽然挂载了还是存在权限问题无法访问:

使用mount命令可以查看到如下状态:

我们可以看到UID=-2由于在存储设备上共享出来的NFS文件系统归属于root权限,且无法修改该所属用户,而Windows通过UID=-2的用户去写,肯定写不进去。

通过修改注册表将windows访问NFS时的UID和GID改成0即可,步骤如下

1、在运行中输入regedit,打开注册表编辑器;

2、进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default条目;

3、选择新建----QWORD值,新建AnonymousUid,AnonymousGid两个值,值为0.

大功告成,重启计算机,重新mount。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏lgp20151222

MySQL中UTF8编码的数据在cmd下乱码

其实,原因是cmd用gbk的格式来显示数据,那么我们只需要将utf-8存储的数据用gbk的格式输出到cmd即可。

1164
来自专栏菩提树下的杨过

使用GoogleAPI加载各种js框架

很多人(包括我)都喜欢把主流的javascript框架(比如jQuery),放到自己服务器上,其实还有更好的选择。 http://code.google.com...

20010
来自专栏Python小屋

Python实现本机网络流量监视器

本文要点在于Python扩展库psutil提供的方法net_io_counters()可以查看本机网络收发包和流量情况,稍加封装就可以实现流量监视器。 impo...

3986
来自专栏Laoqi's Linux运维专列

rsync 服务方式连接

rsync扩展 : 通过后台服务的方式: 在远程主机上建立一个rsync服务器,将本机作为rsync的客户端。(通常的表现方式为在后面添加 :: ) rsync...

39410
来自专栏葡萄城控件技术团队

如何在ASP.NET中生成HTML5离线Web应用

传统的Web应用程序有一个很大的症结是当用户的网络连接不好时,应用会加载失败,为了 解决这一问题,HTML5中引入了Web的离线工作的功能。离线功能使得Web应...

2236
来自专栏各种机器学习基础算法

开发服务器安全加固

目的 防范因为主机没有加固,造成储存在开发服务器中的源代码和测试数据被黑客获取。 范围 本规范适合于开发服务器安全加固配置。 MYSQL 1. 下载位置 MyS...

5278
来自专栏黑泽君的专栏

Java中不同包下类与类之间的访问

Java中不同包下类与类之间的访问 (1)我们多次使用一个带包的类,都需要加包的全路径,非常的麻烦,这个时候,Java就提供了导包的功能,提供了一个关键字im...

5612
来自专栏腾讯云安全的专栏

nginx安全配置小技巧

2304
来自专栏Java编程技术

Spring之配置项管理小结

正如webx框架文档里面所说,在一个应用中我们总是会遇到一些参数,例如:数据库服务器IP地址、端口、用户名;这些参数有一个共性,那就是:它们和应用的逻辑无关,只...

801
来自专栏散尽浮华

Gitlab上采用rpm方式快速安装的操作记录

之前梳理了一篇Gitlab的安装CI持续集成系统环境---部署Gitlab环境完整记录,但是这是bitnami一键安装的,版本比较老。下面介绍使用rpm包安装G...

2535

扫码关注云+社区

领取腾讯云代金券