由于项目组资源众多,尤其是美术,资源很庞大,因此需要服务器来共享这些资源,在知道需求后我的第一反应是使用FTP,不过使用FTP的话在查看资源的时候还需要将相关文件下载到本机上来查看,如果文件比较大的话也不方便。
然后我上网搜了一下,发现可以通过NFS来实现,通过NFS,客户端访问Linux服务器的硬盘就好像访问自己的本机硬盘一样,可以直接对文件进行操作,在局域网里可以算是一个非常好的文件共享方法。
Gentoo上搭建NFS非常简单,首先是程序安装: emerge nfs-utils
然后是配置文件的设置,NFS需要我们配置的文件只有一个,就是/etc/exports 这个文件了,这个文件配置了对NFS的访问权限
#/etc/exports: NFS file systems being exported. See exports(5).
/home/share/ *(rw,insecure)
该文件配置了共享的文件夹和相应的权限,格式为“共享文件夹目录 用户(用户权限) ” ,注意用户和用户权限之间是没有空格的,用户权限主要有以下:
ro: 只读
rw: 可读写
sync:所有数据在请求时写入共享
async:NFS在写数据前对请求进行响应
secure:NFS请求通过1024以下的安全TCP/IP端口发送
insecure:NFS请求通过1024以上的TCP/IP端口发送
all_squash:导出文件的UID和GID被映射为匿名用户(anonymous)
no_all_squash:保留导出文件的UID和GID(用户ID和组ID)
配置好配置文件就可以启动程序了:/etc/init.d/nfs start
要正常的运行NFS,需要运行5种Linux服务,但是在Gentoo下,只要运行了上面的命令所有的服务都自动打开了,在网上的一些教程中写着还要打开portmap进程,这在Gentoo中是不需要的,因为Gentoo中采用rpcbind代替了portmap,可以用 ps -A 查看,发现rpcbind已经在运行了,所以现在搭建成功,可以访问了。
客户端访问:
首先需要注意的是因为NFS是Linux或Unix之间的协议,所以windows是无法访问的,Linux、Unix、Mac都可以访问。
Linux/Unix访问方法: mount -t nfs -o rw xxx.xxx.com:/home/share /User/tmp 表示在本地/User/tmp中挂载了一个NFS文件系统(-t nfs),然后xxx.xxx.com:/home/share 表示服务器的访问网址(带路径)
Mac访问方法:使用快捷键“ Command + k ” 调出连接服务器对话框,输入访问网址(带路径),然后连接就可以看到共享的目录。当然也可以通过终端访问,此时和上面访问的方法相同。
问题1:刚开始显示没有访问权限,即使修改了配置文件和文件夹的系统权限
解决方法:/etc/exports文件中的用户权限中添加 insecure 参数
问题2:服务器重启后无法正常访问,用vim查看配置文件时出现“ E575: viminfo: 无效的启动字符 位于行: ^IPTR^I_text ”
解决方法: rm /root/.vim{,info} -rf{/quate}