简单介绍:
NFS 对于在同一网络上的多个用户间共享目录很有用途。譬如,一组致力于同一工程项目的用户可以通过使用 NFS 文件系统(通常被称作 NFS 共享)中的一个挂载为 /myproject 的共享目录来存取该工程项目的文件。要存取共享的文件,用户进入各自机器上的 /myproject 目录。这种方法既不用输入口令又不用记忆特殊命令,就仿佛该目录位于用户的本地机器上一样。
配置:
至少准备两台用于NFS机器,一台用于NFS Server (192.168.1.1),一台用于NFS Client(192.168.1.2)。
在NFS Server (192.168.1.1)上:
共享目录:/nfspool
NFS 运行用户:nfsnobody
# vi /etc/exports
/nfspool 192.168.1.2(rw,async,anonuid=65534,anongid=65534)
# mkdir /nfspool
# chown nfsnobody:nfsnobody /nfspool/.
# service portmap start
# service nfslock start
# service nfs start
在NFS Client(192.168.1.2)上:
远程 NFS 共享目录挂载点:/usr/local/nfs
# service portmap start
# mkdir /usr/local/nfs
# chown nfsnobody:nfsnobody /usr/local/nfs
# chmod 777 /usr/local/nfs
# mount -t nfs -o soft,intr,bg,timeo=50 192.168.1.1:/nfspool /usr/local/nfs
# vi /etc/fstab
192.168.1.1:/nfspool /usr/local/nfs nfs soft,intr,bg,timeo=50 0 0
说明,注意:
1、exports参数说明
rw: 读写模式;
async: 异步磁盘读写;
anonu(g)id: 指定NFS在进行操作时所使用的匿名用户uid/gid
2、NFS 管理命令
showmount -e 在NFS Server上执行此命令显示NFS Server上所有的共享卷;
showmount -e 10.0.0.1 在NFS Client上执行此命令显示NFS Server上所有共享卷;
export -av 根据/etc/exports导出所有卷;
export -rv 重新导出所有卷,增加/etc/exports中的新项目、删除不存在的项目、更新改变的项目;
3、NFS 相关文件
/etc/exports
是NFS Server最基本的配置文件之一,文件中列出了共享的文件系统和允许访问这些文件系统的主机。
/proc/fs/nfs/exports
导出文件列表的内核视图,包括导出的参数。
/var/lib/nfs/etab
状态文件,其中列出了当前的高级列表
var/lib/nfs/rmtab
状态文件,列出了挂接导出文件的远程客户机清单。
/var/lib/nfs/xtab
状态文件,当前底层导出清单。
4、/etc/exports 中client的书写规则
(1) 单个主机
可以用短名及完全限定名,或者用IP地址,例如student01、student01.flying.com.cn或者192.168.10.1都是合法的主机名。
(2) Net-Group
可以列出/etc/netgroup文件中或NFS网组映射中定义的整组主机。网组名以@开头。
(3) 通配符主机
*.discuz.net *.*.comsenz.com
(4) 掩码
192.168.1.0/255.255.255.0
5、起停顺序
启动:
portmap
nfslock
nfs
停止:
nfslock
nfs
portmap
6、安全性
portmap: 111
NFS: 2049
防止使用IP欺骗和RPC重定向技术通过lo回环进行攻击以及限定授权主机:
iptables -A INPUT -p udp -d 127.0.0.1 --dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 --dport 2049 -j DROP
iptables -A INPUT -p udp -s 10.0.0.2 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.2 --dport 2049 -j ACCEPT