1 NFS介绍
2 NFS服务端安装配置
3 NFS配置选项
4 exportfs命令
5 NFS客户端问题
6 FTP介绍
7 使用vsftpd搭建ftp
8 xshell使用xftp传输文件
9 使用pure-ftpd搭建ftp服务



1、NFS介绍

  • NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步
  • NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,目前最新为4.1版本
  • NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写
  • NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

NFS架构

NFS与FTP性能对比_运维

NFS原理图

NFS与FTP性能对比_NFS与FTP性能对比_02

服务端的NFS服务监听一个端口通过RPC协议监听的端口,再去告诉客户端RPC协议,然后NFS客户端通过本机的RPC端口回传数据信息到服务端NFS监听的端口,最终实现通信

NFS服务需要借助RPC协议实现通信



2、NFS服务端安装配置

  • yum install -y nfs-utils rpcbind
  • vim /etc/exports //加入如下内容

/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

  • 保存配置文件后,执行如下准备操作
  • mkdir /home/nfstestdir
  • chmod 777 /home/nfstestdir
  • systemctl start rpcbind
  • systemctl start nfs
  • systemctl enable rpcbind
  • systemctl enable nfs

准备两台虚拟机,一台作为服务端,一台作为客户端。

分别查看服务端和客户端的IP地址

NFS与FTP性能对比_操作系统_03

NFS与FTP性能对比_操作系统_04

在服务端上安装两个包,分别为 nfs-utils 和 rpcbind

NFS与FTP性能对比_NFS与FTP性能对比_05

在客户端上安装nfs-utils 包

NFS与FTP性能对比_NFS与FTP性能对比_06

安装完成后,编辑文件/etc/exports,添加一行内容,保存退出

NFS与FTP性能对比_客户端_07

NFS与FTP性能对比_客户端_08

创建目录并设定777权限

NFS与FTP性能对比_运维_09

查看服务端和客户端监听的端口

NFS与FTP性能对比_客户端_10

NFS与FTP性能对比_操作系统_11

启动NFS服务并查看

NFS与FTP性能对比_运维_12

NFS与FTP性能对比_运维_13

设置开机启动

NFS与FTP性能对比_客户端_14



3、NFS配置选项

  • rw 读写
  • ro 只读
  • sync 同步模式,内存数据实时写入磁盘,相应的就会降低磁盘效率
  • async 非同步模式,它会每隔一段时间才会将数据刷新到磁盘
  • no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
  • root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
  • all_squash 客户端上所有用户(包括root用户)在使用NFS共享目录时都被限定为一个普通用户
  • anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

客户端挂载NFS,查看客户端是否有权限

NFS与FTP性能对比_运维_15

出现报错,无法与192.168.133.130通信,是由于防火墙导致的,需要关闭防火墙

关闭防火墙

NFS与FTP性能对比_NFS与FTP性能对比_16

NFS与FTP性能对比_客户端_17

再查看NFS客户端是否有权限

NFS与FTP性能对比_运维_18

共享的目录是/home/nfstestdir

在客户端上挂载并查看

NFS与FTP性能对比_运维_19

在客户端共享的目录下创建文件并查看

NFS与FTP性能对比_NFS与FTP性能对比_20

到服务端上查看

NFS与FTP性能对比_操作系统_21

一旦挂载了NFS的共享目录,不管用哪一个用户来操作,都会用以1000uid和1000gid的用户反映过来。

客户端用户显示aming,而服务端用户显示mysql,是因为NFS上限定了用户。



4、exportfs命令

  • 常用选项
  • -a 全部挂载或者全部卸载
  • -r 重新挂载
  • -u 卸载某一个目录
  • -v 显示共享目录
  • 以下操作在服务端上 -vim /etc/exports //增加

/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)

  • exportfs -arv //不用重启nfs服务,配置文件就会生效
  • 以下操作在客户端
  • mkdir /aminglinux
  • mount -t nfs -onolock 192.168.133.130:/tmp /aminglinux
  • touch /aminglinux/test.txt
  • ls -l !$
  • -oremount,nfsvers=3

客户端上卸载挂载点

NFS与FTP性能对比_开发工具_22

服务端上exportfs -arv命令可以使更改后的配置文件生效。

NFS与FTP性能对比_开发工具_23

编辑/etc/exports配置文件,增加一行内容,保存退出

