0525----NFS服务搭建与配置、FTP服务搭建与配置

    xiaoxiao2023-11-13  168

    任务列表:

    14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 扩展 vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs/thread-342-1-1.html ftp的主动和被动模式 http://www.aminglinux.com/bbs/thread-961-1-1.html

    预习笔记

    NFS

    NFS介绍

    ** NFS简介** NFS,Network File System。网络文件系统,即通过网络,对在不同主机上的文件进行共享。 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本,更新比较慢其实4.1是从2010年就开始使用了。 NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。 NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致;

    ** NFS原理** 首先:NFS包括两部分,服务端及客户端 由于NFS服务功能很多,会有很多端口,这些端口还有可能不固定,那么客户端就无法与服务器进行通信,因为程序间通信必须通过端口(tcp/udp都是端到端通信),那么就需要一个中间的桥接机制,RPC进程即充当这样一个角色,RPC的端口是一定的(111),当NFS启动时,会向RPC进行注册, 那么客户端PRC就能与服务器RPC进行通信, 从而进行文件的传输。 当客户端用户打开一个文件或目录时,内核会判断,该文件是本地文件还是远程共享目录文件,如果是远程文件则通过RPC进程访问远程NFS服务端的共享目录,如果是本地文件,则直接打开。 为了更好的并发,RPC进程及NFS进程都有多个。

    安装配置NFS

    用两台机器做实验,一台服务端,一台客户端

    在服务端和客户端安装:nfs-utils包 yum install -y nfs-utils 在服务端新建配置文件并写入以下内容 vim /etc/exports /home/nfstestdir 192.168.196.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

    释义: /home/nfstestdir :定义共享的目录 192.168.196.0/24:为客户端的网段; rw: 读写 ro: 只读 sync: 同步模式,内存数据实时写入磁盘 async :非同步模式 no_root_squash: 客户端挂载NFS共享目录后,root用户不受约束,权限很大 root_squash: 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户 all_squash:客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户 anonuid/anongid: 和上面几个选项搭配使用,定义被限定用户的uid和gid

    在服务端创建共享目录,并将权限修改为777 mkdir /home/nfstestdir chmod 777 /home/nfstestdir 开启nfs服务,查看111端口是否被(显示为systemd) systemctl start nfs netstat -lntp 设置开机启动 systemctl enable nfs 在客户端查看共享的目录 showmount -e 192.168.196.101 如提示下面错误,清空防火墙规则 操作完成之后,可以看到服务端共享的目录 挂载NFS 在客户端输入 mount -t nfs 192.168.196.101:/home/nfstestdir /mnt/ df -h 测试,在客户端该目录下创建文件,在服务端上进行查看

    exportfs命令

    exportps命令常用选项: 释义 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录

    在服务端上输入exportfs -arv 这样就可以让服务器直接生效,不需要再次重启nfs服务 编辑配置文件,增加一个共享的目录 vim /etc/exports exportfs -arv, 直接生效,不用重启NFS服务 在服务端进行测试 查看服务端共享目录showmount -e 192.168.196.101 umount /mnt 将之前挂载的目录卸载 mount -t nfs 192.168.196.101:/tmp /mnt/ 挂载新的目录 查看新创建的文件,gid和uid都是root

    NFS客户端问题

    注意:NFS 4版本会有该问题 我们在分享一个目录且权限设置为no_root_squash,客户端看到的文件属主、组不是root,却是nobody。 这个不是设置错误,是软件本身自带的BUG。

    解决方案: 方案1: 在客户端挂载的时候加上 -o nfsvers=3,其目的是指定nfs使用3版本。 mount -t nfs -o,nfsvers=3 192.168.112.136:/tmp /mnt/ 方案2:在服务端和客户端配置:vim /etc/idmapd.conf vi /etc/idmapd.conf #Domain = local.domain.edu 改为 Domain = xxx.com 重启rpcidmapd服务;

    FTP搭建和配置

    FTP介绍

    我们之前传输文件所用的是rzsz命令,可以简单明了的就把我们所需的文件下载或者上传。但是有个缺陷,不可以上传或者下载大体积的文件。FTP就可以解决这个问题! FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。 FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。 小公司用的多,FTP不够安全。

    使用vsftpd搭建ftp服务

    安装FTP软件vsftpd yum install -y vsftpd 安装后,可以直接使用,默认支持使用系统账号登录。但这样不安全,所以需要建立账号体系; useradd -s /sbin/nologin virftp //创建虚拟用户,-s表示指定用户的shell,/sbin/nologin表示用户不能登陆 vim /etc/vsftpd/vsftpd_login //创建账号、密码文件 奇数行为用户名,偶数行为密码 vsfptd 使用的密码不是明文,所以需要生产相对应的库文件; 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 test1 //新建test1账号的配置文件

    local_root=/home/virftp/test1 //虚拟用户的家目录 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 //最大允许连接的clients客户端

    创建账号test1的家目录,并在其下面创建新文件 mkdir /home/virftp/test1 touch /home/virftp/test1/test.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 测试,安装lftp yum install -y lftp ftp test1@127.0.0.1

    xshell使用xftp传输文件

    使用xshell直接传输 在xshell下,新建会话,按下图设置其属性 设置目标目录; 输入用户名密码连接 进入目录,并使用get下载文件

    xshell使用xftp软件传输文件 在xshell界面上按下“ctrl+alt+F”弹出以下对话框 根据网页提示进行下载 下载完成之后安装程序

    使用pure-ftpd搭建ftp服务

    Pure-ftp为另外一款轻量FTP服务软件,和vsftp类似 安装并配置pure-ftpd yum install -y pure-ftpd 配置文件 vim /etc/pure-ftpd/pure-ftpd.conf 去掉如图所示行前的#号 因为vsftpd和pure-ftpd 共用21端口,因此需要把vsftpd服务关掉,再开启pure-ftpd 创建一个新的系统用户 mkdir /data/ftp //创建数据目录 touch /data/ftp/123.txt //创建一个文件 useradd -u 1010 pure-ftp //设置UID chown -R pure-ftp:pure-ftp /data/ftp/

    通过pure-pw命令增加ftp用户以及配置用户库文件 pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp/ //建立相关信息Password pure-pw mkdb //建立虚拟用户数据 测试 lftp ftp_usera@127.0.0.1

    课堂笔记

    NFS使用场景 服务器少的时候,并发量小得时候

    NFS生产环境中注意事项 NFS出现故障的时候,会导致PHP进程卡死,网页出现502

    FTP使用场景 上传和下载文件

    FTP使用建议 不安全,不建议在生产环境中使用,测试环境中使用。

    最新回复(0)