NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

安装:

[root@localhost etc]# rpm -qa | grep nfs
nfs-utils-lib-1.1.5-6.el6.i686
nfs4-acl-tools-0.3.3-6.el6.i686
nfs-utils-1.2.3-36.el6.i686

[root@localhost etc]# rpm -qa | grep rpcbind
rpcbind-0.2.0-11.el6.i686
[root@localhost etc]#

以上两个软件如果没有安装,可以用yum,在线安装。

配置:

主要配置文件:/etc/exports
[root@localhost /]# vi /etc/exports
/tmp 192.168.0.0/24(rw)                                        //把“/tmp”共享给192.168.0.0网段(可读)。

/tmp 192.168.0.65(rw,sync,no_root_squash)    //把“/tmp”共享给192.168.0.65(可读可写,同步)。

[root@lzp zjj]# vi /etc/exports
/home/zjj 192.168.46.0/24(rw,sync,no_root_squash)
/home/zjj 192.168.80.0/24(rw,sync,no_root_squash)

其中,192.168.0.0是一个网段
24表示子网掩码为255.255.255.0,因为255.255.255.0转换为二进制是11111111.11111111.11111111.00000000有24个1
表示此IP地址的前24位是网络位
即192.168.0是网络位

[root@localhost etc]# service portmap restart
停止 portmap:[  确定  ]
启动 portmap:[  确定  ]
[root@localhost etc]# service nfs restart    //设置完成后重启服务
关闭 NFS mountd:[  确定  ]
关闭 NFS 守护进程:[  确定  ]
关闭 NFS quotas:[  确定  ]
关闭 NFS 服务: [失败]
启动 NFS 服务: [  确定  ]
关掉 NFS 配额:[  确定  ]
启动 NFS 守护进程:[  确定  ]
启动 NFS mountd:[  确定  ]

[root@localhost etc]# showmount -e    //查看自己共享的服务
Export list for localhost.localdomain:
/tmp 192.168.0.0/24,localhost

[root@localhost tmp]# showmount -a    //显示已经与客户端连接上的目录信息
All mount points on localhost.localdomain:
192.168.0.213:/tmp
================================

客户端连接:

# showmount -e 192.168.0.248    //列出可供使用的NFS
Export list for 192.168.0.248:
/tmp 192.168.0.65,192.168.0.213

# mount 192.168.0.248:/tmp /mnt    //挂载“/tmp”目录到“/mnt”下。

如果在客户端挂载时,提示以下错误,则加上 -o nolock参数.

mount: mounting 192.168.1.101:/home/share on /mnt/hosts failed: Connection refused

则改成:

mount -t nfs -o nolock 192.168.1.101:/home/share /mnt/hosts

===========================================================================

NFS的挂载错误:

# mount 192.168.0.70:/tmp /mnt/tmp

mount:1831-008 放弃:

192.168.0.70:/tmp

vmount: 操作不允许执行。

# nfso -p -o nfs_use_reserved_ports=1

正在将 nfs_use_reserved_ports 设置为 1

正在 nextboot 文件中将 nfs_use_reserved_ports 设置为 1

# mount 192.168.0.70:/tmp /mnt/tmp

# ls /mnt/tmp

===========================================================

二、安装:

NFS的安装配置:
centos 5 : 
yum -y install nfs-utils portmap

centos 6(在CentOS 6.3当中,portmap服务由rpcbind负责) : 
yum -y install nfs-utils rpcbind

三、服务器端配置:

1、创建共享目录: 
[root@centos2 /]# mkdir /usr/local/test

2、NFS文件配置: 
[root@centos2 /]# vi /etc/exports 
#增加一行:
/usr/local/test/ 192.168.1.226(rw,no_root_squash,no_all_squash,sync)

:x保存退出;

使配置生效: 
[root@centos2 /]# exportfs -r

注:配置文件说明:

/usr/local/test/ 为共享的目录,使用绝对路径。
192.168.1.226(rw,no_root_squash,no_all_squash,sync) 为客户端的地址及权限,地址可以是一个网段,一个IP地址或者是一个域名,域名支持通配符,如:*.youxia.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值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。

如果修改了/etc/exports文件后不需要重新激活nfs,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可:

# exportfs [-aruv]

参数说明如下。

(1)-a:全部挂载(或卸载)/etc/exports文件内的设定。

(2)-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。

(3)-u:卸载某一目录。

(4)-v:在export时将共享的目录显示在屏幕上。

3、启动:

centos6:

[root@centos2 /]# service rpcbind start 
Starting rpcbind: [ OK ]
[root@centos2 /]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
[root@centos2 /]#

centos 5 
[root@centos2 /]# service portmap start
[root@centos2 /]# service nfs start
[root@centos2 /]#

四、客户端挂载:

1、创建需要挂载的目录: 
[root@localhost ~]# mkdir /usr/local/test
[root@localhost ~]#

2、测试挂载: 
[root@localhost ~]# showmount -e 192.168.1.225
Export list for 192.168.1.225:
/usr/local/test 192.168.1.226
[root@localhost ~]#

如果显示:rpc mount export: RPC: Unable to receive; errno = No route to host,则需要在服务端关闭防火墙(稍候会详细说)。

3、挂载:

