Linux配置 ftp 和 ftp简单介绍

一、ftp概念?

/*
    ftp是一个协议和http协议都是叫协议
    tcp和udp也是协议
    ftp是文件(以流的形式进行传输)传输协议(针对于文件进行上传和下载)
*/
    1.如果ftp服务器有多台,服务器端无法识别问题:
        1.1.在user表中添加字段(ftp_server)-->根据用户上传的ftp的编号进行update该字段
        1.2.在user表中有一个字段(head_pic)-->存入的图片所在ftp服务器的路径-->查询到该路径使用subString进行截取服务器的IP地址
    
    2.文件名的重复:
        使用用户的id+当前时间的毫秒数+任意的随机数
    
    3.文件存放不规律不方便后期的查询和维护:
        可以根据当前日期进行分文件夹
        2019/08/31--->2019年8月31号所存的图片/文件
            --->pic
            --->file
                --->编写过滤器(过滤所有的图片的后缀)-->返回如果为true--->存入file-->否则存入pic

二、 ftp配置?

1.
    ftp的配置:(nginx一起使用,保证项目的安全性)
    要求:
        所有的ftp服务器都不能叫ftp
        linux的用户名不能叫ftp,就会和ftp的安装冲突,导致ftp无法启动
        在新的linux配置中,HOSTNAME也不能叫ftp
        
        
    1.1检测linux上是否已经安装了ftp
    命令:
    /*    rpm -qa | grep vsftpd
        rpm -qa | grep vsftpd
        rpm -qa|grep vsftpd
        rpm -qa|grep vsftpd
        rpm -qa | grep vsftpd
        rpm -qa | grep vsftpd
        rpm -qa | grep vsftpd
    
    */
        在linux服务器上ftp叫vsftpd
        如果什么都没有显示,则说明linux上没有安装过ftp
        
    
    
    1.2安装ftp
    /*
        yum -y install vsftpd
        yum -y install vsftpd
        yum -y install vsftpd
        yum -y install vsftpd 
        yum -y install vsftpd 
        yum -y install vsftpd 
        yum -y install vsftpd
    */
        
        看到以下信息说明安装成功:
          Running Transaction
          Installing : vsftpd-2.2.2-24.el6.x86_64                                                                         1/1 
          Verifying  : vsftpd-2.2.2-24.el6.x86_64                                                                         1/1 
        Installed:
          vsftpd.x86_64 0:2.2.2-24.el6                                                            
        Complete!
        
        
    1.3.启动ftp(和防火墙一样)
    /*
        service vsftpd start 启动
        service vsftpd stop 停止
        service vsftpd restart 重启
    */    
    
    看到以下信息说明启动成功:
            Starting vsftpd for vsftpd:                                [  OK  ]
            
            
    1.4.设置ftp的开机启动
    /*    chkconfig vsftpd on
        chkconfig vsftpd on 
        chkconfig vsftpd on 
        chkconfig vsftpd on 
        chkconfig vsftpd on
        chkconfig vsftpd on
        chkconfig vsftpd on 
        chkconfig vsttpd on 
            
    */
        
    1.5.配置ftp
    //    linux会将ftp默认安装在 /etc目录
        在vsftpd的conf目录进行配置
    命令:    
    /*    vi /etc/vsftpd/vsftpd.conf
        vi /etc/vsftpd/vsftpd.conf
        
        vim /etc/vsftpd/vsftpd.conf
        vim /etc/vsftpd/vsftpd.conf
        vim /etc/vsftpd/vsftpd.conf
        vim /etc/vsftpd/vsftpd.conf
        vim /etc/vsftpd/vsftpd.conf
        vim /etc/vsftpd/vsftpd.conf
        
    */    
                # 禁止匿名用户anonymous登录
            anonymous_enable=NO
                # 允许本地用户登录
            local_enable=YES
                # 让登录的用户有写权限(上传,删除)
            write_enable=YES
                # 默认umask
            local_umask=022
                # 把传输记录的日志保存到/var/log/vsftpd.log  三个不同的地方
            xferlog_enable=YES
            xferlog_file=/var/log/vsftpd.log
            xferlog_std_format=NO
                # 允许ASCII模式上传
            ascii_upload_enable=YES 
                # 允许ASCII模式下载
            ascii_download_enable=YES
                # 使用20号端口传输数据
            connect_from_port_20=YES
                # 欢迎标语
            ftpd_banner=Welcome to use my test ftp server.
            
            /*    # 接下来的三条配置很重要
                # chroot_local_user设置了YES,那么所有的用户默认将被chroot,
                # 也就用户目录被限制在了自己的home下,无法向上改变目录。
                # chroot_list_enable设置了YES,即让chroot用户列表有效。
                # ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file
                # 设置的文件里,是不被chroot的用户(可以向上改变目录)
                # ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file
                # 设置的文件里,是被chroot的用户(无法向上改变目录)*/
                
                chroot_local_user=NO    (!!!!!有坑,当使用Java去连接ftp并上传的时候,如果为YES,不会自动创建文件的目录信息)
                chroot_list_enable=YES
                
                
                # touch /etc/vsftpd/chroot_list 新建(需要手动创建)  //在vsftpd 目录下创建  touch chroot_list
                chroot_list_file=/etc/vsftpd/chroot_list
                
                
                # 以standalone模式在ipv4上运行
            listen=YES
                # PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,
                # 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers
                # 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户
                # 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。
            pam_service_name=vsftpd
                
    6.重启ftp
    /*
        service vsftpd restart
        service vsftpd restart 
        service vsftpd restart 
        service vsftpd restart 
        service vsftpd restart 
        service vsftpd restart
        service vsftpd restart 
        service vsftpd restart 
        service vsftpd restart
        
    */    看到以下信息说明重启成功:
            Shutting down vsftpd:                                      [  OK  ]
            Starting vsftpd for vsftpd:                                [  OK  ]
            
    7.执行以下5个命令,让刚才配置生效  需要等待一段时间。。。
        这5个命令比较慢需要等待
    /*    getsebool -a | grep ftpd
        setsebool -P ftp_home_dir 1
        setsebool -P allow_ftpd_full_access 1
        setsebool -P allow_ftpd_use_cifs 1
        setsebool -P allow_ftpd_use_nfs 1
    */
    
    8.创建ftp用户  在根目录下创建。
        useradd ftp的用户名(ftpuser) -s /sbin/nologin -d /home/ftp(手动编写,home目录下并没有ftp文件夹)
    命令:    
        /* 
            useradd ftpuser -s /sbin/nologin -d /home/ftp
            useradd ftpuser -s /sbin/nologin -d /home/ftp 
            useradd ftpuser -s /sbin/nologin -d /home/ftp 
            useradd ftpuser -s /sbin/nologin -d /home/ftp 
            useradd ftpuser -s /sbin/nologin -d /home/ftp 
            useradd ftpuser -s /sbin/nologin -d /home/ftp
        
        */
        /home/ftp-->将来用户上传文件的时候所到根目录
        
    9.为ftp用户设置密码
        passwd ftp的用户名(ftpuser) 回车
        
    /* 
        useradd ftpuser
        useradd ftpuser 
        useradd ftpuser 
        useradd ftpuser 
        useradd ftpuser
        useradd ftpuser

    */我在根目录下 建立的。    
        看到以下信息说明设置密码成功:
            Changing password for user ftpuser.
            New password: 
            BAD PASSWORD: it is too simplistic/systematic
            BAD PASSWORD: is too simple
            Retype new password: 
            passwd: all authentication tokens updated successfully.
            
    10.filezilla连接ftp
        所有的ftp目录下必须要使用ftpuser这个用户创建文件夹和文件,不能再使用root,可能造成无法识别(root用户没有权限)