NFS与FTP性能对比_操作系统_24

NFS与FTP性能对比_客户端_25

再执行exportfs -arv命令

NFS与FTP性能对比_客户端_26

在客户端上执行showmount -e命令看是否生效

NFS与FTP性能对比_运维_27

客户端挂载,将 tmp目录挂载到mnt目录下

NFS与FTP性能对比_操作系统_28

在服务端上查看tmp目录

NFS与FTP性能对比_客户端_29

客户端的mnt目录下创建文件,查看目录下的文件

NFS与FTP性能对比_开发工具_30

NFS与FTP性能对比_NFS与FTP性能对比_31

服务端查看tmp目录

NFS与FTP性能对比_操作系统_32



5、NFS客户端问题

  • NFS 4版本会有该问题
  • 客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
  • 客户端挂载时加上 -o nfsvers=3
  • 客户端和服务端都需要
  • vim /etc/idmapd.conf //
  • 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务

方法一:在客户端挂载时加上选项-o nfsvers=3

NFS与FTP性能对比_NFS与FTP性能对比_33

NFS与FTP性能对比_运维_34

方法二:客户端和服务端都需要vim /etc/idmapd.conf

把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义),然后再重启rpcidmapd服务



6、FTP介绍

FTP(file transfer protocol)文件传输协议,用于在Internet上控制文件的双向传输。FTP主要作用是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或把本地文件传送到远程计算机。

由于FTP服务的安全性较差,所以大企业不使用,小企业会经常使用,大企业会使用自动化发布工具。



7、使用vsftpd搭建ftp

  • centos上自带vsftpd
  • yum install -y vsftpd
  • useradd -s /sbin/nologin virftp
  • vim /etc/vsftpd/vsftpd_login //内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

testuser1

aminglinux

  • chmod 600 /etc/vsftpd/vsftpd_login
  • db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
  • mkdir /etc/vsftpd/vsftpd_user_conf
  • cd /etc/vsftpd/vsftpd_user_conf
  • vim testuser1 //加入如下内容

local_root=/home/virftp/testuser1

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

  • mkdir /home/virftp/testuser1
  • touch /home/virftp/testuser1/aming.txt
  • chown -R virftp:virftp /home/virftp
  • vim /etc/pam.d/vsftpd //在最前面加上

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

  • vim /etc/vsftpd/vsftpd.conf
  • 将anonymous_enable=YES 改为 anonymous_enable=NO
  • 将#anon_upload_enable=YES 改为 anon_upload_enable=NO
  • 将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
  • 再增加如下内容

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

  • systemctl start vsftpd //启动vsftpd服务


使用vsftpd搭建ftp

安装vsftpd包

NFS与FTP性能对比_客户端_35

安装完成后创建一个普通用户,目的是让虚拟用户做一个映射的

NFS与FTP性能对比_客户端_36

编辑虚拟用户的密码文件,定义用户名(奇数行)和密码(偶数行),保存退出

NFS与FTP性能对比_NFS与FTP性能对比_37

NFS与FTP性能对比_开发工具_38

更改文件权限,为了确保密码文件的安全,防止所有的用户都可以读取

NFS与FTP性能对比_开发工具_39

将文本的密码文件转换为计算机识别的二进制文件

NFS与FTP性能对比_开发工具_40

创建虚拟用户配置文件目录,创建第一个用户的配置文件(与用户名保持一致),添加内容,保存退出

NFS与FTP性能对比_运维_41

NFS与FTP性能对比_NFS与FTP性能对比_42

local_root=/home/virftp/testuser1 ,指定虚拟用户的家目录

anonymous_enable=NO,是否允许匿名用户

anon_upload_enable=NO,是否允许匿名用户上传

anon_mkdir_write_enable=NO,是否允许匿名用户创建目录和写

idle_session_timeout=600,连接ftp超时时间(秒)

data_connection_timeout=120,数据传输的超时时间(秒)

max_clients=10,最多允许同时几个终端连接

创建虚拟用户的家目录,并新建一个文件,修改权限

NFS与FTP性能对比_开发工具_43

定义密码文件的路径,添加两行内容,保存退出

NFS与FTP性能对比_客户端_44

NFS与FTP性能对比_运维_45

注意:在centos6中“/lib64/security/pam_userdb.so”该文件需要区分是32位还是64位版本

