Linux NFS服务器的安装与配置

一,应用环境介绍:

服务器端-->操作系统(centos6.2)-->IP地址(10.168.2.248)

客户端-->操作系统(centos6.2)-->IP地址(10.168.2.249)

二,NFS相关软件的安装:

[root@youxia122 ~]# yum -yinstall portmap nfs*

三,服务器端配置:

       1,创建共享的目录:

    [root@youxia121 data]# mkidr /usr/local/data/

       2,修改NFS配置文件:

    [root@youxia121 data]# vi /etc/exports

     /usr/local/data/ 192.168.2.249(rw,no_root_squash,no_all_squash,sync)

注:配置文件说明:/usr/local/data/为共享的目录,使用绝路径。对192.168.2.249

(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值。

四,启动NFS服务器并进行测试:

1,启动NFS服务器:

[root@youxia121 data]#service portmap start

启动 portmap:[确定]

[root@youxia121 data]#service nfs start

启动 NFS 服务: [确定]

关掉 NFS 配额:[确定]

启动 NFS 守护进程:[确定]

启动 NFS mountd:[确定]

2、服务器端使用showmount命令查询NFS的共享状态:

# showmount –e //默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错

# showmount -a//显示已经与客户端连接上的目录信息

3、客户端使用showmount命令查询NFS的共享状态:

# showmount -e NFS服务器IP

4,在客户端进行测试:

创建需要挂载的目录:

[root@youxia122 local]# mkdir/usr/local/data/

执行挂载命令:

[root@youxia122 local]# mount-t nfs 192.168.2.248:/usr/local/data /usr/local/data  -o proto=tcp -onolock

在客户端创建一个测试文件并进行检查:

[root@youxia122 ~]# cd/usr/local/data/

[root@youxia122 data]# echo"this is a test" >> /usr/local/data/hehehe

[root@youxia122 data]# ll -h

总计 8.0K

-rw-r--r-- 1 root root 1502-23 16:47 hehehe

在服务器端检查:

[root@youxia121 usr]# ll -h/usr/local/data/

总计 8.0K

-rw-r--r-- 1 root root 1502-23 16:47 heheh

5、启动自动挂载nfs文件系统:

格式:

<server>:</remote/export></local/directory> nfs < options> 0 0

# vi /etc/fstab

192.168.2.248:/usr/local/data   /usr/local/data   nfs default  0 0

五,我在配置中遇到的问题:

1,在启动NFS服务器的时候遇到的一个问题如下,原因在于NFS配置文件中地址与权限中间多了一个空格,去掉空格重新启动即可:

[root@youxia121 local]#service nfs restart

关闭 NFS mountd:[确定]

关闭 NFS 守护进程:[确定]

关闭 NFS 服务: [确定]

启动 NFS 服务: exportfs: No options for /usr/local/data/ 192.168.2.249: suggest192.168.2.249(sync) to avoid warning

exportfs: No host name givenwith /usr/local/data (rw,no_root_squash,no_all_squash,sync), suggest*(rw,no_root_squash,no_all_squash,sync) to avoid warning

[确定]

关掉 NFS 配额:[确定]

启动 NFS 守护进程:[确定]

启动 NFS mountd:[确定]

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

[root@youxia122 local]# mount-t nfs 192.168.2.248:/usr/local/data /usr/local/data

mount.nfs: Input/output error

解决方法:mount -t nfs 192.168.2.248:/usr/local/data/usr/local/data  -o proto=tcp -o nolock

六,NFS的端口配置:

看看如何设置可以调节好防火墙和端口的设置。

1.在LINUX上正常安装NFS服务

2.修改/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

3.重起Linux NFS服务

service nfs restart  

chkconfig nfs on

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

#portmap  

-A RH-Firewall-1-INPUT -p udp -m udp --dport111 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport111 -j ACCEPT

#nfsd  

-A RH-Firewall-1-INPUT -p udp -m udp --dport2049 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport2049 -j ACCEPT

#mountd  

-A RH-Firewall-1-INPUT -p udp -m udp --dport1011 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport1011 -j ACCEPT

#rquotad  

-A RH-Firewall-1-INPUT -p udp -m udp --dport1012 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport1012 -j ACCEPT

#rpc.statd  

-A RH-Firewall-1-INPUT -pudp -m udp --dport 32768 -j ACCEPT

-A RH-Firewall-1-INPUT -ptcp -m tcp --dport 32768 -j ACCEPT