目录
一、NFS基本概述
二、NFS共享文件实验
2.1、安装nfs和rpcbind软件
2.2、修改配置文件设置共享
2.3、创建共享目录
编辑
2.4、开启服务
2.5、客户端验证共享目录可访问
三、tcpdump命令
3.1、概述
3.2、简单表达
3.3、过滤规则
编辑
3.4、tcpdump常见参数
一、NFS基本概述
NFS是一种基于TCP/IP传输的网络文件系统协议,通过NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
特点:采用TCP/IP传输网络文件;安全性低;简单易操作;适合局域网环境等。
为什么使用共享存储:
实现多台服务器之间数据共享 ;实现多台服务器之间数据一致。
NFS实现原理 :
1、假如访问的是NFS客户端,先调用不同的函数(例如Read()函数,读功能、Write()函数,写功能、
Create()函数,创建功能、Remove()函数、删除功能、Rename()函数,重命名功能)对数据进行处理。
2、调用完函数后,首先NFS客户端会建立TCP连接,通过TCP/IP的方式传递给NFS服务端,连上远端的
服务器。
3、接着NFS服务端接收到请求后,NFS服务器会做3步系列操作(环环相扣,先映射端口,然后验证是
否能登录服务器,最后验证文件使用权限),如下: 首先,调用portmap进程进行端口映射。
接着,调用Rpc.nfsd进程来验证NFS客户端是否拥有对应的权限连接NFS服务端。
最后,调用Rpc.mount进程来验证客户端是否拥有对应的文件使用权限;
4、Portmap进程实现用户映射和压缩
5、最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。
二、NFS共享文件实验
2.1、安装nfs和rpcbind软件
客户端和服务端都要安装
2.2、修改配置文件设置共享
vim /etc/exports #NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)
常用选项:rw ## 表示允许读写ro ## 表示为只读 sync 表示同步写入到内存与硬盘中no_root_squash ## 表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash )##如果不加那么客户端无法在里面编辑或写入文件,因为默认以 nfsnobody 的权限root_squash##表示客户机用root 用户访问该共享目录时,将 root 用户映射成匿名用户其它常用选项:all_squash ## 所有访问用户都映射为匿名用户或用户组async ## 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据subtree_check (默认) ##若输出目录是一个子目录,则 nfs 服务器将检查其父目录的权限no_subtree_check## 即使输出目录是一个子目录, nfs 服务器也不检查其父目录的权限,这样可 以提高效率
2.3、创建共享目录
2.4、开启服务
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
2.5、客户端验证共享目录可访问
注意:
NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停
掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上 -lf 才能卸载
-l 表示解除正在繁忙的文件系统,-f 表示强制。
三、tcpdump命令
3.1、概述
Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。
tcpdump可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具,windows平台有wireshark等工具,tcpdump可以将网络中传输的数据包的“包头”全部捕获过来进行分析,其支持网络层、特定的传输协议、数据发送和接收的主机、网卡和端口的过滤,并提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息。
3.2、简单表达
tcpdump option proto dir type
选项 协议 数据的方向 抓取的数据类型
协议关键字:包括ip、arp、rarp、udp
数据传输方向的关键字: 包括src、dst、dst or src、dst and src,这些关键字指明了传输的方向;
关于数据类型的关键字: 包括host、port、net。
[root@localhost data]#tcpdump -i ens33
输出格式
11:53:55.288476 IP 192.168.91.1.47496 > localhost.localdomain.ssh: Flags [P.],
seq 261:313, ack 1688848, win 4106, length 52^C
输出格式讲解:
第一列:时分毫秒 11:53:55.288476
第二例:网络协议ip
第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向
第四列:主机名协议 主机名:localhost.localdomain 协议:ssh
第五列: seq号 ack号 win窗口长度 tcp的标志位
3.3、过滤规则
1.基于ip地址/网段过滤
host选项 dst 选项 目的地址 src 选项 源地址 net 选项
2.基于端口过滤
port 端口号 tcpdump port 80
protocal
协议种类:ip arp icmp tcp udp
应用层协议不可以直接抓取
3.4、tcpdump常见参数
-i ##指定监听网络监听端口
-w ##将捕获信息保存到文件中,且不分析核打印在屏幕上
-r ##读取上面存储的文件
-n ##不把ip转换成域名,直接显示ip
-nn ##直接显示ip和端口号
-t ##在每行的输出中,不显示时间
-tt ##输出一个时间戳
时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。
-ttt ##每行之间的时间间隔
-tttt ##详细日期
-v ##产生详细的输出
-c ##指定收取数据包的数量
-C ##需要与w 配合使用 指定单个文件的大小 百万字节
-Q ##过滤数据包的方向 in out inout
-q ##简洁的输出
-D ##显示所有可用的列表
-s ##指定数据包的大小