编辑 /etc/vsftpd/vsftpd.conf 主配置文件,修改并在最下面添加几行内容,保存退出

NFS与FTP性能对比_运维_46

NFS与FTP性能对比_开发工具_47

NFS与FTP性能对比_操作系统_48

guest_username=virftp,开启虚拟用户和系统用户的映射

virtual_use_local_privs=YES,告诉服务现在用的虚拟用户

启动vsftpd服务,查看进程和监听端口

NFS与FTP性能对比_NFS与FTP性能对比_49

FTP监听是21端口,22端口是sshd,23端口是telnet



FTP测试

在windows上安装一个FTP的客户端软件filezilla client,linux上的FTP测试,安装lftp包

NFS与FTP性能对比_运维_50

使用lftp命令如下,输入口令,并用ls查看

NFS与FTP性能对比_NFS与FTP性能对比_51

? 可以查看哪些能使用的命令

NFS与FTP性能对比_运维_52

把aming.txt文件直接下载到当前目录,按quit退出,然后查看

NFS与FTP性能对比_客户端_53



利用xshell实现跟FTP类似的功能

第一种方案:新建一个会话,协议改成 sftp 协议,输入名称,IP和端口号

NFS与FTP性能对比_NFS与FTP性能对比_54

然后连接,输入用户名和密码

NFS与FTP性能对比_NFS与FTP性能对比_55

NFS与FTP性能对比_操作系统_56

NFS与FTP性能对比_操作系统_57

登录后默认在root目录下,切换到/tmp目录下,下载文件,保存的地址也可以设置

NFS与FTP性能对比_运维_58

NFS与FTP性能对比_操作系统_59

NFS与FTP性能对比_操作系统_60

输入exit命令可以退出。

第二种方案:按ctrl+alt+f,下载xftp并安装即可。

NFS与FTP性能对比_运维_61



8、xshell使用xftp传输文件

在xshell按快捷键 ctrl+alt+f ,会弹出个对话框,选择下载xftp,进入网页,点击下载链接

NFS与FTP性能对比_运维_62

进入界面,选择上面一行(免费),填写信息,提交

NFS与FTP性能对比_开发工具_63

根据邮箱中的链接,点击下载,然后安装;然后到Xshell中,按ctrl+alt+f,会自动弹出xftp的页面,打开之后会进入到root目录下

NFS与FTP性能对比_客户端_64

在虚拟机上暂停掉21端口,一样也可以传输文件

NFS与FTP性能对比_客户端_65

若是想要下载linux系统里的文件,只需双击,或者直接拖动到左边即可

NFS与FTP性能对比_客户端_66



9、使用pure-ftpd搭建ftp服务

  • yum install -y epel-release
  • yum install -y pure-ftpd
  • vim /etc/pure-ftpd/pure-ftpd.conf//找到pureftpd.pdb这行,把行首的#删除
  • systemctl stop vsftpd
  • systemctl start pure-ftpd
  • mkdir /data/ftp
  • useradd -u 1020 pure-ftp
  • chown -R pure-ftp:pure-ftp /data/ftp
  • pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp
  • pure-pw mkdb
  • pure-pw list/userdel/usermod/passwd


安装pure-ftpd

NFS与FTP性能对比_开发工具_67

更改配置文件,搜索/pdb那一行,将前面的#删掉,保存退出

NFS与FTP性能对比_开发工具_68

NFS与FTP性能对比_操作系统_69

先停掉vsftpd监听打开的21端口,systemctl stop vsftpd

然后启动pure-ftpd服务,并查看

NFS与FTP性能对比_运维_70

创建测试目录和创建用户,更改属主和属组

NFS与FTP性能对比_NFS与FTP性能对比_71

创建虚拟用户ftp_usera, -u 指定系统用户,-d 指定虚拟用户的家目录,输入两次密码

NFS与FTP性能对比_运维_72

使用pure-pw --help查看该命令用法

命令pure-pw mkdb,把密码生成pure-ftpd服务所识别的一种文件,需要执行,才能登陆

NFS与FTP性能对比_运维_73



测试pure-ftpd

在/data/ftp/目录下创建一个文件

NFS与FTP性能对比_开发工具_74

更改属主和属组,登录pure-ftpd中去查看

NFS与FTP性能对比_开发工具_75