配置nginx:
    1.使用xftp把nginx上传到linux服务器上
    2.解压nginx
        tar -zxvf xxxx
    3.创建快捷方式
        进入nginx目录中进行创建
        首先安装nginx所必须的配置包
    /*    
        yum -y install gcc pcre-devel openssl openssl-devel
        yum -y install gcc pcre-devel openssl openssl-devel
        yum -y install gcc pcre-devel openssl openssl-devel
        yun -y install gcd pcre-devel openssl openssl-devel
            
    */

    创建快捷方式
    
    /*
        ./configure --prefix=/usr/local/nginx-1.17.3
        ./configure --prefix=/usr/local/nginx-1.17.3
        ./configure --prefix=/usr/local/nginx-1.17.3
        ./configuer --prefix=/usr/local/nginx-1.17.3
        ./configuer --prefix=/usr/local/nginx-1.17.3
        ./configuer --perfix=/usr/local/nginx-1.17.3
        ./
    
    */
    4.编译nginx
    /*
        make && make install
        make && make install
        make && make install
        make && make install
        make && make install
        make && make install
        make && make install
        
    */
    5.修改nginx的配置
        /usr/local/nginx-1.17.3/conf目录修改
        vim nginx.conf
        
        把一行的user注解打开
            user  nobody;--->user     root
        不要删除location /标签中的任何东西
        location / {
            root(访问的根目录)  /home/ftp/www;
        }
    6.启动nginx 在 sbin/目录下。
        ./nginx
原文地址:https://www.cnblogs.com/ZXF6/p/11449293.html