保障4-0525任务打卡

    xiaoxiao2025-09-10  63

    任务列表: 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

    14.1 NFS介绍

    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上的一致

    2,NFS应用场景

    多台机器同时共享数据,可以通过NFS来实现。

    3,NFS原理

    提供RPC协议的服务名称是“rpcbind”rpcbind服务会监听111端口nfs要借助rpc协议进行通信

    14.2 NFS服务端安装配置

    1,场景模拟

    ip:192.168.19.101为服务端ip:192.168.19.102为客户端

    2,安装服务

    服务端安装nfs-utils rpcbind这两个服务 yum install -y nfs-utils rpcbind 客户端安装nfs-utils服务 yum install -y nfs-utils

    3,编辑配置文件

    vim /etc/exports 在服务端配置文件内写入以下内容 /home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) /hnome/nfstestdir是共享的目录后半段的内容是可以访问的客户端ip。小括号号里的内容在配置里讲。

    4,创建共享目录

    mkdir /home/nfstestdir chmod 777 /home/nfstestdir 为共享目录设置777权权是为了方便实验。在生产环境中应该跟据实际情况赋予目录权限。

    5,启动服务

    systemctl start rpcbind systemctl start nfs 服务端启动nfs时会自动启动rpc相关服务

    6,加入开机启动

    systemctl enable rpcbind systemctl enable nfs

    14.3 NFS配置选项

    NFS配置选项是指cat /etc/exports文件中的小括号内容

    配置分为三个部分

    读写控制内存与磁盘数据的时实同步客户端访问用户权限控制

    1,读写控制

    可以写成rw或者rorw读写ro只读

    2,时实同步

    sync内存的数据会立即写入磁盘,缺点是影响磁盘效率。async内存的数据会每隔一段时间,缺点是内存中的数据没写入磁盘的话会丢失。

    3,访问控制

    no_root_squash当使用该选项后,客户端的root用户将会和服务端root用户权限一致。root_squash 将客户端的root用户限制为指定用户。all_squash 将客户端的所有用户都限制为指定用户。anonuid/anongid 指定限制成为的用户的gid和uid。

    客户端挂载

    为保证实验成功,关闭服务端与客户端的防火墙 systemctl stop firewalld 注意要两面都关

    1,查看服务端的共享内容

    [root@nfs1 ~]# showmount -e 192.168.19.101 Export list for 192.168.19.101: /home/nfstestdir 192.168.19.0/24 showmonut -e可以查看指定ip的共享内容

    2,挂载

    mount -t nfs 192.168.133.130:/home/nfstestdir /mnt/ 需要-t指定挂载类型为nfs远程路径格式为:ip:绝对路径

    3,实验

    客户端df -h查看磁盘挂载情况 服务端创建文件 touch /home/nfstestdir/1.txt 这时客户端也会显示出相同的文件来,说明实验成功。服务端配置限制用户时使用的是uid和gid。反应到客户机上就是客户机的uid和gid.

    14.4 exportfs命令

    exportfs是跟nfs-utils一起安装的nfs服务在客户端挂载时不能重启或关闭。这样会导致服务进程死掉。nfs服务在关闭前一定要将客户端已挂载的目录卸载掉。

    exportfs选项

    -r 重新挂载 这选项会重新挂载/etc/exports内的所有配置-u 卸载指定目录-a 一般和重新挂载和卸载使用。表示全部。-v 显示共享目录

    实验

    在服务端的/etc/exports文件中 //增加/tmp/ 192.168.133.0/24(rw,sync,no_root_squash) [root@lnmp ~]# echo "/tmp/ 192.168.19.0/24(rw,sync,no_root_squash)" >> /etc/exports [root@lnmp ~]# cat /etc/exports /home/nfstestdir 192.168.19.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) /tmp/ 192.168.19.0/24(rw,sync,no_root_squash) 服务端重载配置 [root@lnmp ~]# exportfs -arv exporting 192.168.19.0/24:/tmp exporting 192.168.19.0/24:/home/nfstestdir 客户端查看共享目录 [root@nfs1 mnt]# showmount -e 192.168.19.101 Export list for 192.168.19.101: /tmp 192.168.19.0/24 /home/nfstestdir 192.168.19.0/24

    14.5 NFS客户端问题

    客户端文件属主属组nobody

    NFS 4版本会有该问题客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody

    解决方案1

    客户端挂载时加上 -o nfsvers=3 mount -t nfs -o nfsvers=3 192.168.19.101:/tmp/ /mnt/ 表示指定nfs的版本为3

    解决方案2

    客户端和服务端都需要 vim /etc/idmapd.conf 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧)然后再重启rpcidmapd服务,没有这个服务就重启rpcbind服务

    15.1 FTP介绍

    FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。小公司用的多,大企业不用FTP,因为不安全

    15.2/15.3 使用vsftpd搭建ftp

    1,安装

    yum install -y vsftpd cnetos自带vsftp

    2,创建ftp专用登录用户

    useradd -s /sbin/nologin virftp 为了安全,指定这个用户的shell不让他通过SSH登录

    3,编辑虚拟ftp用户登录信息

    vim /etc/vsftpd/vsftpd_login 这里的用户会映射到virftp用户上内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行 testuser1 47721852

    4,为虚拟用户登录文件设置权限

    chmod 600 /etc/vsftpd/vsftpd_login

    5,将这个文件转化为二进制文件

    db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

    6,编辑虚拟用户配置文件

    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 local_root虚拟用户家目录anonymous_enable是否允许匿名用户write_enable是否可写local_umask新目录和新文件的权限anon_upload_enable是否允许匿名用户上传anon_mkdir_write_enable是否允许匿名用户创建目录idle_session_timeout空闲超时时间data_connection_timeout数据传输超时时间max_clients最大连接客户端数量

    7,创建ftp目录

    mkdir /home/virftp/testuser1 chown -R virftp:virftp /home/virftp 这个目录必须要给virftp这个用户使用权限

    8,自定义密码文件

    vim /etc/pam.d/vsftpd 在这个文件的开头,#%PAM-1.0下边插入以下内容 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 32位系统和64位文件的lib目录不一样

    9,编辑vfsftp主配置文件

    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 virtual_use_local_privs是否启用虚拟用户guest_username指定虚拟用户所映射的系统用户user_config_dir虚拟用户配置文件

    10,启动ftp服务

    systemctl start vsftpd ftp监听21端口,ssh监听22,telnet监听23

    11,测试

    在windows系统上安装ftp客户端软件《filezilla client》在linux系统上安装ftp客户端软件《lftp》登录ftp [root@lnmp testuser1]# lftp testuser1@127.0.0.1 口令: 注意口令错误会提示503。密码文件中不能有空格。可以用cat -E查看。若不正常查看日志/var/log/messages和/var/log/secure

    12,使用xshell的sftp功能登录服务器

    使用lcd定位下载文件目录使用get命令下载文件

    15.4 xshell使用xftp传输文件

    1,使用快捷键呼出xftp

    ctrl+alt+F如果没有安装xftp,那么会弹出下载页面。

    2,启动快捷键后弹出的窗口。

    在这个界面下,可以像使用本地磁盘那样对文件或目录进行操作。

    15.5 使用pure-ftpd搭建ftp服务

    1,安装

    yum install -y pure-ftpd pure-ftpd这个包的安装,依赖epel扩展源。如果发现无法安装,请先安装epel扩展源。

    2,修改配置文件

    vim /etc/pure-ftpd/pure-ftpd.conf 找到pureftpd.pdb这行,将行首的井号删除删掉井号是为了让密码配置文件生效。

    3,停止vsftpd服务,启动pure-ftpd服务。

    systemctl stop vsftpd systemctl start pure-ftpd 先把21端口空出来

    4,创建共享目录

    useradd -u 1010 pure-ftp mkdir /data/ftp chown -R pure-ftp:pure-ftp /data/ftp 要让pure-ftp用户来操作这个共享目录

    5,创建虚拟用户映射系统用户

    pure-pw useradd ftp-user1 pure-ftp -d /data/ftp useradd 添加虚拟用户-u 映射系统用户-d 指定共享目录输入两次密码后用户建立完成

    6,保存密码文件

    pure-pw mkdb 不执行这个过程是无法登录的。

    7,测试

    先在/data/ftp目录下创建一个文件 touch /data/ftp/xy.txt 登录 lftp ftp_user1@127.0.0.1 查看内容 [root@lnmp ~]# lftp ftp_user1@127.0.0.1 口令: lftp ftp_user1@127.0.0.1:~> ls drwxr-xr-x 2 1010 pure-ftp 20 May 26 23:11 . drwxr-xr-x 2 1010 pure-ftp 20 May 26 23:11 .. -rw-r--r-- 1 0 0 0 May 26 23:11 xy.txt

    直播笔记

    1,NFS使用场景

    一台机器上把磁盘分享出来。其他机器,把这个分享出的内容当做硬盘来挂载。最好是把分享的目录挂载到客户机相同的目录去。缺点是网络读写会造成大量的拥堵。可使用的范围被定为:1,访问量不大。2,并发量不高的情况下。

    2,NFS生产环境使用注意事项

    由于nfs服务器出现故障,导致php无法读取内容,最终php资源耗尽。而显示502错误。解决方案: 卸载掉nfs挂载的磁盘。使访问的资源404。这样可以让php得以释放。共享文件的高可用方案: 1,rsync + inotify 2,商用nas等方案绝对不允许使用NFS来解决数据库(如:mysql)的读写。

    2,FTP使用场景

    FTP优点:方便 缺点:不安全SFTP和FTP的区别是:SFTP使用SSH协议。所以更安全。规范的上传文件的方式是通过代码发布平台或工具来完成。

    3,FTP的主动和被动

    http://ask.apelearn.com/question/961

    主动

    被动

    最新回复(0)