我们接着玩Linux,O(∩_∩)O哈哈~

1.什么是nfs

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

2.搭建nfs

首先你得有一个Linux服务器哈,这里我还是用我的廉价腾讯云~

2.1前期准备:

1.安装nfs-utils和rpcbind

yum install nfs-utils rpcbind

2.设置开机启动服务

chkconfig nfs on
chkconfig rpcbind on

3.启动相关服务

service rpcbind start
service nfs start

2.2服务端配置:

1.创建共享目录

mkdir /xjy/data/nfs/server 

2.编辑/etc/exports文件添加如下内容

vim /etc/exports
/xjy/data/nfs/server *(rw,no_root_squash,no_all_squash,sync)

① /xjy/data/nfs/server —要共享的目录

② * 处代表限制访问的ip段

可以填192.168.0.* —允许访问的网段,也可以是ip地址、主机名(能够被服务器解析) 
可以填192.168.0.123/24 
*(所有人都能访问)

③ 括号内的常见参数有:

参数值 内容说明 
rw  ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。 
sync  async sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘! 
no_root_squash  root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行! 
all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦! 
no_subtree_check 关闭子树检查 
anonuid  anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。 
其他选项可以通过man exports查阅man文档

3.刷新配置立即生效

exportfs -r

4.重启nfs

service nfs restart

5.查看 RPC 服务的注册状况

[root@VM_15_8_centos server]# rpcinfo -p localhost
program vers proto port service
tcp portmapper
tcp portmapper
tcp portmapper
udp portmapper
udp portmapper
udp portmapper
udp mountd
tcp mountd
udp mountd
tcp mountd
udp mountd
tcp mountd
tcp nfs
tcp nfs
tcp nfs
tcp nfs_acl
tcp nfs_acl
udp nfs
udp nfs
udp nfs
udp nfs_acl
udp nfs_acl
udp nlockmgr
udp nlockmgr
udp nlockmgr
tcp nlockmgr
tcp nlockmgr
tcp nlockmgr

选项与参数:

-p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息; 
-t :针对某主机的某支程序检查其 TCP 封包所在的软件版本; 
-u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;

6.本机查询nfs服务器

[root@VM_15_8_centos server]# showmount -e localhost 
Export list for localhost:
/xjy/data/nfs/server *

选项与参数: 
-a :显示目前主机与客户端的 NFS 联机分享的状态; 
-e :显示某部主机的 /etc/exports 所分享的目录数据。

2.3客户端配置:

1.创建挂载点

mkdir /xjy/data/nfs/client 

2.查看服务器抛出的共享目录信息

[root@VM_15_8_centos server]# showmount -e 192.168.0.123
Export list for 192.168.0.123:
/xjy/data/nfs/server *

3.挂载目录 
为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议

mount -t nfs -o vers= 192.168.0.123:/xjy/data/nfs/server /xjy/data/nfs/client -o proto=tcp -o nolock 

4.查看挂载的目录

[root@VM_15_8_centos server]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G .1G 16G % /
tmpfs 112M 112M % /dev/shm
/dev/sda1 477M 54M 398M % /boot
192.168.0.123:/data/lys
18G .1G 16G % /lys

3.测试:

服务端
[root@VM_15_8_centos xjy]# echo “test” > test.txt
客户端
[root@VM_15_8_centos xjy]# cat /xjy/test.txt
test
[root@VM_15_8_centos xjy]# echo “” >> /xjy/test.txt
服务端
[root@VM_15_8_centos xjy]# cat /data/xjy/test.txt
test

4.取消挂载:

[root@VM_15_8_centos server]# umount /xjy/data/nfs/client
[root@VM_15_8_centos server]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G .1G 16G % /
tmpfs 112M 112M % /dev/shm
/dev/sda1 477M 54M 398M % /boot 如果显示:device is busy,可以使用-lf参数强行删除
[root@VM_15_8_centos server]# umount –lf /xjy/data/nfs/client

5.重启和关闭:

重启:[root@VM_15_8_centos server]# service 服务名 restart
停止:[root@VM_15_8_centos server]# service 服务名 stop
开启:[root@VM_15_8_centos server]# service 服务名 start

6.固定nfs服务端口

为了方便配置防火墙,需要固定nfs服务端口 
NFS启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。

[root@VM_15_8_centos server]# rpcinfo -p localhost
program vers proto port service
tcp portmapper
tcp portmapper
tcp portmapper
udp portmapper
udp portmapper
udp portmapper
udp mountd
tcp mountd
udp mountd
tcp mountd
udp mountd
tcp mountd
tcp nfs
tcp nfs
tcp nfs
tcp nfs_acl
tcp nfs_acl
udp nfs
udp nfs
udp nfs
udp nfs_acl
udp nfs_acl
udp nlockmgr
udp nlockmgr
udp nlockmgr
tcp nlockmgr
tcp nlockmgr
tcp nlockmgr

分配端口,编辑配置文件:

[root@VM_15_8_centos server]# vim /etc/sysconfig/nfs
添加:
RQUOTAD_PORT=
LOCKD_TCPPORT=
LOCKD_UDPPORT=
MOUNTD_PORT=
STATD_PORT=

重启

[root@VM_15_8_centos server]# service nfs restart
关闭 NFS 守护进程: [确定]
关闭 NFS mountd: [确定]
关闭 NFS 服务: [确定]
Shutting down RPC idmapd: [确定]
启动 NFS 服务: [确定]
启动 NFS mountd: [确定]
启动 NFS 守护进程: [确定]
正在启动 RPC idmapd: [确定]

查看结果

[root@VM_15_8_centos server]# rpcinfo -p localhost
program vers proto port service
tcp portmapper
tcp portmapper
tcp portmapper
udp portmapper
udp portmapper
udp portmapper
udp mountd
tcp mountd
udp mountd
tcp mountd
udp mountd
tcp mountd
tcp nfs
tcp nfs
tcp nfs
tcp nfs_acl
tcp nfs_acl
udp nfs
udp nfs
udp nfs
udp nfs_acl
udp nfs_acl
udp nlockmgr
udp nlockmgr
udp nlockmgr
tcp nlockmgr
tcp nlockmgr
tcp nlockmgr

可以看到,随机端口以固定 
iptables策略问题完美解决!!!

7.设置系统开机就挂载磁盘

在/etc/fstab中加入开机挂载命令

[root@VM_15_8_centos server]# vim /etc/fstab
10.10.159.68:/s4_attachment /data/nfs/client nfs defaults

8.Windows作为客户端挂载nfs

1.开启nfs客户端:打开控制面板》程序》启用或关闭windos功能》选中nfs客户端,点击确定 
.2.挂载:mount 192.168.0.123:/xjy/data/nfs X:   (此处注意只能定位到nfs目录,否则会报网络错误)

会创建一个网络盘X盘,里面挂载文件 
3.取消挂载:右键X盘,点击取消连接或者执行命令:umount X:

OVER!

Linux 搭建NFS文件服务器实现文件共享的更多相关文章

  1. 使用Linux搭建FTP服务器实现文件共享

    使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...

  2. Linux搭建tomcat文件服务器

    Linux搭建tomcat文件服务器 Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar. ...

  3. linux搭建FastDFS文件服务器

    本文主要介绍在linux服务器如何搭建FastDFS文件服务器.大概分为9个步骤,由于内容较为繁琐.下面带你入坑! 首先简单介绍一下FastDFS是淘宝资深架构师余庆老师主导开源的一个分布式文件系统, ...

  4. Linux搭建NFS服务

    一.NFS服务简单介绍 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中, ...

  5. CentOS6.5下搭建NFS文件服务器

    本文参考这里 CentOS下搭建NFS服务器总结 环境介绍: 1. 服务器: 192.168.0.100 2. 客户机: 192.168.0.101 安装软件包: 服务器和客户机都要安装nfs 和 r ...

  6. 在linux下搭建NFS服务器实现文件共享

    目录 一.关于NFS 二.搭建一台NFS服务器共享特定资源 三.调优 一.关于NFS 1.NFS是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系 ...

  7. Linux搭建nfs服务器

    使用linux进行嵌入式开发的时候,为了方便开发,通常是将开发板挂载到宿主机的文件系统上,然后将代码放到共享给开发板的目录中,再通过开发板运行. 首先查看是否安装了 nfs 软件包,yum list ...

  8. Linux搭建NFS提供磁盘给Windows使用

    在Windows2008系统下设置挂载Linux服务器磁盘 一.系统环境 系统平台:CentOS release 5.8 (Final) NFS Server IP:X....X...153.157 ...

  9. CentOS 6.5下搭建NFS文件服务器

    环境介绍:服务器: 192.168.0.1客户机: 192.168.0.2安装软件包:服务器和客户机都要安装nfs 和 rpcbind 软件包:yum -y install nfs-utils rpc ...

随机推荐

  1. php服务端setcookie()原理

    1.什么是 Cookie? cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PHP,您能够创建并取 ...

  2. 浅谈如何在SQL Server中生成脚本

    在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本. 生成脚本的一些选项,如下图: 我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍 ...

  3. 使用pinyin4j汉字转pinyin

    引入maven依赖<dependencies> <dependency> <groupId>com.belerweb</groupId> <art ...

  4. 百度浏览器极速模式下访问 FastAdmin 的问题

    百度浏览器极速模式下访问 FastAdmin 的问题 兼容性问题,因为 https 证书配置时对低版本的浏览器不适配引起. 应该是 百度浏览器的内核太旧,没有更新导致.

  5. jstl_fn方法库

    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> 1,st ...

  6. Yii2 Post请求的时候出现400错误

    Bad Request (#400) Unable to verify your data submission.   http://www.yiiframework.com/forum/index. ...

  7. 根据wsdl文件生成WebService客户端代码

    有时候在项目中,一个项目可能有好几个公司在做.系统之间难免会出现互相调用接口的现象,这时候有一种办法就是使用webService.本篇文章将介绍如何将对接系统提供的WebService接口,根据对方提 ...

  8. ubuntu 源更新(sources.list)

    首先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 而后用gedit或其他编辑器打开(也可以复制到Windows下打 ...

  9. java代码逆序输出再连篇

    总结:思维方式关键 package com.dfd; import java.util.Scanner; //逆序输出数字 public class fdad { public static void ...

  10. Java-Runoob:Java switch case

    ylbtech-Java-Runoob:Java switch case 1.返回顶部 1. Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等 ...