IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> RHCE------NFS -> 正文阅读

[网络协议]RHCE------NFS

RHCE------NFS
一、概念
NFS是network file system的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件
ftp 双向传输;nfs 文件访问
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本端的系统中远程主机的目录就是自己的一个磁盘分区一样,使用相当便利
同一个挂载点可以连接多个设备(最后的文件系统),一个设备可以连接多个挂载点

文件共享的特点:挂载
网络文件系统:nfs4
TCP协议
二、NFS服务端和NFS客户端的通讯过程
RPC服务即远程调用,RPC最主要的功能就是在指定每个NFS功能所对应的port number,并且回报给客户端,让客户端可以连接到正确的端口上去(NFS无固定端口,随机端口2049)
NFS支持功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个程序就会启用一些端口来传输数据,因此NFS端口并不固定
1.首先服务端启动RPC服务,并开启111端口(第一次、重启过后)
2.服务端启动NFS服务,并向RPC注册端口信息
3.客户端启动RPC,向服务端的RPC服务请求服务端的NFS服务
4.服务端的RPC服务来反馈NFS端口信息给客户端
5.客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输
注册端口---->达成协议(RPC)---->直接建立联系---->达成协议(客户端)---->建立连接
三、配置
1.服务端
安装 nfs-utils 软件包,关闭防火墙和selinux,开启服务
[root@localhost ~]# mount /dev/sr0 /mnt
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl restart nfs-server
查看rpc程序是否开启(默认开启)
[root@localhost ~]# systemctl status rpcbind
Active: active (running) since Fri 2021-08-20 09:00:13 CST; 8h ago
关闭nfs服务,查看默认列表信息
[root@localhost ~]# systemctl stop nfs-server
[root@localhost ~]# rpcinfo -p localhost -p指定主机查看信息
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 45901 status
100024 1 tcp 50009 status
启动nfs服务,查看有哪些注册列表信息
[root@localhost ~]# systemctl restart nfs-server
[root@localhost ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 45901 status
100024 1 tcp 50009 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100021 1 udp 38063 nlockmgr
100021 3 udp 38063 nlockmgr
100021 4 udp 38063 nlockmgr
100021 1 tcp 45877 nlockmgr
100021 3 tcp 45877 nlockmgr
100021 4 tcp 45877 nlockmgr
lsof 列出当前系统序打开文件的工具
[root@localhost ~]# lsof -i:111 -i 指定端口查看信息
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 36u IPv4 22449 0t0 TCP *:sunrpc (LISTEN)
systemd 1 root 37u IPv4 22450 0t0 UDP *:sunrpc
systemd 1 root 38u IPv6 22451 0t0 TCP *:sunrpc (LISTEN)
systemd 1 root 39u IPv6 22452 0t0 UDP *:sunrpc
rpcbind 927 rpc 4u IPv4 22449 0t0 TCP *:sunrpc (LISTEN)
rpcbind 927 rpc 5u IPv4 22450 0t0 UDP *:sunrpc
rpcbind 927 rpc 6u IPv6 22451 0t0 TCP *:sunrpc (LISTEN)
rpcbind 927 rpc 7u IPv6 22452 0t0 UDP *:sunrpc
netstat ss命令用于显示各种网络相关信息
[root@localhost ~]# netstat -tunlp
[root@localhost ~]# netstat -tunlp | grep rpc

2.判断服务是否启动的方式
systemctl status httpd
systemctl is-active httpd
lsof -i:111(服务有指定端口)
netstat -tunlp | grep sshd(服务有指定端口)
ps -aux
3.服务配置文件
服务端138
[root@localhost ~]# vim /etc/exports
#共享目录路径 共享的主机(ro/rw,参数信息)
/pub *(ro)
[root@localhost ~]# mkdir /pub
重新测试
[root@localhost ~]# exportfs -ar

客户端(相同的网络模式)139
[root@localhost ~]# hostname client
[root@localhost ~]# bash
[root@client ~]# mount 192.168.142.138:/pub /mnt
查看挂载信息显示列出
[root@client ~]# mount
192.168.142.138:/pub on /mnt type nfs4 (rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.142.139,local_lock=none,addr=192.168.142.138)
更改新的文件系统权限
[root@client ~]# mount -o remount,ro /mnt
[root@client ~]# mount
192.168.142.138:/pub on /mnt type nfs4 (ro,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.142.139,local_lock=none,addr=192.168.142.138)
测试权限

服务端138
[root@localhost ~]# hostname server
[root@localhost ~]# bash
[root@server ~]# cd /pub
[root@server pub]# ll
总用量 0
[root@server pub]# touch {1…10}

客户端139
[root@client ~]# showmount -e 192.168.142.138 -e指定显示哪台主机的文件系统
Export list for 192.168.142.138:
/pub *
[root@client ~]# cd /mnt
[root@client mnt]# ll 读取文件
总用量 0
-rw-r–r--. 1 root root 0 8月 21 08:13 1
-rw-r–r--. 1 root root 0 8月 21 08:13 10
-rw-r–r--. 1 root root 0 8月 21 08:13 2
-rw-r–r--. 1 root root 0 8月 21 08:13 3
-rw-r–r--. 1 root root 0 8月 21 08:13 4
-rw-r–r--. 1 root root 0 8月 21 08:13 5
-rw-r–r--. 1 root root 0 8月 21 08:13 6
-rw-r–r--. 1 root root 0 8月 21 08:13 7
-rw-r–r--. 1 root root 0 8月 21 08:13 8
-rw-r–r--. 1 root root 0 8月 21 08:13 9
[root@client mnt]# touch c1 创建文件
touch: 无法创建 ‘c1’: 只读文件系统

服务端138
[root@server pub]# vim /etc/exports
#共享目录路径 共享的主机(ro/rw,参数信息)
/pub *(rw)
[root@server pub]# exportfs -ar
[root@server pub]# ll -d
drwxr-xr-x. 2 root root 97 8月 21 08:13 .
[root@server pub]# chmod o+w .

客户端139
[root@client mnt]# touch c1
[root@client mnt]# id redhat
uid=1004(redhat) gid=1004(redhat) 组=1004(redhat)

服务端138
[root@server pub]# id redhat
uid=1004(redhat) gid=1004(redhat) 组=1004(redhat)

客户端139
[redhat@client mnt]$ cd /mnt
[redhat@client mnt]$ touch red1
通过ll查看red1的用户身份为redhat
4.访问权限选项
rw 表示可读写
ro 表示只读权限
sync async 请求或者写入数据时,数据同步写入到NFS server的硬盘中后才会返回
root_squash 允许root身份映射
no_root_squash 取消root身份映射
all_squash 允许所有身份进行映射
no_all_squash 取消所有身份映射
anonuid anongid 用户映射的uid gid

案例:实现用户自定义信息
[root@server pub]# vim /etc/exports
#共享目录路径 共享的主机(ro/rw,参数信息)
/pub *(rw,all_squash,anonuid=1000,anongid=1000)
[root@server pub]# exportfs -r

案例:架设一台NFS服务器,并按照以下要求配置
开放/nfs/shared目录,供所有用户查询资料
开放/nfs/upload目录,网段主机可以上传目录
并将所有用户即所属组映射为nfs-upload,其uid和gid均为210
1.分析配置什么服务,安装对应的服务包
nfs-utils
2.分析要求自定义配置信息
配置格式:共享目录 可以访问的主机(参数信息)
vim /etc/exports
/nfs/upload 192.168.142.0/24(rw,all_squash,anonuid=210,anongid=210)
3.根据配置在服务端创建资源信息
mkdir /nfs/upload -pv
chmod o+w /nfs/upload
touch /nfs/upload/{a…d}
useradd -u 210 nfs-upload
groupmod -g 210 nfs-upload
4.重启服务识别新配置
systemctl start nfs-server exportfs -ar
5.测试
showmount -e 服务器的ip
useradd -u 210 nfs-upload
groupmod -g 210 nfs-upload
mount 192.168.142.138:/nfs/upload /mnt

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:28:31  更:2021-08-26 12:30:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:20:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码