Ubuntu搭建NFS文件服务器

前言


NFS(Network file system)服务器实现了局域网不同主机、不同操作系统的文件共享。

注意,客户端和服务端必须具备相同的账号才能够访问目录或者文件。

图.1 NFS服务器共享目录与client示意图


基本上NFS端口是2049,但它还有其它的程序启动额外端口,功能非常多,所以使用了RPC(Remote Procedure Call)来管理。


RPC

所有NFS服务都会将端口信息注册给RPC,所以RPC起到了中介的作用,在服务端和客户端之间作为一个桥梁。

访问NFS存在一些问题,与用户名、uid等有关,造成一些身份的错乱(NIS服务解决了问题,这里不展开),下面仅假设服务端和客户端有相同的用户名和用户名对应的uid也想同(毕竟是在一个机器上测试,肯定相同啦)。


相关文件

/etc/exports NFS主要配置文件

/usr/sbin/exportfs  维护NFS的命令,操作/etc/exports文件

/var/lib/nfs/* 包含日志文件etab\xtab

/usr/sbin/showmount 客户端查询服务器共享资源的命令

①/etc/exports

root@jammg:/etc# cat exports
...
/tmp 192.168.1.0/24(rw,no_root_squash) *ecu.cn(ro) localhost(rw)
... 
如上,192.168.1.0这个网段的主机可以读写该目录,但请注意,最终的权限还要看用户在此目录的权限(drwxrwxrwx),no_root_squash代表以root登陆时不会被压缩成匿名用户;可使用通配符,ecu.cn域的主机均可读。还有很多其它参数,这里不介绍。

注意,每个主机限制以空格分开。


使用

启动NFS服务:

#/etc/init.d/rpcbind start
[ ok ] Starting rpcbind (via systemctl): rpcbind.service.

客户端查看主机共享状况:

showmount [-ae] [hostname|ip]
-a 显示当前主机NFS连接共享状态
-e 显示指定主机/etc/exports共享的状态

#showmount -e localhost
Export list for localhost:
/tmp 192.168.1.115
可以看到/tmp目录被共享出来。


另外,如果重新修改了/etc/eaports可不用重启NFS,使用exportfs命令:

exportfs [-aruv]
-a 重新挂载(或卸载,因为目录可能是增或是减)/etc/exports
-r 重新挂载
-u 卸载某一目录
-v 在屏幕输出共享信息

root@jammg:/etc# exportfs -arv
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.115:/tmp".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

exporting 192.168.1.115:/tm
此时,共享的信息就被更新了。

挂载:

#mkdir testnfs
#mount -t nfs 192.168.1.115:/tmp /testnfs
#cd testnfs;ls -la
总用量 92
drwxrwxrwt 19 root    root    4096  3月 31 18:11 ./
drwxr-xr-x 24 root    root    4096  3月 30 20:08 ../
-rw-------  1 jammgit jammgit    0  3月 31 10:43 config-err-cyE39x
srw-------  1 jammgit jammgit    0  3月 31 10:43 fcitx-socket-:0=
....
drwxrwxrwt  2 root    root    4096  3月 31 10:43 .X11-unix/
drwxrwxrwt  2 root    root    4096  3月 31 10:42 .XIM-unix/
可以看到/tmp目录的内容以成功挂载到/testnfs。

卸载:

#umount /testnfs

还有很多权限、安全的细节暂且不深入。

你可能感兴趣的:(linux,服务器,nfs,局域网,文件共享)