CentOS 7  安装配置 NFS

环境

nps 192.168.1.97

client 192.168.1.98

一、yum 安装

yum -y install nfs-utils rpcbind

nfs 的配置文件 /etc/expots

默认为空

vi /etc/exports

/opt/test/ 192.168.1.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

二、使配置生效

exportfs -r

注:配置文件说明:

/opt/test 为共享目录

192.168.1.0/24  可以为一个网段,一个IP,也可以是域名,域名支持通配符 如: *.qq.com

rw:read-write,可读写;

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,可以在此处自行设定。

anongid:匿名用户的GID值。

三、启动 nfs

service rpcbind start

service nfs start

chkconfig rpcbind on

chkconfig nfs on

四、客户端挂载:

showmount -e 192.168.1.97            #查看可挂载

Export list for 192.168.1.97:

/opt/test          192.168.1.0/24

客户端挂载

mount -t nfs 192.168.1.97:/opt/test /mnt

无提示 既为成功

客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:

mount -t nfs 192.168.1.97:/opt/test /mnt -o proto=tcp -o nolock

------------------------------------------------------以上来自linux.it.net.cn

PS:报错:mount.nfs: access denied by server while mounting

这两天在搭建嵌入式开发环境,配置好NFS服务器后,遇到了一个很纠结的错误
使用 mount -t nfs 127.0.0.1:/home/lzgonline/rootfs /mnt 和 mount -t nfs 192.168.1.9:/home/lzgonline/rootfs /mnt 本机挂载nfs则没有问题,然而使用 mount -t nfs 192.168.3.12:/home/lzgonline/rootfs /mnt 时却出现了问题,导致开发板无法通过nfs挂载启动,其中192.128.3.12 和 192.128.1.9(即nfs服务器)之间建立了映射(DMZ)关系。
mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs
百度、谷歌了很久,大部分都说是权限设置有问题,其实文件夹权限都设为777了,权限上都没问题,hosts.deny和hosts.allow都保留默认设置,防火墙也关了,该设置的都设置了,但还是被拒绝,很是郁闷,就在一筹莫展的时候,通过查看一些linux技术论坛后逐渐找到了问题所在。
首先使用命令查看出错日志文件
[root@lzgonline init.d]# cat /var/log/messages | grep mount
Jun
29 00:49:04 lzgonline mountd[1644]: refused mount request from
192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1689
Jun
29 00:51:02 lzgonline mountd[1644]: refused mount request from
192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs):
illegal port 1710
Jun 29 01:02:17 lzgonline mountd[1644]: refused
mount request from 192.168.3.12 for /home/lzgonline/rootfs
(/home/lzgonline/rootfs): illegal port 1916
Jun 29 01:09:51 lzgonline
mountd[1644]: refused mount request from 192.168.3.12 for
/home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2157
Jun
29 01:17:02 lzgonline mountd[1644]: refused mount request from
192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs):
illegal port 2318
 
从出错日志可以看出,mount.nfs: access
denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs
被拒绝的原因是因为使用了非法端口,功夫总没白费,终于在一个linux技术论坛上找到了答案:

I googled and found that since the port is over 1024 I needed to add the "insecure" option to the relevant line in /etc/exports on the server. Once I did that (and ran exportfs -r), the mount -a on the client worked.

//如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports)相关选项中mount客户端才能正常工作:

查看 exports 手册中关于 secure 选项说明也发现确实如此

[root@lzgonline init.d]# man exports

secure,This 
option requires that requests originate on an Internet port less than
IPPORT_RESERVED (1024). This option is on by default. To turn it off,
specify insecure.

//secure 选项要求mount客户端请求源端口小于1024(然而在使用 NAT 网络地址转换时端口一般总是大于1024的),默认情况下是开启这个选项的,如果要禁止这个选项,则使用 insecure 标识

修改配置文件/etc/exports,加入 insecure 选项

/home/lzgonline/rootfs  *(insecure,rw,async,no_root_squash)

保存退出

然后重启nfs服务:service nfs restart

-------------------------以上来自http://liuzhigong.blog.163.com/blog/static/17827237520115305226932/

实际使用时,在message中没有看到 illegal port 相关日志。 但是加入 insecure配置后,问题解决

最新文章

  1. BZOJ 4614 【Wf2016】 Oil
  2. Leetcode-206 Reverse Linked List
  3. android 调用系统的音乐和视频播放器
  4. Linux 传输文件
  5. js中比较实用的时期格式化
  6. 在Myeclipse中配置Maven
  7. C开发基础--函数调用栈
  8. iOS - UIColor
  9. C#运算除法和求整
  10. linux下格式化硬盘与挂载硬盘
  11. 用户登录密码RSA加密后传输的实现,非明文密码传输
  12. MySQL 线上配置文件
  13. Seinfeld(栈模拟)
  14. 【linux】 linux gpio操作
  15. hdu 3006 The Number of set
  16. Javascript常见浏览器兼容问题
  17. DDD领域模型数据访问权限(九)
  18. 【NMS与IOU代码】
  19. demoshow - webdemo展示助手
  20. Nullable<T>、Nullable、null、?修饰符的区别

热门文章

  1. ZC_01_获取Class对象
  2. yii2:多表查询
  3. Windows下下载及安装numpy、pandas及简单应用
  4. Docker 应用实例
  5. spring boot MongoDB的集成和使用
  6. linux rpm命令安装卸载 初步使用
  7. 012——VUE中todos示例讲解class中应用表达式
  8. 如何拿到半数面试公司Offer——我的Python求职之路(转载)
  9. QListWidgetItem的图片大小问题
  10. Andriod部分手机频繁闪退,vivo y55a等,Skipped 62 frames! The application may be doing too much work on its main thread