[root@localhost ~]# mount -t nfs 192.168.1.225:/usr/local/test /usr/local/test 
[root@localhost ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.1.225:/usr/local/test on /usr/local/test type nfs (rw,vers=4,addr=192.168.1.225,clientaddr=192.168.1.226)
[root@localhost ~]#

如果信息如上显示则挂载成功!

4、测试:

客户端生成一个文件: 
[root@centos2 /]# cd /usr/local/test/
[root@centos2 test]# echo "hello nfs test">>test
[root@centos2 test]# ll
total 4
-rw-r--r-- 1 root root 15 Apr 9 13:24 test
[root@centos2 test]#

服务端检查: 
[root@centos2 /]# cd /usr/local/test/
[root@centos2 test]# ll
total 4
-rw-r--r-- 1 root root 15 Apr 9 13:24 test
[root@centos2 test]#

挂载成功!

五、解除挂载:

[root@localhost ~]# umount /usr/local/test 
[root@localhost ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
[root@localhost ~]#

如果遇到:umount.nfs: /usr/local/test: device is busy

可能用命令:

[root@localhost /]# fuser -m -v /usr/local/test 
用户 进程号 权限 命令
/usr/local/test/: root 2798 ..c.. bash
root 2996 ..c.. su
[root@localhost /]# kill -9 2798

[root@localhost /]# kill -9 2996

[root@localhost /]# umount /usr/local/test
[root@localhost /]#

六、服务器端防火墙设置(NFS 开启防墙配置):

1、修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)

# Local services 
mountd 1011/tcp #rpc.mountd 
mountd 1011/udp #rpc.mountd 
rquotad 1012/tcp #rpc.rquotad 
rquotad 1012/udp #rpc.rquotad

2、重起Linux NFS服务

service nfs restart

3、此时rpc相关端口已经被固定,可以为Linux NFS添加防火墙规则

#portmap 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p tcp --dport 111 -j ACCEPT 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p udp --dport 111 -j ACCEPT 
#nfsd 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p tcp --dport 2049 -j ACCEPT 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p udp --dport 2049 -j ACCEPT 
#mountd 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p tcp --dport 1011 -j ACCEPT 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p udp --dport 1011 -j ACCEPT 
#rquotad 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p tcp --dport 1012 -j ACCEPT 
/sbin/iptables -A INPUT -s 192.168.1.0/254 -p udp --dport 1012 -j ACCEPT

Centos6.4 NFS的安装与配置的更多相关文章

  1. CentOS7下NFS服务安装及配置固定端口

    CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...

  2. (转)CentOS6.5下Redis安装与配置

    场景:项目开发中需要用到redis,之前自己对于缓存这块一直不是很理解,所以一直有从头做起的想法. 本文详细介绍redis单机单实例安装与配置,服务及开机自启动.如有不对的地方,欢迎大家拍砖o(∩_∩ ...

  3. CentOS6下mysql的安装与配置

    CentOS是免费的.开源的.可以重新分发的开源操作系统,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一. ...

  4. Centos6.5 Openvpn的安装与配置

    一.安装准备 ? 1 2 yum -y install openssl-devel openssl yum -y install gcc gcc-c++ 二.OpenVPN服务端安装过程1.lzo下载 ...

  5. NFS服务安装及配置

    服务器环境:CentOS6.9  Linux 2.6.32-696.el6.x86_64 安装NFS服务 nfs客户端和服务端都只需要安装nfs-utils包即可,并且yum安装时会连带安装rpcbi ...

  6. CentOS7下NFS服务安装及配置

    系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1.3.0-0.48.el7_4.x86_ ...

  7. CentOS6 Squid代理服务器的安装与配置

    代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息.Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一 ...

  8. Linux(CentOS6.4、CentOS6.3)下安装、配置PostgreSQL9.2

    首先,卸载机器上默认安装的PostgreSQL-8.3.x . [root@localhost ~]# rpm -qa | grep postgresql postgresql-jdbc--.el6. ...

  9. [转]Centos6.5使用yum安装mysql—配置MySQL允许远程登录

    一.mysql安装 第1步.yum安装mysql[root@stonex ~]#  yum -y install mysql-server安装结果:Installed:    mysql-server ...

随机推荐

  1. php自定义函数求取平方根

    <?phpfunction sqare($a, $left, $right){ $mid = ($left + $right)/2; if($mid * $mid == $a || (abs($ ...

  2. 解决getElementsByClassName兼容问题

    getElementsByClassName这个方法很常用,但是只有较新的浏览器才兼容,所以我们需要自己写个方法,解决这个问题,使它能够兼容各个浏览器. function getElementsByC ...

  3. Unity5权威讲解

    Photon Cloud 299c7416-a08d-4a23-95a1-e4be108259aa Shooter 视频:https://pan.baidu.com/s/1kVFJ1x9 项目:htt ...

  4. python升级2.7.5

    一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的 ...

  5. lr_save_var() 截取任意字符串长度,以参数形式输出(参数转变量)

    Action() { char * desc=(char *)malloc(10);  //定义指针变量,以变量形式存放截取到的参数值 // char * aa = "jadkshfkasd ...

  6. 【MySQL】查询优化实例解析-延迟关联优化

    [提出问题] 从数据表t通过分页查询的方式读取数据,读取时要根据a1排序.t有80万行记录,当OFFSET很大时,读取速度很慢.优化后查询速度提升很快. 下图是表的定义,一共有几十个字段,RowLen ...

  7. Major and minor numbers

    The major nuber is the driver associated with the device, while the minor number is used by the kern ...

  8. linux安装包资源库

    最近发现了一个很不错的linux的rpm资源库,可以在里面找到rpm安装过程中缺失的资源! 网址:http://pkgs.org/

  9. L3-002. 堆栈

    L3-002. 堆栈 题目链接:https://www.patest.cn/contests/gplt/L3-002 线段树 线段树的数据修改和查询都是O(lgn)的,此题只需维护各个区间内的数的个数 ...

  10. HDU 1335 Basically Speaking(进制转换)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1335 Problem Description The Really Neato Calculator ...