zoukankan      html  css  js  c++  java
  • FTP

    一、FTP连接及传输模式

    1. 控制连接:TCP21,用于发送FTP命令信息


    2. 数据连接:TCP20,用于上传、下载数据


    3. 数据连接的建立类型:

    1)主动模式:服务器主动发起数据连接服务器找你
    首先由客户端向服务端的21端口建立FTP控制连接。当需要传输数据时,客户端以PORT 命令告知服务区“我打开了某端口,你过来连接我”,预算服务器从20端口向客户端的该端口发送请求并建立数据连接。
    2)被动模式:服务器被动等待客户端数据连接
    如果客户端所在网络的防火墙禁止主动模式连接,通常回 使用被动模式。
    首先由客户端向服务器的21端口建立FTP控制连接。当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

     

    4. 传输模式

    传输模式:可以是文本模式,也可以是二进制模式,二进制模式更适合传输图片等非文本字符的文件

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    5、FTP服务器的作用

    用于用户到服务器里上传和下载,具体看下图

     

    二、FTP用户类型

    匿名用户:不需要输入用户(多人共享一个) 
    本地用户:本地的Linux登陆用户(每个共享用户的家目录) 
    虚拟用户:不同于本地用户,可以创建一个匿名用户的FTP,跟Linux没有关系

     

    三、FTP匿名用户服务搭建

    1FTP匿名用户服务搭建

    查看rpm -qa | grep vsftpd

    首先查看服务端有没有vsftpd命令,没有则需要yum安装一下

     

     

     

     

    修改属主

    yum装完vsftpd自然就有/var/ftp/pub的共享目录 
    属主是root别的用户没有办法读写,所以需要把pub属主换成ftp,ftp程序用户系统默认就有

     

     

    备份配置文件

    安装完vsftpd自然就有/etc/vsftpd/vsftpd.conf      ftp配置文件,为了安全先备份一份

    cp vsftpd.conf{,.bak}

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    vim打开ftp配置文件/etc/vsftpd/vsftpd.conf

     

     

    启动ftp服务

     

     

    因为服务端共享目录里没有文件,所以先创建一个

     

     

     

     

     

    客户端只需要安装ftp命令就可以

     

     

    2、登陆FTP

    ftp客户端登陆服务端,

    匿名用户名就是ftp,没有密码为空,所以直接回车

     

     

    ls看一下当前,

    看到了pub,cd进去看到了sl 自然就证明了我已经连接到了服务端

     

    ftp命令

    linux不一样,所以需要help查看一下

     

     

    ftp里get代表下载,put代表上传

    你当前在哪个目录登陆ftp就下载到哪个目录

     

     

     

    ftp里put代表上传命令

    也只能上传客户端当前目录里的文件,不能是绝对路径上传

     

     

     

    用户下载是服务器赋予的读权限,因为对服务器没有进行任何改变

     

    四、FTP本地用户服务搭建

    1、准备工作

    每个用户的共享文件在每个用户的家目录里

    首先先将配置完成后的匿名用户备份,在把初始的配置文件复制回来

    做个备份

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    匿名关闭

    因为是ftp本地用户搭建所以把匿名关闭,在把第96行的本地用户家目录取消注释并开启

    其他还是开的

     

     

     

    本地用户开启(96)行

    开启本地用户的家目录锁定

     

     

    修改完配置文件要重新启动

    /etc/init.d/vsftpd reload

     

     

     

     

    2、本地搭建

    创建本地用户

    因为是ftp本地用户服务所以需要先创建一个普通用户和密码用客户端ftp登陆服务端输入yunjisuan账号和密码

     

     

    登陆

     

    刚创建用户家目录没有任何东西,所有在服务端yunjisuan用户创建一个文件

     

    在客户端ftp服务里ls看到了创建的新文件

     

     

    特别说明

    说明每个用户的共享文件都在每个用户的家目录里

    匿名的FTP用于多人共享一个目录或文件,本地是每个用户独立空间

     

    黑名单设置

    /etc/vsftpd/ftpusers   user_list   (两个都是黑名单功能)

    FTP给用户加黑名单,优先级高于/etc/vsftpd/user_list   

    即使用户不可访问FTP服务器,可以通过vsftpd.conf将此修改为白名单且仅此名单中的用户可以访问。

     

     

    五、FTP虚拟用户服务搭建

    1、准备工作

    FTP虚拟账号是FTP自己承认的虚拟账号

    每个用户通过虚拟账号进来都是看到一个同一空间,都是这个虚拟账号共享的

    首先需要把ftp本地用户服务备份,在把源配置文件复制回来

     

     

     

     

     

     

     

     

     

    db_load创建虚拟账号文件

    /etc/创建虚拟账号vsftpd文件

     

     

     

     

     

    db_load命令转换成数据文件

    创建完密码文件需要db_load命令转换成数据文件,-T允许非程序使用该数据库 -t指定算法 hash -f代表加密,因为是密码,为了增加安全性需要给chmod 600 vusers.db权限

     

     

    创建程序用户(最后映射成的虚拟账号)

     

     

    创建pam认证文件

     

     

    2、修改配置文件

    修改配置文件其余的文件配置跟本地的一样。

    虚拟账号也是通过本地账号来做映射的,就是我们刚刚创建的virtual

    所以匿名用户还要关闭,本地账号要开启,因为都是通过虚拟账号映射到本地账号上的

     

    首先把匿名用户关闭

     

     

     

    把最下面配置文件进行修改到下面的图

    把最下面配置文件

     

    改成这样

     

     

     

     

     

     

    刚刚修改的注释:开启映射账号

     

     

    重启

    /etc/init.d/vsftpd reload

     

    3、共享目录位置就是刚刚创建用户指定的家目录

    因为是指定创建的家目录,所以需要去/var/ftproot创建点文件

     

    登陆

    输入的账号密码就是之前创建的一堆账号密码文件里的

     

     

    4、想要每个虚拟用户都有不同的目录

    得加配置文件和自己创建目录

    实现每个虚拟用户不同根目录,不同权限的管控,首先在/etc/vsftpd创建mkdir /vusers.dir目录,创建完进入目录touch 虚拟账号里的名字

     

     

     

     

     

     

    修改新创建虚拟账号文件

    vim手动打开/etc/vsftpd/vusers.dir/虚拟账号名

     

     

     

    给虚拟账号创建根目录

    配置完手动mkdir -p /var/虚拟账号名,chown virtual /var/虚拟账号名:把账号属主换成virtual有读写权限

     

     

    最后需要修改/etc/vsftpd/vsftpd.conf总配置文件

    告诉总配置文件,每个虚拟账号的单独的配置文件的位置

     

     

    重启服务/etc/init.d/vsftpd reload后进入测试环境,手动在服务端家目录创建个文件

    这样就可以了,每个虚拟用户的家目录就创建成功了

     

    修改虚拟账户的配置文件

    mkdir /var/lisi

    vim lisi

     

    anon_upload_enable=YES

    anon_max_rate=0    #为“0”,表示不限制最大传输速度

    local_root=/var/lisi

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    document.getElementById("mytxt").style.left=""style.left在IE的FF中注意
    asp.net 用户控件中 使用相对路径的解决方法 图片路径问题(用户控件、图片路径) ,ResolveUrl
    探索 Block (一) (手把手讲解Block 底层实现原理)
    iOS 多线程开发 (概念与API简介)
    iOS 性能小点
    iOS runtime (二)(runtime学习之AutoCoding源码分析)
    探索 NSRunLoop (二)(NSRunLoop 自己动手实现SimpleRunLoop)
    iOS NSNotificationCenter (自己实现一个通知中心XMCNotificationCenter)
    iOS runtime (三)(runtime学习之YYModel源码分析)
    iOS runtime(一)(runtime 分析理解)
  • 原文地址:https://www.cnblogs.com/kakajiang/p/10084606.html
Copyright © 2011-2022 走看看