部署FTP服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署FTP服务相关的知识,希望对你有一定的参考价值。

FTP简介

  • FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。它是典型的C/S结构的应用层协议需要从服务端软件、客户端软件两个部分实现文件传输功能。
    在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件
  • FTP服务器默认使用TCP协议的20、21端口,20端口用于建立数据连接,并传输文件数据。21端口用来建立控制连接,并传输FTP控制命令。

安装部署FTP服务、

  • 匿名访问FTP
  • Redhat6.5 上安装

    # mount /dev/cdrom /mnt    //挂载CDROM
    # rpm -ivh /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
  • CentOS7 上安装

    # yum install vsftpd -y
    # systemctl stop firewalld
    # setenforce 0
    # vim /etc/vsftpd/vsftpd.conf           //配置文件开启匿名的权限
    anon_upload_enable=yes         # 号去掉   上传权限
    anon_mkdir_write_enable=yes    # 号去掉   创建写入权限
    anon_other_write_enable=yes
    chroot_local_user=YES        //禁锢在组目录
    # chmod 777 /var/ftp/pub/     
    # systemctl start vsftpd   //开启服务

技术分享图片

  • windows上访问FTP的目录

打开我的电脑 路径输入:ftp://192.168.200.131/pub/

技术分享图片技术分享图片技术分享图片

  • 基于本地用户登录

    # vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO    //关闭匿名登录
    local_enable=YES
    write_enable=YES
    local_umask=077
    chroot_local_user=YES
    local_root=/var/ftp    //末尾加入目录
    # systemctl restart vsftpd
  • windows上访问FTP的目录

打开我的电脑 路径输入:ftp://192.168.200.131/pub/

技术分享图片技术分享图片

  • 使用user_list用户列表文件

  • user_list黑名单使用

    # vim /etc/vsftpd/user_list    //添加想要禁止访问ftp的用户
    test    
    # vim /etc/vsftpd/vsftpd.conf
    userlist_enable=YES   (没有#时 在user_list 里的帐号没法访问)  
    # systemctl restart vsftpd
  • user_list白名单使用

    # vim /etc/vsftpd/user_list    //添加想要允许访问ftp的用户
    test
    vi /etc/vsftpd/vsftpd.conf
    userlist_enable=YES     (没有#时 在user_list 里的帐号没法访问)
    userlist_deny=NO     (但加入这行后 只有user_list 里的帐号才能访问)
    # systemctl restart vsftpd
  • 建立虚拟用户账户使用FTP

    # cd /etc/vsftpd
    # vi /etc/vsftpd/vuser
    lisa       //奇数行为用户
    123123     //偶数行为密码
    tom
    123123
    # db_load -T -t hash -f vuser vuser.db   //转换成数据库文件
    # chmod 600 vuser
    # chmod 600 vuser.db   //不让别人看见里面的信息
    # useradd -d /opt/vuser -s /sbin/nologin vuser
    //创建一个用户为vuser 指定家目录/opt/vuser 并不使用shell登陆
    # mkdir /opt/vuser
    # chmod 755 /opt/vuser
  • 编辑pam认证模块支持虚拟用户的登陆

    vi /etc/pam.d/vsftpd.vu
    auth required pam_userdb.so db=/etc/vsftpd/vuser 
    account required pam_userdb.so db=/etc/vsftpd/vuser 
    //此处两个文件vuser并不是普通文件而是刚才创建的vuser.db数据库文件,此处必须省略不写
    
    # vi /etc/vsftpd/vsftpd.conf
    #pam_service_name=vsftpd  加#注释
    添加↓↓↓
    guest_enable=YES
    guest_username=vuser
    pam_service_name=vsftpd.vu  //开启虚拟用户,使用pam认证登陆
    # systemclt restart vsftpd  //重启服务
  • 单独用户

    # vi /etc/vsftpd/vsftpd.conf
    user_config_dir=/etc/vsftpd/vu_dir   //添加单独用户配置目录
    # mkdir vu_dir        //创建文目录
    # vi /etc/vsftpd/vu_dir/tom //在配置文件夹里创建用户配置文件
    anon_umask=022  //指定上传文件的权限 (022的意思是反的  644)
  • windows端cmd中操作命令

ftp 192.168.200.131 (访问ftp) (输入账户密码 匿名访问时 输入ftp 回车)
by 退出
e: 切换 E盘
cd pub
get test.txt 下载
put tes.txt 上传 (设置权限才能上传)

以上是关于部署FTP服务的主要内容,如果未能解决你的问题,请参考以下文章

java Ftp上传创建多层文件的代码片段

Java项目生产环境部署,遇到FTP连接加密服务器的踩坑及爬坑过程

分布式部署网站---文件系统的存储--ftp上传图片到指定文件服务器

Azure上部署FTP服务

linux --FTP服务器,部署YUM仓库,NFS共享服务

部署ftp文件共享服务