linux下配置NFS服务

发布时间:2020-01-24编辑:脚本学堂
介绍:NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机不同操作系统之间可以彼此共享文件。

介绍:NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机不同操作系统之间可以彼此共享文件。由于NFS使用起来非常方便,因此很 快得到了大多数的UNIX/linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC3010标准。

#-------------------------------
使用NFS服务,至少需要启动以下3个系
统守护进程。
(1)rpc.nfsd
(2)rpc.mountd
(3)portmap

NFS服务器端文件系统的共享设置有三种方法
1.直接修改/etc/exports文件
2.用exports命令来增加和删除目录
3.使用图形化的配置方法
NFS客户端配置方法
1.通过mount命令挂载
2.在/etc/fstab中加入条目

exprots文件中每一行提供了一个共享目录的设置,其命令格式为:
<输出目录> [客户端1(选项1,选项2,…)][客户端2(选项1,选项2,…)]
除了输出目录是必选参数外,其他参数都是可选的
注意:格式中的输出目录和客户端之间,客户端与客户端之间都使用空格分隔,但是客户端和选项之间不能有空格

#------------------------------------------------
客户端是指网络中可以访问这个NFS输出目录的计算机,客户端是指定非常灵活,可以是单个主机的IP地址域名,也可以是某个子网或域中的主机等
客户端常用的指定方式 :
客户端                               说明
192.168.16.20                         指定IP地址的主机
192.168.16.0/24(或192.168.16.*) 指定子网中的所有主机
pc1.gdvcp.net             指定域名的主机
*.gdvcp.net                   指定域中的所有主机
*(或缺省)                         所有主机

选项用来设置输出目录的访问权限,用户映射等,在/etc/exports文件中选项,比较多
一般可以分成3类
(1)访问权限选项
*************
用于控制输出目录访问权限的选项
访问权限选项        说明
ro           设置输出目录只读
rw           设置输出目录可读写

(2)用户映射选项
*************
用户映射选项        说明
all_squash           将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(一般均为nfsnobody)
no_all_squash 不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置)
root_squash 将root用户及所属用户组都映射为匿名用户或用户组(默认设置)
no_root_squash    不将root用户及所属用户组都映射为匿名用户或用户组
anonuid=xxx          将远程访问的所有用户都映射为匿名用户,并指定该匿名用户账户为本地用户账户(UID=xxx)
anongid=xxx 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)

(3)常用的其他选项
**************
其他选项比较多,可用于对输出目录进行更全面的控制
其他选项          说明
secure 限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置)
insecure  允许客户端从大于1024的TCP/IP端口连接NFS服务器
sync 将数据同步写入内存缓冲区与磁盘中,虽然这样做效率较低,但可以保证数据的一致性
async  将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay    检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可提高效率(默认设置)
no_wdelay     若有写操作则立即执行,应与sync配合使用
subtree_check 若输出目录是一个子目录,则NFS服务器将检查其父目录的权限(默认设置)
no_subtree_check 即使输出目录是一个子目录,NFS服务器也不检查其父目录的权限,这样做可提高效率

一、 安装
[root@localhost init.d]# cd /media/Fedora 8 i386 DVD/Packages/
[root@localhost Packages]# find . -name "*nfs*"
./nfs-utils-1.1.0-6.fc8.i386.rpm
./nfs-utils-lib-1.1.0-3.fc8.i386.rpm
./system-config-nfs-1.3.32-1.fc8.noarch.rpm
[root@localhost Packages]# find . -name "*portmap*"
系统默认已经安装
[root@localhost Packages]# rpm -q nfs-utils-lib-1.1.0-3.fc8.i386
nfs-utils-lib-1.1.0-3.fc8
[root@localhost Packages]# rpm -q nfs-utils-1.1.0-6.fc8.i386
nfs-utils-1.1.0-6.fc8
[root@localhost etc]# /etc/rc.d/init.d/nfs start
启动 NFS 服务:                                            [确定]
关掉 NFS 配额:                                            [确定]
启动 NFS 守护进程:                                        [确定]
启动 NFS mountd:                                          [确定]
[root@localhost etc]# /etc/rc.d/init.d/nfs stop
关闭 NFS mountd:                                          [确定]
关闭 NFS 守护进程:                                        [确定]
关闭 NFS quotas:                                          [确定]
关闭 NFS 服务:                                            [失败]

二、 配置文件/etc/exports文件
该文件默认为空,没有配置输出任何共享目录,这是基于安全性的考虑,这样即使系统启动NFS服务也不会输出任何共享资源
[root@localhost opt]# cd /
[root@localhost /]# mkdir nfs
[root@localhost /]# cd nfs/
[root@localhost nfs]# mkdir public root users ji
[root@localhost nfs]# ls
ji public root users
[root@localhost nfs]# pwd
/nfs
[root@localhost etc]# vi exports
[root@localhost etc]# more exports
/nfs/public 192.168.1.*(rw,async) *(ro)
/nfs/ji 192.168.1.6(rw,sync)
/nfs/root *.jw.com(ro,no_root_squash)
/nfs/users *.jw.com(rw,insecure,all_squash,sync,no_wdelay)

三、 启动/停止
[root@localhost etc]# /etc/rc.d/init.d/nfs start
启动 NFS 服务:                                            [确定]
关掉 NFS 配额:                                            [确定]
启动 NFS 守护进程:                                        [确定]
启动 NFS mountd:                                          [确定]

[root@localhost etc]# /etc/rc.d/init.d/nfs stop
关闭 NFS mountd:                                          [确定]
关闭 NFS 守护进程:                                        [确定]
关闭 NFS quotas:                                          [确定]
关闭 NFS 服务:                                            [确定]

添加:
1、安装xinetd服务:yum install xinetd
2、关闭防火墙:#/etc/init.d/iptables stop