网络文件共享

157 阅读6分钟

网络文件共享

一. 存储类型

1.DAS DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备

2.NAS NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上

3.SAN 存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。

二. FTP文件传输协议

1.ftp介绍

  • FTP是一种用于在计算机网络上传输文件的标准协议,基于C/S结构。

  • 通过FTP,用户可以在客户端和服务器之间进行文件的上传(上传到服务器)和下载(从服务器下载到本地计算机)操作

  • 双通道协议,

    • 20 数据端口(数据传输)
    • 21 命令端口 (账户验证 权限管理)
  • 用户类型

    • 匿名用户 :ftp,anonymous,对应Linux用户ftp
    • 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow。
    • 虚拟用户:用于特定服务的用户。

2.FTP工作模式

  • 主动模式

FTP主动.png

服务端主动连接 客户端,开启20端口 ,向客户端传输数据

  • 被动模式

FTP被动.png

服务端开启随机端口,等待客户端连接 。

服务端通过命令端口21 ,告知客户端,开启了哪个随机端口

  • 主动和被动模式切换
ftp> passive  
#可以人为指定被动主动

3.安装FTP服务程序vsftp

  • vsftpd是一个在Linux和Unix系统上常见的FTP服务器软件。
[root@Root1 ~]# yum -y install vsftpd

4.开启ftp服务程序

[root@Root1 ~]# systemctl start vsftpd

5.FTP服务配置文件

[root@Root1 ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf                 #配置文件

6.连接FTP服务器

[root@Root2 ~]# ftp 192.168.137.101
Connected to 192.168.137.101 (192.168.137.101).
220 (vsFTPd 3.0.2)
Name (192.168.137.101:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
​
#连接后 默认在服务端的 /var/ftp下 #为什么默认在此目录?#
#因为会生成一个新用户,此目录为新用户的家目录,可以usermod -s 修改用户家目录 来更改ftp连接后的位置

7.修改FTP端口号

vim /etc/vsftpd/vsftpd.conf                         #编辑配置文件
listen_port=2765                                    #设置端口号为2765
​
:wq
​
[root@Root1 ~]# systemctl restart vsftpd
[root@Root1 ~]# ss -natp |grep vsftpd               #这里端口号已变更为2765
LISTEN     0      32        [::]:2765                  [::]:*                   users:(("vsftpd",pid=1949,fd=4))
​

8.配置文件其他个性化参数

主动模式端口
connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 (默认) 指定主动模式的端口
​
被动模式端口
pasv_min_port=6000   0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010
​
使用当地时间
use_localtime=YES 使用当地时间(默认为NO,使用GMT)
​
匿名用户登录
anonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES 匿名用户略过口令检查 , 默认NO
​
匿名用户上传
anon_upload_enable=YES 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 匿名建目录
​
chmod   777   /var/ftp/pub

NFS

NFS(Network File System)是一种用于在网络上分享和访问文件的协议。

NFS允许远程计算机通过网络访问另一台计算机上的文件系统,就像访问本地文件一样。

NFS原理

  1. 客户端请求:NFS 的客户端向 NFS 服务器发送文件访问请求。这可以是读取文件、写入文件或执行其他文件操作。
  2. 访问协议:客户端使用 RPC(Remote Procedure Call)协议与服务器通信。客户端会发送特定的 RPC 调用来请求文件操作,如打开文件、读取文件或关闭文件。
  3. NFS 服务端:NFS 服务器收到来自客户端的请求,并解析这些请求。服务器根据客户端请求的内容,在本地文件系统上执行相应的操作。
  4. 文件传输:当服务器执行文件操作时,它会读取或写入相应的文件或目录。数据通过网络传输,从服务器发送到客户端或从客户端发送到服务器。
  5. 返回结果:服务器完成请求后,会将执行结果返回给客户端。这可能包括成功的确认、文件内容、错误信息等。

NFS优点

  • 节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上
  • 通过网络访问,将减少本地磁盘的使用率。

NFS软件

软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)

相关软件包:rpcbind(必须),tcp_wrappers

yum install -y nfs-utils rpcbind #安装服务

端口:2049(nfsd), 其它端口由portmap(111)分配

RPCbind 111

  • NFS服务主要进程

    • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录

    • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理

    • rpc.lockd 非必要,管理文件锁,避免同时写出错

    • rpc.statd 非必要,检查文件一致性,可修复文件

      说明:CentOS 6 开始portmap进程由rpcbind代替

  • NFS相关文件

    • 日志
    /var/lib/nfs/
    
    • 配置文件
    /etc/exports
    /etc/exports.d/*.exports
    
  • NFS共享配置文件

    • 文件路径
    /etc/eports
    
    • 文件内容

      /目录名 可以访问的网段/子网掩码
      

NFS工具

exportfs

exportfs是一个用于在 Linux 操作系统上管理 NFS(Network File System)导出的命令。

  • 常用的选项

    • -v 查看本机所有NFS共享
    • -r 重读配置文件,并共享目录
    • -a 输出本机所有共享
    • -au 停止本机所有共享

showmount

  • 选项

    • -a 显示所有共享的目录
    • -e <服务器主机名或IP地址> *#显示特定 NFS 服务器上的共享目录
    • -l 仅显示挂载点的主机名或IP地址

模拟实验

1.服务端

关闭防火墙和权限限制

systemctl disable --now firewalld       
setenforce 0

安装NFS和rpcbind软件包

yum -y install nfs-utils rpcbind

创建测试用的共享目录和文件

mkdir /test
touch /test/t1

编辑共享配置文件

vim /etc/exports
​
/test 192.168.137.0/24

启动服务

systemctl start nfs-utils rpcbind

查看服务状态

showmount -e
/test 192.168.137.0/24
​
exportfs -v
/test           192.168.137.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

2.客户端

挂载

[root@localhost ~]# mount 192.168.137.101:/test /mnt
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
t1
​