⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0330nfs.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*</font><br><font size="-1" color="#ffffff" face="SimSun">/home/linux&#160;*.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&#160;&#160;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&#160;</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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Foreign Address&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; State</font><br><font size="-1" face="SimSun"><font color="#ffffff">tcp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:111&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;LISTEN</font><font color="#ff6666"> &lt;==来自 portmap</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">tcp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:817&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;LISTEN</font><font color="#ff6666"> &lt;==来自 rpc.xxxx&#160;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">tcp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:1266&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;LISTEN </font><font color="#ff6666">&lt;==来自 rpc.xxxx</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:2049&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*           </font><font color="#ff6666">&lt;==就是nfs 的 port</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:814&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*           </font><font color="#ff6666">&lt;==来自rpc.xxxx</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:1327&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*          </font><font color="#ff6666"> &lt;==来自rpc.xxxx</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">udp&#160;&#160;&#160;&#160;&#160;&#160;&#160;0&#160;&#160;&#160;&#160;&#160; 0 0.0.0.0:111&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0.0.0.0:*          </font><font color="#ff6666"> &lt;==来自portmap&#160;</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">&#160;&#160;program vers proto&#160;&#160; port</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100000&#160;&#160;&#160; 2&#160;&#160; tcp&#160;&#160;&#160; 111&#160;portmapper</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100000&#160;&#160;&#160; 2&#160;&#160; udp&#160;&#160;&#160; 111&#160;portmapper</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100011&#160;&#160;&#160; 1&#160;&#160; udp&#160;&#160; 1014&#160; rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100011&#160;&#160;&#160; 2&#160;&#160; udp&#160;&#160; 1014&#160; rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100011&#160;&#160;&#160; 1&#160;&#160; tcp&#160;&#160; 1017&#160; rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100011&#160;&#160;&#160; 2&#160;&#160; tcp&#160;&#160; 1017&#160; rquotad</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100003&#160;&#160;&#160; 2&#160;&#160; udp&#160;&#160; 2049&#160; nfs</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100003&#160;&#160;&#160; 3&#160;&#160; udp&#160;&#160; 2049&#160; nfs</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100021&#160;&#160;&#160; 1&#160;&#160; udp&#160;&#160; 1339&#160; nlockmgr</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100021&#160;&#160;&#160; 3&#160;&#160; udp&#160;&#160; 1339&#160; nlockmgr</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100021&#160;&#160;&#160; 4&#160;&#160; udp&#160;&#160; 1339&#160; nlockmgr</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100005&#160;&#160;&#160; 1&#160;&#160; udp&#160;&#160; 1340&#160; mountd</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100005&#160;&#160;&#160; 1&#160;&#160; tcp&#160;&#160; 1271&#160; mountd</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100005&#160;&#160;&#160; 2&#160;&#160; udp&#160;&#160; 1340&#160; mountd</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100005&#160;&#160;&#160; 2&#160;&#160; tcp&#160;&#160; 1271&#160; mountd</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100005&#160;&#160;&#160; 3&#160;&#160; udp&#160;&#160; 1340&#160; mountd</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;&#160;100005&#160;&#160;&#160; 3&#160;&#160; tcp&#160;&#160; 1271&#160; 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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*</font><br><font size="-1" color="#ffffff" face="SimSun">/home/linux&#160;*.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&#160;&#160;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">&lt;==建立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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1K-blocks&#160;&#160;&#160;&#160;&#160; Used Available Use% Mounted on</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hda1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1904920&#160;&#160; 1235380&#160;&#160;&#160; 572776&#160; 69% /</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hdb1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;976344&#160;&#160;&#160; 115212&#160;&#160;&#160; 810736&#160; 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">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1904920&#160;&#160; 1235376&#160;&#160;&#160; 572776&#160; 69% /home/nfs/public</font><font color="#ff6666">&lt;==这个是远程主机的容量</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 + -