Bendi新闻
>
一篇干货满满的 NFS 文章

一篇干货满满的 NFS 文章

8月前

一篇干货满满的 NFS 文章

目录

  • NFS

    • Windows 2008 server安装NFS Client所需软件

    • Win10 安装 NFS client

    • 5.1 NFS root 用户挂载但普通用户无写入权限。

    • 5.2 网络错误 53 内容一

    • 5.3 网络错误 53 内容二

    • 5.4 网络错误 53 内容三

    • 5.5 网络错误 53 内容四

    • 5.6 网络错误 53 内容五

    • NFS 指定端口

    • 1. 安装

    • 2. 配置

    • 3. 启动并添加到开机自启

    • 4. NFS 客户端挂载

    • 5 报错与解决办法

    • 6. Win 系统安装 NFS client


NFS

1. 安装

yum install nfs-utils  -y

2. 配置

主要配置文件: /etc/exports

示例配置:

/nfsfile 192.168.10.*(rw,sync,root_squash)
  • /nfsfile 表示 共享的目录,注意该目录的权限,如果我们设置好了其他的内容时,访问还是报错的话,我们可以试着将该目录的权限设置为 777。

  • 192.168.10.* ,指定 IP 允许访问,我们可以设置我们需要访问的客户端 IP 或者网段,不限制的话设置为 *

  • (rw,sync,root_squash)

    参数作用
    ro只读
    rw读写
    root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
    no_root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
    all_squash无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
    sync同步,同时将数据写入到内存与硬盘中,保证不丢失数据
    async异步,优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
    anonuid匿名用户ID
    anongid匿名组ID

    请注意,NFS客户端地址与权限之间没有空格。

NFS 指定端口

# 查看基础信息
[root@djx ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 36449 nlockmgr
100021 3 udp 36449 nlockmgr
100021 4 udp 36449 nlockmgr
100021 1 tcp 40638 nlockmgr
100021 3 tcp 40638 nlockmgr
100021 4 tcp 40638 nlockmgr
#指定 mountd 端口
[root@djx ~]# [root@mail test]# grep "PORT" /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
# 上面的这些配置,原本默认是注释的,我们需要将# 去除,开启配置。然后我们 还需要在防火墙开启端口111和2049的tcp/udp,开启 tcp 端口 2020、662、892、32803,开启 udp 端口 32769
[root@djx ~]# firewall-cmd --add-port={111/tcp,111/udp,2049/tcp,2049/udp,32769/udp,2020/tcp,662/tcp,892/tcp,32803/tcp} --permanent
[root@djx ~]# firewll-cmd --reload
[root@djx ~]# systemctl restart nfs-server
[root@djx ~]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 49166 status
100024 1 tcp 58683 status
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr

我看到有些文章说还需要加配置 RQUOTAD_PORT ,但是我没有加该配置,也是可以的,我看 /etc/sysconfig/nfs 文件里面也是没有这个配置的,所以没有加,也可能是版本不一样,我的环境是 CentOS Linux release 7.4.1708 , nfs 版本为:nfs-utils-1.3.0-0.61.el7.x86_64

3. 启动并添加到开机自启

由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。

[root@djx ~]# systemctl restart rpcbind
[root@djx ~]# systemctl enable rpcbind
[root@djx ~]# systemctl restart nfs-server
[root@djx ~]# systemctl enable nfs-server

4. NFS 客户端挂载

NFS客户端的配置步骤也十分简单。先使用showmount命令(以及必要的参数,见下表)查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

showmount命令中可用的参数以及作用

参数作用
-e显示NFS服务器的共享列表
-a显示本机挂载的文件资源的情况NFS资源的情况
-v显示版本号
[root@djx ~]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile 192.168.10.*

然后在NFS客户端创建一个挂载目录。使用 mount 命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。

[root@linuxprobe ~]# mkdir /nfsfile
[root@linuxprobe ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile

挂载成功后就应该能够顺利地看到在执行前面的操作时写入的文件内容了。如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:

[root@linuxprobe ~]# cat /nfsfile/readme
welcome to linuxprobe.com
[root@linuxprobe ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

5 报错与解决办法

5.1 NFS root 用户挂载但普通用户无写入权限。

最近在使用 NFS 的过程中遇到了这样的问题,就是我们挂载好共享的文件后(挂载只能 root 用户进行挂载),我们用普通用户来对挂载的目录进行创建文件是发现会报错的,会提示权限不足。

这个问题的解决办法是 :通过设置 anonuid=0和 anongid=0 和 all_squash。这个设置实现了无论NFS客户端使用什么账户访问,均映射为NFS服务器的 id 为 0 的用户,也就是 root 用户。这样普通用户也会有权限在该目录下面创建文件的权限,并且创建的文件的所有者是属于 root 的。

扩展:当我们在客户端和服务端有相同的用户,而且 id 一致的时候,我们可以 设置 anonuid 为一致的 id。,这样我们创建文件的所有者就是 该 id 的所对应的用户了。注意需要 id 一致哦。

5.2 网络错误 53 内容一

window连接linux nfs服务器 —— 网络错误 53

需要修改配置 ,增加参数:insecure

5.3 网络错误 53 内容二

针对的是 windows 2008 server作为客户端mount的时候

如果我们设置为上面的内容后,发现连接的时候还是报 53的错误。我们可以进行下面的第二步设置。

在 配置文件 /etc/exports 设置读写权限的时候 设置参数 no_root_squash,不设置这个不行。

更改配置后需要重启 nfs server 。

systemctl start nfs-server

5.4 网络错误 53 内容三

我们映射的目录权限最好为 777 ,否则可能访问不到。

5.5 网络错误 53 内容四

客户端进行 mount 路径有误。看下面示例:

例如映射的 目录是 /home ,那么 mount 的命令是 :

mount  \\192.168.1.23\home  X:\

例如映射的 目录是 /home/test ,那么 mount 的命令是 :

mount  \\192.168.1.23\home/test  X:\

注意多级目录后面就不是使用 \ 而是用 / 。

5.6 网络错误 53 内容五

映射为本地的磁盘时,我们要选择我们没有使用的磁盘符。选用 X、Y、W等这些平常一般不使用的盘符号。

6. Win 系统安装 NFS client

Windows 2008 server安装NFS Client所需软件

通过Server Manager,

1.添加角色,选中File Services,然后按照向导提示安装。

2.添加Features,安装Remote Server Administration Tools/Role Administration Tools/File Services Tool/Services for Network File System Tools

需要安装Services For Network File System

然后运行Services For Network File system,启动client for NFS

Win10 安装 NFS client

链接:https://www.cnblogs.com/operationhome/p/11700700.html

版权归原作者所有,侵删)


微信扫码关注该文公众号作者

来源:马哥Linux运维

相关新闻

弧形垭口门洞如何选?一篇文章告诉你答案!【装修干货】一篇关于投资方向、企业价值、创业的干货合集谷歌万字长文 | 改变你职业生涯的一篇文章:我如何运用人工智能完成工作!建议每人都读一遍2024年中预测:证券行业下半年6个最新趋势,干货一篇看透!老板偷偷让儿子看的一篇文章:这就是人性!关于《反犹主义意识法案》梳理的最清晰的一篇文章老板偷偷让儿子看的一篇文章——只有规则和制度,才能让人性的阴暗无处发挥数学思维究竟在哪里?——这又是一篇砸人饭碗的文章大J,能写一篇校园霸凌的文章么,学校有孩子从4楼跳下去了……一篇文章暖了无数留学生的心,引发强烈共鸣:留学不是为了回本的!daycare、preschool、kindergarten、pre-k傻傻分不清楚?一篇文章带你了解美国的教育体制不吹不黑,一篇文章说清英国二手房的利与弊绝了!某985院校医学博士靠ChatGPT,1天完成了一篇sci!(附免费干货)基础模型、长文本、数据库、应用落地……一篇文章读懂今天大模型行业的关键问题丨2024 GDC把CPU干烧的3个儿童看牙补贴一篇看懂:安省微笑计划更新收入要求最后一周!COSTCO八月折扣进入尾声阶段,一篇文章带你查缺补漏,近一月特惠福利推荐!手握5篇SCI的过来人告诉你,太老实是发不了文章的今天的文章信息量极大……原来文章的idea都是这么找的?这方法简直“ 杀疯了 ”!这篇说疫苗致死的文章是不实信息IF>3!用别人的文献发自己的文章,原来除了生信,还能用它快速发文!(含教程)江小涓:在人工智能国际顶刊的文章发表数上,2016年起中国企业的文章发表超过了高校;产业界顶级的科学家向高校回流与时代趋势不符完了!美国经济危机要来了吗?要做什么准备?一篇文章告诉你现状~美国经济危机要来了吗?要做什么准备?一篇文章告诉你现状~
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。