showmount -e 123.0.0.1

两台Linux服务器IP地址分别为:

A:192.168.1.119(服务端)  

B:192.168.1.120(客户端) 

两台机器:

NFS 用到的服务有 portmapper nfs rquotad nlockmgr mountd

通过命令 rpcinfo -p 可查看nfs使用的端口

其中 portmapper nfs 服务端口是固定的分别是 111 2049

另外 rquotad nlockmgr mountd 服务端口是随机的。由于端口是随机的,这导致防火墙无法设置。

这时需要配置/etc/sysconfig/nfs 使 rquotad nlockmgr mountd 的端口固定。

找到以下几项,将前面的#号去掉。

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

然后打开防火墙:
添加端口:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 32803 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT

1.第一步:检查A与B是否已安装NFS

 nfs-utils portmap

#rpm -q nfs-utils portmap

表明NFS安装成功

2.在A机器上建立tt文件夹 /root/tt(作为共享目录)

#mkdir /root/tt

并赋予权限 chmod 777 /root/tt

3.配置服务器A的共享目录

#vi /etc/exports

 并添加

/root/tt  *(rw,async,no_root_squash)

最后保存退出

4. 代码实例:

1)检查是否已安装NFSPortmap,若未安装,则安装。

rpm   -q   nfs-utils portmap

2)停止NFSPortmap

service portmap stop
service nfs stop

  注意:先停portmap,再停nfs.

 (3)A:192.168.1.223服务器创建目录/root/test,并赋予操作权限! 

mkdir /root/test
ls
cd /root/
chmod 777 test


4)配置共享共享目录

打开exports配置

 

并插入共享目录 test注意:最后一行是插入的,前两行是以前做测试用的

 

参数说明:

/root/test: 共享目录地址

*:表明针对所有IP开放,当然如针对单个IP开放可以供IP

rw:可读写权限
 ro:只读权限
 no_root_squash:对于登陆NFS主机的共享目录用户如果是root的话则对该目录具有root权限。这样做极不安全,建议不用为好!
 root_squash:对于登陆NFS主机的共享目录用户使用者如果是root则它的权限将被压缩成匿名使用者,同时它的UID和GID都会变成nobody那个系统账号的身份。
 all_squash:不管登陆NFS主机用户身份如何,它的身份都会被压缩成匿名使用者,通常就是nobody
 anonuid:anonuid=xxx,制定NFS服务器/etc/passwd中匿名用户的UID
 anongid:anonuid=xxx,制定NFS服务器/etc/passwd中匿名用户的GID
 sync:数据在请求时写入共享
 async:NFS在写入数据前可响应请求
 secure:NFS通过1024以下的安全端口发送
 insecure:NFS通过1024以上端口发送
 hide:不共享NFS目录的子目录
 no_hide:共享NFS目录的子目录

最后保存退出

 (1)rw:可读写权限。

(2)ro:只读权限。

(3)no_root_squash:当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。

(4)root_squash;如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限。

(5)all_squash:忽略登录NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody。

(6)anonuid:通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。

(7)anongid:同anonuid,但是变为Group ID。

(8)sync:同步写入资料到内存与硬盘中。

(9)async:资料会先暂存于内存中,而非直接写入硬盘。

5)启动PortmapNSF(目的:为了使配置的共享目录生效)

     service portmap start

     service nfs start

6)为B192.168.1.120创建指向目录 /root/bbb 并赋予权限

      mkdir /root/bbb

      chmod 777 bbb

7mount建立关联

       mount 192.168.1.119:/roottt /root/bb OK就可以了

8)查看结果:

先为B创建一个文件a.txt其结果为:

 cd /root/bb

 touch a.txt

A中也显示:

 a.txt

同理:若在A中添加文件,则在B中也会显示出来


 

(19)NFS开机自启动

chkconfig --level 35 portmap on

chkconfig --level 35 nfs on

 

想要系统在开机时自动挂载,修改/etc/fstab文件

20:开机自动挂载

通过 /etc/fstab 来挂载 NFS 文件系统

/etc/fstab 中每行的一般语法如下所示:
server:/usr/local/pub    /pub   nfs    auto 0  0挂载点 /pub 在客户机器上必须存在