linux NFS 配置步骤
2010-03-20 15:57
162 查看
1.
什
么是 NFS(Network FileSystem)
NFS
就
是 Network FileSystem
的缩写,最早之
前是由 Sun
所发展出来的。他最大的功
能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案
(
share file )
,所以,也可以简单的把他看做是一个 file server
呢!这个 NFS
Server
可以让你的 PC
来把网络远程的 NFS
主
机分享的目录,挂载到本地端的机器当中,所以,
在本地端的机器看起来,那个远程主机的目录就好象是自己的 partition
一般!
虽然 NFS
有属于自己的协议与使用的 port number
,
但是在资料传送或者其它相关讯息
传递的时候, NFS
使用的则是一个称为远程过程调用(
Remote Procedure Call, RPC )
的
协议来协助 NFS
本身的运作!
2.RPC
当我们在使用某些服务来进行远程联机的时候,有些信息,例如主机的 IP
、服务的 port
number
、
与对应到的服务之 PID
等等,都需要管理与对应!这些管
理 port
的对应与服
务相关性的工作,就是这个 Remote Procedure Call, RPC
的任务了
NFS
本
身的服务并没有提供资料传递的协议,但是 NFS
却能让我
们进行档案的分享,这
其中的原因,就是 NFS
使用到一些其它相关的传输协议!而这些传输的协议,就是使用
到这个所谓的 RPC
的功能 !这也就是说, NFS
本
身就是使用 RPC
的一个 program
就
是了!说的更白话一点, NFS
也可以视作是一个 RPC
server
啦!同时要注意到的是,
在某些状况中,不但跑 NFS
的 Server
需
要激活 RPC
的服务,连带的,要挂载 NFS
partition
的 Client
机器,也需要同步激活 RPC
才行!这样 Server
端与 Client
端才
能藉由 RPC
的协议来进行 program port
的
对应喔!NFS
主要在管理分享出来的目录,
而至于资料的传递,就直接把他丢给 RPC
的协议来运作就是了!
3.NFS
激活的 RPC daemons
rpc.nfsd
:
这个 daemon
主要的功能就是在管理 Client
是否能够登入主机的权限啦,其
中还包含这个登入者的 ID
的判别
rpc.mountd
:
这个 daemon
主要的功能,则是在管理 NFS
的档案系统!当 Client
端顺利
的通过 rpc.nfsd
而登入主机之后,在他可以使用 NFS server
提
供的档案之前,还会经
过档案使用权限 (
就是那个 -rwxrwxrwx
与
owner, group
那几个权限啦 )
的认证程序!
他会去读 NFS
的设定档 /etc/exports
来比
对 Client
的权限,当通过这一关之后,
Client
就可以取得使用 NFS
档案的权限啦!(
注:这个也是我们用来管理 NFS
分享之目
录的使用权限与安全设定的地方哩)
4.NFS
需要有两个套件才行,分别是:
nfs-utils
就是提供 rpc.nfsd
及 rpc.mountd
这两个 NFS daemons
与其它相关 documents
与说明文
件、执行档等的套件!这个就是 NFS
的主要套件
portmap
就如同刚刚提的到,我们的 NFS
其实可以被视为一个 RPC
server program
,而要激活任
何一个 RPC
server program
之前,我们都需要做好 port
的对应 ( mapping )
的工作才
行,这个工作其实就是『 portmap
』这个服务所负责的!也就是说,在激活任何一个
RPC
server
之前,我们都需要激活 portmap
才
行呢!那么这个 portmap
到底在干嘛呢?
就如同这个服务的名称,哈哈!就是作 port
的 mapping
啊!举个例子来说:当 Client
端尝试来使用 RPC server
所提供的服务时,由于 Client
需要取得一个可以连接的 port
才能够使用 RPC server
所提供的服务,因此, Client
首先就会去跟 portmap
讲『喂!
可不可以通知一下,给我个 port number
,好让我可以跟 RPC
联络吧!』这个时候
portmap
就自动的把自己管理的 port mapping
告
知 Client
,好让他可以连接上来
server
呢!所以 :『激活 NFS
之前,请先激
活 portmap
!』
5.NFS
server
端的设定:
a)./etc/exports
分享的目录 主机名称 1
或 IP1(
参数 1
,参数 2)
主机名称 2
或
IP2(
参数 3
,参数 4)
b).
参
数
rw:
可
擦写的权限
ro:
只
读的权限
no_root_squash:
登入 NFS
主机使用分享目录的使用者,
如果是 root
的话,那么对于这
个分享的目录来说,他就具有 root
的权限!这个项目『极不安全』,不建议使用!
root_squash:
在登入 NFS
主机使用分享之目录的使用
者如果是 root
时,那么这个使用
者的权限把被压缩成为匿名使用者,通常他的 UID
与 GID
都会变成 nobody
那个身份;
all_squash:
不论登入 NFS
的使用者身份为何,他的
身份都会被压缩成为匿名使用者,通
常也就是 nobody
啦!
anonuid:
前面关于 *_squash
提到的匿名使
用者的 UID
设定值,通常为 nobody
,但是你
可以自行设定这个 UID
的值!当然,这个 UID
必
需要存在于你的 /etc/passwd
当中!
anongid:
同 anonuid
,但是变成 group ID
就是了
sync:
资料同步写入到内存与硬盘当中
async:
资料会先暂存于内存当中,而非直接写入硬盘
6.
设
置的实例:
a).
/tmp *(rw,no_root_squash) //*
号表示所有的 IP
都可以访问
b).
/tmp *(rw)
/home/public
192.168.0.*(rw) *(ro) //
下面两行作用一样
/home/public
192.168.0.0/24(rw) *(ro)
c).
/home/test 192.168.0.100(rw) //
只对某部机器设置权限
d).
/home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40) //
当*.linux.org
登陆
此 NFS
主机,并且在/home/linux
下面
写入档案时,该档案的所有人与所有组,就会变成
/etc/passwd
里面对应的 UID
为 40
的那个身份的使用者了.
7.
权
限问题
假设/etc/exports
里面的内容为
#vi
/etc/exports
/tmp
*(rw,no_root_squash)
/home/public
192.168.0.*(rw) *(ro)
/home/test
192.168.0.100(rw)
/home/linux
*.linux.org(rw,all_squash,anonuid=40,anongid=40)
假设我们在 192.168.0.100
这个 client
端登陆此 NFS
主机(192.168.0.2),
那么
情况一:
在
192.168.0.100
的帐号为 test
这个身份,同时,NFS
主机上也有 test
这个帐号
a).
由
于 NFS
主机的/tmp
权限为-rwxrwxrwt
,
所以我(test
在 192.168.0.100
上)
在/tmp
下面具
有存取的权限,并且写入档案的所有人为 test.
b).
在/home/public
中,由于我有读写的权限,如果 NFS
主机在 /home/public
这个目录的
权限对于 test
开放写入的话,那么就可以读写,并且写入档案的所有人是 test
。
如果 NFS
主机的 /home/public
对于 test
这个使用者并没有开放写入
权限时,那就无法写入,虽然
/etc/exports
里面是 rw
,也不起作用.
c).
在/home/test
中,权限与/home/public
有相同的状态,需要 NFS
主机的/home/test
对
于 test
有开放的权限.
d).
在/home/linux
当中,不论是何种的 user,
身份都会被变成 UID=40
的这个帐号
情况二:
如
果我们在 192.168.0.100
的身份为 test2,
但是 NFS
主机却没有 test2
这个帐号时
a).
在/tmp
下还是可以写入,但是写入的档案所有人变成 nobody.
b).
在/home/public
与/home/test
里面是否可以写入,还需要看/home/public
的权限而定,
不过身份就被变成 nobody
了
c)/home/linux
下的身份还是变成 UID=40
的帐号.
情况三:
在
192.168.0.100
的身份为 root
a).
在/tmp
里面可以写入,但是由于 no_root_squash
的参数,改变了预设的 root_squash
的设定值,所以在/tmp
写入档案的所有人为 root
了.
b).
在/home/public
底下的身份被压缩成了 nobody,
因为预设的属性都具有 root_squash
,所
以档案所有人就变成了 nobody.
c)./home/test
情况与/home/public
相同.
d)./home/linux
中,root
的身份也被压缩成 UID=40
的那个使用者了.
8.
启
动服务 portmap,nfs
#/etc/rc.d/init.d/portmap
start (or:#service portmap start)
#/etc/rc.d/init.d/nfs
start (or:#service nfs start)
可以到/var/log/messages
里面查看是否正确激活
9.exportfs
的用法
如果我们修改了/etc/exports
后,并不需要重启 nfs
服务,只要用 exportfs
重新扫描
一
次/etc/exports
,
并且重新加载即可
语法:
exportfs [-aruv]
-a:
全
部挂载(
或卸载) /etc/exports
档案内的设定
-r:
重
新挂载/etc/exports
里面的设定,也同步的更新/etc/exports
和
/var/lib/nfs/xtab
里面的内容
-u:
卸
载某一目录
-v:
在
export
的时候,把分享的目录显示到荧屏上.
例子
#exportfs
-rv //
重新 export
一次
#exportfs
-au //
全部卸载
10./var/lib/nfs/xtab
里面可以查看每个目录的分享权限(
但是我怎
么也没有找到,靠,
找
到了,原来要有人 mount
上 nfs
后才
会出现内容)
,如:
/tmp
node3(ro,sync,wdelay,
hide,secure,root_squash,
no_all_squash,subtree_check,
secure_locks,mapping=identity,
anonuid=-2,anongid=-2)
为什么 anonuid=-2
呢?呵呵!其实它说的是把 65536 - 2
的
值,也就是 65534
的那个
UID
啦!
对照一下 /etc/passwd
,你就会发现,哇!原来
那就是 nobody
的啦
11.showmount
命令
语法:
showmount [-ae] hostname
-a:
显
示目前主机与 client
所连上来的使用目录的状态
-e:
显
示 hostname
的/etc/exports
里面共享的目录
12.
查
看激活的 portnumber
#netstat
-utln
nfs
自
己所开启的 port
,就是那个 2049
的 port
啦!就是 NFS
主
要产生的 port NFS
server
在前面我们就提过了,他是 RPC server
的
一种,而 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
!
***********************************************
NFS
客
户端的设定
#mount
-t nfs hostname(orIP):/directory /mountpoint
搞定,就这么简单
为了担心会不小心把 NFS
端挂进来的具有 SUID
权
限档案的程序执行,root
可以把 NFS
所分享的目录以较为安全的情况挂载进来,可以
#mount
-t nfs -o nosuid,ro hostname:/directory /mountponit
可能出问题的地方:
1.
权
限的设定不符合
2.
忘
记了激活 portmap,
此时会报错:
mount:
RPC: Port mapper failure - RPC: Unable to receive
或者
mount:
RPC: Program not registered
那么,启动 portmap
,并且重新启动 nfs
#service
portmap start
#service
nfs restart
3.
被
防火墙搞掉
重新设置防火墙,
包括 iptables
与
TCP_Wrappers,
因为激活了 portmap
,所以 port 111
必须
提供出去.
因
此在 iptables rules
中,要增加:
iptables
-A INPUT -p TCP --dport 111 -j ACCEPT
iptables
-A INPUT -p UDP --dport 111 -j ACCEPT
如果还不行,那就是 TCP_Wrappers
的问题,检查/etc/hosts.deny
,
如果有一行是:
ALL:
ALL: deny
那就必须在/etc/hosts.allow
中增加:
portmap:
ALL: allow
如果我们的 NFS
针对内部网络开发,对于外部网络只对学术网络开发(140.0.0.0/8)
,可以:
iptables
-A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables
-A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables
-A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables
-A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
还可以使用 TCP_Wrappers
,在/etc/hosts.allow
里面规定连上 NFS
主机的主机 IP
与名
称,例如
#vi
/.etc/hosts.allow
portmap:
192.168.0.0/255.255.255.0 :allow
portmap:
140.113.23.23 :allow
portmap:
.sdu.edu.cn :allow
RPC
Server
的相关命令
rpcinfo
#rpcinfo
-p hostname(orIP)
要注意的问题:
需要注意的是,由于 NFS
使用的这个 RPC
在
client
端连上主机时,那么你的主机想要
关机,那可就会成为『不可能的任务』!我还不知道正确的原因是什么,但是,如果你的
Server
上面还有 Client
在联机,那么你要
关机,可能得要等到数个钟头才能够正常的
关机成功!嗄!真的假的!不相信吗?不然您自个儿试试看! ^_^
!所以 ,建议您的
NFS
Server
想要关机之前,能更先『关掉 portmap
与 nfs
』这两个东西!如果无法正
确的把这两个 daemons
关掉,那么先以 netstat
-utlp
找出 PID
,然后以 kill
把他关
掉先!这样才有办法正常的关机成功喔!这个请特别特别的注意呢!
在 TurboLinux8.0
for AMD64 (kernel 2.4.21-4smp),mount NFS
时候报错为:
portmap:
server localhost not responding, timed out
解决办法:
mount
-t nfs -o nolock node1:/public /public
即增加-o
nolock
参数,
原因:
Unfsd
doesn't support NLM locking, and it's causing the lockd daemon to be
started
(which
again requires the portmapper to be installed etc.)()
什
么是 NFS(Network FileSystem)
NFS
就
是 Network FileSystem
的缩写,最早之
前是由 Sun
所发展出来的。他最大的功
能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案
(
share file )
,所以,也可以简单的把他看做是一个 file server
呢!这个 NFS
Server
可以让你的 PC
来把网络远程的 NFS
主
机分享的目录,挂载到本地端的机器当中,所以,
在本地端的机器看起来,那个远程主机的目录就好象是自己的 partition
一般!
虽然 NFS
有属于自己的协议与使用的 port number
,
但是在资料传送或者其它相关讯息
传递的时候, NFS
使用的则是一个称为远程过程调用(
Remote Procedure Call, RPC )
的
协议来协助 NFS
本身的运作!
2.RPC
当我们在使用某些服务来进行远程联机的时候,有些信息,例如主机的 IP
、服务的 port
number
、
与对应到的服务之 PID
等等,都需要管理与对应!这些管
理 port
的对应与服
务相关性的工作,就是这个 Remote Procedure Call, RPC
的任务了
NFS
本
身的服务并没有提供资料传递的协议,但是 NFS
却能让我
们进行档案的分享,这
其中的原因,就是 NFS
使用到一些其它相关的传输协议!而这些传输的协议,就是使用
到这个所谓的 RPC
的功能 !这也就是说, NFS
本
身就是使用 RPC
的一个 program
就
是了!说的更白话一点, NFS
也可以视作是一个 RPC
server
啦!同时要注意到的是,
在某些状况中,不但跑 NFS
的 Server
需
要激活 RPC
的服务,连带的,要挂载 NFS
partition
的 Client
机器,也需要同步激活 RPC
才行!这样 Server
端与 Client
端才
能藉由 RPC
的协议来进行 program port
的
对应喔!NFS
主要在管理分享出来的目录,
而至于资料的传递,就直接把他丢给 RPC
的协议来运作就是了!
3.NFS
激活的 RPC daemons
rpc.nfsd
:
这个 daemon
主要的功能就是在管理 Client
是否能够登入主机的权限啦,其
中还包含这个登入者的 ID
的判别
rpc.mountd
:
这个 daemon
主要的功能,则是在管理 NFS
的档案系统!当 Client
端顺利
的通过 rpc.nfsd
而登入主机之后,在他可以使用 NFS server
提
供的档案之前,还会经
过档案使用权限 (
就是那个 -rwxrwxrwx
与
owner, group
那几个权限啦 )
的认证程序!
他会去读 NFS
的设定档 /etc/exports
来比
对 Client
的权限,当通过这一关之后,
Client
就可以取得使用 NFS
档案的权限啦!(
注:这个也是我们用来管理 NFS
分享之目
录的使用权限与安全设定的地方哩)
4.NFS
需要有两个套件才行,分别是:
nfs-utils
就是提供 rpc.nfsd
及 rpc.mountd
这两个 NFS daemons
与其它相关 documents
与说明文
件、执行档等的套件!这个就是 NFS
的主要套件
portmap
就如同刚刚提的到,我们的 NFS
其实可以被视为一个 RPC
server program
,而要激活任
何一个 RPC
server program
之前,我们都需要做好 port
的对应 ( mapping )
的工作才
行,这个工作其实就是『 portmap
』这个服务所负责的!也就是说,在激活任何一个
RPC
server
之前,我们都需要激活 portmap
才
行呢!那么这个 portmap
到底在干嘛呢?
就如同这个服务的名称,哈哈!就是作 port
的 mapping
啊!举个例子来说:当 Client
端尝试来使用 RPC server
所提供的服务时,由于 Client
需要取得一个可以连接的 port
才能够使用 RPC server
所提供的服务,因此, Client
首先就会去跟 portmap
讲『喂!
可不可以通知一下,给我个 port number
,好让我可以跟 RPC
联络吧!』这个时候
portmap
就自动的把自己管理的 port mapping
告
知 Client
,好让他可以连接上来
server
呢!所以 :『激活 NFS
之前,请先激
活 portmap
!』
5.NFS
server
端的设定:
a)./etc/exports
分享的目录 主机名称 1
或 IP1(
参数 1
,参数 2)
主机名称 2
或
IP2(
参数 3
,参数 4)
b).
参
数
rw:
可
擦写的权限
ro:
只
读的权限
no_root_squash:
登入 NFS
主机使用分享目录的使用者,
如果是 root
的话,那么对于这
个分享的目录来说,他就具有 root
的权限!这个项目『极不安全』,不建议使用!
root_squash:
在登入 NFS
主机使用分享之目录的使用
者如果是 root
时,那么这个使用
者的权限把被压缩成为匿名使用者,通常他的 UID
与 GID
都会变成 nobody
那个身份;
all_squash:
不论登入 NFS
的使用者身份为何,他的
身份都会被压缩成为匿名使用者,通
常也就是 nobody
啦!
anonuid:
前面关于 *_squash
提到的匿名使
用者的 UID
设定值,通常为 nobody
,但是你
可以自行设定这个 UID
的值!当然,这个 UID
必
需要存在于你的 /etc/passwd
当中!
anongid:
同 anonuid
,但是变成 group ID
就是了
sync:
资料同步写入到内存与硬盘当中
async:
资料会先暂存于内存当中,而非直接写入硬盘
6.
设
置的实例:
a).
/tmp *(rw,no_root_squash) //*
号表示所有的 IP
都可以访问
b).
/tmp *(rw)
/home/public
192.168.0.*(rw) *(ro) //
下面两行作用一样
/home/public
192.168.0.0/24(rw) *(ro)
c).
/home/test 192.168.0.100(rw) //
只对某部机器设置权限
d).
/home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40) //
当*.linux.org
登陆
此 NFS
主机,并且在/home/linux
下面
写入档案时,该档案的所有人与所有组,就会变成
/etc/passwd
里面对应的 UID
为 40
的那个身份的使用者了.
7.
权
限问题
假设/etc/exports
里面的内容为
#vi
/etc/exports
/tmp
*(rw,no_root_squash)
/home/public
192.168.0.*(rw) *(ro)
/home/test
192.168.0.100(rw)
/home/linux
*.linux.org(rw,all_squash,anonuid=40,anongid=40)
假设我们在 192.168.0.100
这个 client
端登陆此 NFS
主机(192.168.0.2),
那么
情况一:
在
192.168.0.100
的帐号为 test
这个身份,同时,NFS
主机上也有 test
这个帐号
a).
由
于 NFS
主机的/tmp
权限为-rwxrwxrwt
,
所以我(test
在 192.168.0.100
上)
在/tmp
下面具
有存取的权限,并且写入档案的所有人为 test.
b).
在/home/public
中,由于我有读写的权限,如果 NFS
主机在 /home/public
这个目录的
权限对于 test
开放写入的话,那么就可以读写,并且写入档案的所有人是 test
。
如果 NFS
主机的 /home/public
对于 test
这个使用者并没有开放写入
权限时,那就无法写入,虽然
/etc/exports
里面是 rw
,也不起作用.
c).
在/home/test
中,权限与/home/public
有相同的状态,需要 NFS
主机的/home/test
对
于 test
有开放的权限.
d).
在/home/linux
当中,不论是何种的 user,
身份都会被变成 UID=40
的这个帐号
情况二:
如
果我们在 192.168.0.100
的身份为 test2,
但是 NFS
主机却没有 test2
这个帐号时
a).
在/tmp
下还是可以写入,但是写入的档案所有人变成 nobody.
b).
在/home/public
与/home/test
里面是否可以写入,还需要看/home/public
的权限而定,
不过身份就被变成 nobody
了
c)/home/linux
下的身份还是变成 UID=40
的帐号.
情况三:
在
192.168.0.100
的身份为 root
a).
在/tmp
里面可以写入,但是由于 no_root_squash
的参数,改变了预设的 root_squash
的设定值,所以在/tmp
写入档案的所有人为 root
了.
b).
在/home/public
底下的身份被压缩成了 nobody,
因为预设的属性都具有 root_squash
,所
以档案所有人就变成了 nobody.
c)./home/test
情况与/home/public
相同.
d)./home/linux
中,root
的身份也被压缩成 UID=40
的那个使用者了.
8.
启
动服务 portmap,nfs
#/etc/rc.d/init.d/portmap
start (or:#service portmap start)
#/etc/rc.d/init.d/nfs
start (or:#service nfs start)
可以到/var/log/messages
里面查看是否正确激活
9.exportfs
的用法
如果我们修改了/etc/exports
后,并不需要重启 nfs
服务,只要用 exportfs
重新扫描
一
次/etc/exports
,
并且重新加载即可
语法:
exportfs [-aruv]
-a:
全
部挂载(
或卸载) /etc/exports
档案内的设定
-r:
重
新挂载/etc/exports
里面的设定,也同步的更新/etc/exports
和
/var/lib/nfs/xtab
里面的内容
-u:
卸
载某一目录
-v:
在
export
的时候,把分享的目录显示到荧屏上.
例子
#exportfs
-rv //
重新 export
一次
#exportfs
-au //
全部卸载
10./var/lib/nfs/xtab
里面可以查看每个目录的分享权限(
但是我怎
么也没有找到,靠,
找
到了,原来要有人 mount
上 nfs
后才
会出现内容)
,如:
/tmp
node3(ro,sync,wdelay,
hide,secure,root_squash,
no_all_squash,subtree_check,
secure_locks,mapping=identity,
anonuid=-2,anongid=-2)
为什么 anonuid=-2
呢?呵呵!其实它说的是把 65536 - 2
的
值,也就是 65534
的那个
UID
啦!
对照一下 /etc/passwd
,你就会发现,哇!原来
那就是 nobody
的啦
11.showmount
命令
语法:
showmount [-ae] hostname
-a:
显
示目前主机与 client
所连上来的使用目录的状态
-e:
显
示 hostname
的/etc/exports
里面共享的目录
12.
查
看激活的 portnumber
#netstat
-utln
nfs
自
己所开启的 port
,就是那个 2049
的 port
啦!就是 NFS
主
要产生的 port NFS
server
在前面我们就提过了,他是 RPC server
的
一种,而 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
!
***********************************************
NFS
客
户端的设定
#mount
-t nfs hostname(orIP):/directory /mountpoint
搞定,就这么简单
为了担心会不小心把 NFS
端挂进来的具有 SUID
权
限档案的程序执行,root
可以把 NFS
所分享的目录以较为安全的情况挂载进来,可以
#mount
-t nfs -o nosuid,ro hostname:/directory /mountponit
可能出问题的地方:
1.
权
限的设定不符合
2.
忘
记了激活 portmap,
此时会报错:
mount:
RPC: Port mapper failure - RPC: Unable to receive
或者
mount:
RPC: Program not registered
那么,启动 portmap
,并且重新启动 nfs
#service
portmap start
#service
nfs restart
3.
被
防火墙搞掉
重新设置防火墙,
包括 iptables
与
TCP_Wrappers,
因为激活了 portmap
,所以 port 111
必须
提供出去.
因
此在 iptables rules
中,要增加:
iptables
-A INPUT -p TCP --dport 111 -j ACCEPT
iptables
-A INPUT -p UDP --dport 111 -j ACCEPT
如果还不行,那就是 TCP_Wrappers
的问题,检查/etc/hosts.deny
,
如果有一行是:
ALL:
ALL: deny
那就必须在/etc/hosts.allow
中增加:
portmap:
ALL: allow
如果我们的 NFS
针对内部网络开发,对于外部网络只对学术网络开发(140.0.0.0/8)
,可以:
iptables
-A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables
-A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables
-A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables
-A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
还可以使用 TCP_Wrappers
,在/etc/hosts.allow
里面规定连上 NFS
主机的主机 IP
与名
称,例如
#vi
/.etc/hosts.allow
portmap:
192.168.0.0/255.255.255.0 :allow
portmap:
140.113.23.23 :allow
portmap:
.sdu.edu.cn :allow
RPC
Server
的相关命令
rpcinfo
#rpcinfo
-p hostname(orIP)
要注意的问题:
需要注意的是,由于 NFS
使用的这个 RPC
在
client
端连上主机时,那么你的主机想要
关机,那可就会成为『不可能的任务』!我还不知道正确的原因是什么,但是,如果你的
Server
上面还有 Client
在联机,那么你要
关机,可能得要等到数个钟头才能够正常的
关机成功!嗄!真的假的!不相信吗?不然您自个儿试试看! ^_^
!所以 ,建议您的
NFS
Server
想要关机之前,能更先『关掉 portmap
与 nfs
』这两个东西!如果无法正
确的把这两个 daemons
关掉,那么先以 netstat
-utlp
找出 PID
,然后以 kill
把他关
掉先!这样才有办法正常的关机成功喔!这个请特别特别的注意呢!
在 TurboLinux8.0
for AMD64 (kernel 2.4.21-4smp),mount NFS
时候报错为:
portmap:
server localhost not responding, timed out
解决办法:
mount
-t nfs -o nolock node1:/public /public
即增加-o
nolock
参数,
原因:
Unfsd
doesn't support NLM locking, and it's causing the lockd daemon to be
started
(which
again requires the portmapper to be installed etc.)()
相关文章推荐
- Linux NFS 配置部署步骤范例
- linux NFS 配置步骤
- Linux NFS 简单配置步骤
- linux NFS 配置步骤
- linux NFS 配置步骤
- xampp 配置多虚拟主机 详细步骤
- 配置Win2008系统DNS服务器及主机的IP地址的具体步骤
- apache配置开启网站服务步骤
- Linux环境下Redis安装配置步骤
- JuniperSRX 基本初始配置步骤(Security Policy 2)
- Linux NFS 和 Samba 共享配置
- 图解SSH框架配置步骤
- IIS 配置非本机虚拟目录步骤!
- Ubuntu(14.04.1)配置MPI多机并行环境(虚拟机)详细步骤
- OpenCV和VS2015的配置(完整详细步骤)
- linux NFS配置:NFS开机自动启用及其原理 推荐
- linux内核编译步骤 + Linux 2.6.19.x 内核编译配置选项简介
- 配置DAVINCI内存在DVEVM步骤--转
- Cinder配置多Ceph后端步骤
- myeclipse中配置spket插件步骤