📄 0330nfs.htm
字号:
Client 所连上来的使用目录状态</font><br><font size="-1" color="#ffffcc" face="SimSun">-e :显示 hostname这部机器的 /etc/exports 里面的分享目录!</font><br><font size="-1" color="#ffffcc" face="SimSun">范例:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">showmount -e localhost</font></font><br><font size="-1" color="#ffffff" face="SimSun">Export listfor localhost:</font><br><font size="-1" color="#ffffff" face="SimSun">/tmp        *</font><br><font size="-1" color="#ffffff" face="SimSun">/home/linux *.linux.org</font><br><font size="-1" color="#ffffff" face="SimSun">/home/public(everyone)</font><br><font size="-1" color="#ffffff" face="SimSun">/home/test  192.168.0.100</font></td></tr></tbody></table><font color="#000000">很简单吧!所以,当您要扫瞄某一部主机他提供的 NFS分享的目录时,就使用 showmount -e IP(或hostname)即可!非常的方便吧!</font></ul></ul><ul><ul><li><a name="NFS_server_ports"></a><font color="#000099">观察启动的 port number:</font></li><br><font color="#000000">OK!来看看我们启动 NFS 之后,到底启动了多少的port 呢?要注意的是,我们有启动 portmap 与 nfs 两支 scripts 喔!</font><table bgcolor="#000000" border="1" cols="1" width="700"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]#</font><font color="#ffff00"> netstat -utln </font></font><br><font size="-1" color="#ffffff" face="SimSun">Active Internetconnections (only servers)</font><br><font size="-1" color="#ffffff" face="SimSun">Proto Recv-QSend-Q Local Address          Foreign Address         State</font><br><font size="-1" face="SimSun"><font color="#ffffff">tcp       0      0 0.0.0.0:111            0.0.0.0:*              LISTEN</font><font color="#ff6666"> <==来自 portmap</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">tcp       0      0 0.0.0.0:817            0.0.0.0:*              LISTEN</font><font color="#ff6666"> <==来自 rpc.xxxx </font></font><br><font size="-1" face="SimSun"><font color="#ffffff">tcp       0      0 0.0.0.0:1266           0.0.0.0:*              LISTEN </font><font color="#ff6666"><==来自 rpc.xxxx</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp       0      0 0.0.0.0:2049           0.0.0.0:* </font><font color="#ff6666"><==就是nfs 的 port</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp       0      0 0.0.0.0:814            0.0.0.0:* </font><font color="#ff6666"><==来自rpc.xxxx</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp       0      0 0.0.0.0:1327           0.0.0.0:* </font><font color="#ff6666"> <==来自rpc.xxxx</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp       0      0 0.0.0.0:111            0.0.0.0:* </font><font color="#ff6666"> <==来自portmap </font></font></td></tr></tbody></table>注意看到上面喔!总共产生了好多的 port 喔!真是可怕!先注意到 nfs 自己所开启的port ,就是那个 2049 的 port 啦!那个就是 NFS 主要产生的 port 啰。那么其它的rpc.xxxx 的 port 又是从何而来? NFS server 在前面我们就提过了,他是 RPCserver 的一种,而 NFS 由于提供了多个 program ( 例如 rpc.mountd, rpc.rquotad,rpc.nfsd... ) ,因此就需要启动多个 port 了!而且这些 port 是『随机产生的』,也就是那个port number 不会是固定的啦!每次 restart nfs 都会得到不一样的 port number呢!那么 Client 端怎么知道要连接上那个 port 来呼叫需要的 program 呢?呵呵!那就是sunrpc ( port 111 ) 那个 portmap 服务所产生的 port number 的功用啦!Client会先连接到 sunrpc 那个 port 去知道应该到那个 port 去呼叫所需要的程序!所以啰,rpc.xxxx 等之类的 daemon 自然就不需要有固定的 port number 啰!</ul></ul><ul>OK!这样一来, Server 端的设定就 OK 啦!<br> <br><hr width="100%"><a name="NFS_server_RPC_comm"></a><font color="#000099">RPCserver 的相关指令:</font><br> <br>好了,既然我们知道这个 NFS 其实使用的是 RPC 这个咚咚,所以当然要知道RPC 的每个 port 在干什么呀!这个时候,就不能不知道 rpcinfo 这个指令了!先来谈一谈这个指令的用法吧!<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">语法:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">rpcinfo [-p] hostname(orIP)</font></font><br><font size="-1" color="#ffffcc" face="SimSun">-p :显示所有的port 与 program 的信息!</font><br><font size="-1" color="#ffffcc" face="SimSun">范例:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">rpcinfo -p test.linux.org</font></font><br><font size="-1" color="#ffffff" face="SimSun">  program vers proto   port</font><br><font size="-1" color="#ffffff" face="SimSun">   100000    2   tcp    111 portmapper</font><br><font size="-1" color="#ffffff" face="SimSun">   100000    2   udp    111 portmapper</font><br><font size="-1" color="#ffffff" face="SimSun">   100011    1   udp   1014  rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">   100011    2   udp   1014  rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">   100011    1   tcp   1017  rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">   100011    2   tcp   1017  rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">   100003    2   udp   2049  nfs</font><br><font size="-1" color="#ffffff" face="SimSun">   100003    3   udp   2049  nfs</font><br><font size="-1" color="#ffffff" face="SimSun">   100021    1   udp   1339  nlockmgr</font><br><font size="-1" color="#ffffff" face="SimSun">   100021    3   udp   1339  nlockmgr</font><br><font size="-1" color="#ffffff" face="SimSun">   100021    4   udp   1339  nlockmgr</font><br><font size="-1" color="#ffffff" face="SimSun">   100005    1   udp   1340  mountd</font><br><font size="-1" color="#ffffff" face="SimSun">   100005    1   tcp   1271  mountd</font><br><font size="-1" color="#ffffff" face="SimSun">   100005    2   udp   1340  mountd</font><br><font size="-1" color="#ffffff" face="SimSun">   100005    2   tcp   1271  mountd</font><br><font size="-1" color="#ffffff" face="SimSun">   100005    3   udp   1340  mountd</font><br><font size="-1" color="#ffffff" face="SimSun">   100005    3   tcp   1271  mountd</font></td></tr></tbody></table> <br>这样就可以知道每个 port number 所对应的 program 啰!您也就知道这个RPC server 提供给您的 program 是什么了!当然了,要让这个 rpcinfo 可以正确的动作,您的portmap 得真的动起来才行吶!加油啰!</ul><hr width="100%"><a name="NFS_client"></a><font size="+1" color="#000099">Client端的设定:</font><ul><b><font color="#000066">挂载远程主机</font></b>:<br>好了, Server 端已经设定完毕,接着下来自然就是要使用 Client 端连接上Server 端啰!那么连接上 Server 的步骤是怎样呢?</ul><ul><ol><li><font color="#000066">扫瞄可以使用的 Server 目录;</font></li><li><font color="#000066">在 Client 本地端建立 mount point;</font></li><li><font color="#000066">使用 mount 将远程主机分享的目录挂载进来;</font></li><li><font color="#000066">可能发生的问题解决(被防火墙挡掉了!?)。</font></li></ol></ul><blockquote>OK啦!所以我们得先知道一下我们的主机里面有什么?假设我的主机名称是test.linux.org ,那么我要知道里头有些什么藉由 NFS 分享出来的目录,就给他showmount 一下啰!<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">showmount -e test.linux.org</font></font><br><font size="-1" color="#ffffff" face="SimSun">Export listfor localhost:</font><br><font size="-1" color="#ffffff" face="SimSun">/tmp        *</font><br><font size="-1" color="#ffffff" face="SimSun">/home/linux *.linux.org</font><br><font size="-1" color="#ffffff" face="SimSun">/home/public(everyone)</font><br><font size="-1" color="#ffffff" face="SimSun">/home/test  192.168.0.100</font></td></tr></tbody></table> <br>然后呢?假设我要将 /home/public 挂载在我的 /home/nfs/public 底下,那么我就得先有这个目录才行呀!然后再利用mount 这个指令来挂载 /home/public 这个目录!有点像这样:<br> <table bgcolor="#000000" border="1" cols="1" width="700"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">mkdir -p /home/nfs/public </font><font color="#ff6666"><==建立public 这个目录,加 -p 可以持续增加目录</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">mount -t nfs test.linux.org:/home/public/home/nfs/public</font></font><br><font size="-1" color="#ff6666" face="SimSun">挂载的格式:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">mount -t nfs hostname(orIP):/directory/mount/point</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">df</font></font><br><font size="-1" color="#ffffff" face="SimSun">Filesystem          1K-blocks      Used Available Use% Mounted on</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hda1             1904920   1235380    572776  69% /</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hdb1              976344    115212    810736  13% /backup</font><br><font size="-1" color="#ffffff" face="SimSun">test.linux.org:/home/public</font><br><font size="-1" face="SimSun"><font color="#ffffff">                      1904920   1235376    572776  69% /home/nfs/public</font><font color="#ff6666"><==这个是远程主机的容量</font></font></td></tr></tbody></table> <br>先注意一下挂载 NFS 档案的格式范例喔!呵呵!这样就可以将数据挂载进来啦!请注意喔!以后,只要您进入您的目录/home/nfs/public 就等于到了 test.linux.org 那部远程主机的 /home/public那个目录中啰!很不错吧!那么如何将挂载的 NFS 目录卸载呢?就使用 umount啊!<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">umount /home/nfs/public</font></font></td></tr></tbody></table> <br><b><font color="#000066">可能发生的问题</font></b>:<br>通常无法挂载的原因有底下这几个:<ol><li>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -