我们接着玩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. 自己如何获取ADO连接字符串

    自己如何获取ADO连接字符串 摘自:http://blog.csdn.net/zyq5945/article/details/5586423 有时候我们参考网上的ADO连接字符串写未必就能连接上数据库 ...

  2. Django之搭建学员管理系统

    GET请求传参数的方式: /xxx/?k1=v1&k2=v2 ? 前面的是URL ?后面的是请求的参数 多个参数之间用&分隔 POST请求传数据: 是放在请求体里面的 表结构设计. - ...

  3. (三)canvas绘制样式

    beginPath() 对画线点的一个开始限制 moveTo() 画线的起点,只在开头使用 参数两个x轴,y轴 lineTo() 后续连线 两个参数x轴,y轴 stroke() 连线无填充 fill( ...

  4. 手贱使用shift+delete删除文件之后

    昨天整理文件夹,重新整理和命名所有项目文件,几个很久的项目代码使用shift+delete删除了. 今天早上过来说是要发版本,然后发现居然有个工程是在昨天删除的文件夹里,额,~ 然后各种百度,各种go ...

  5. 【学习】JennyHui学英语 - Bingo口语笔记

    学习素材:Bingo说美语 Hold系列 如何吞音 表示“无所谓” Pick系列 英式和美式英语的发音区别 表示“迷茫” Break系列 爆破音发音技巧 表示“不相信” 常见词汇的缩读 表示“身体抱恙 ...

  6. linux C使用strerror来追查错误信息

    最近工作中有个需求:程序将文件进行处理,然后将处理完毕的文件挪走.我用了rename函数来挪动文件,可是在docker化的环境中,文件却无法挪动.不知道什么原因.现在,对程序进行调整,如果rename ...

  7. Java [Leetcode 357]Count Numbers with Unique Digits

    题目描述: Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. ...

  8. SQLmap是一款用来检测与利用SQL漏洞的注入神器。

    sqlmap 重要参考 http://www.kali.org.cn/forum-75-1.html SQLmap是一款用来检测与利用SQL漏洞的注入神器.开源的自动化SQL注入工具,由Python写 ...

  9. matlab 与 modelsim 联调 cic抽取滤波器

    注:本设计的参数为:D=2,R=5,N=3:时钟频率为50mhz,输入信号为有符号8位,根据公式bmax=bin+N*log(2,R*D):可以得到bmax=18: 1,cic抽取滤波器原理 网上资料 ...

  10. 使用Log4j将程序日志实时写入Kafka

    第一部分 搭建Kafka环境 安装Kafka 下载:http://kafka.apache.org/downloads.html tar zxf kafka-<VERSION>.tgz c ...