• ftp服务器搭建


    文中使用centos7环境。 vsftpd官方文档

    FTP介绍

    FTP(File Transfer Protocol)是一种文件传输协议,基于B/S架构。

    FTP支出两种工作模式:

    1. 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。

    2. 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

    FTP支持三种认证模式:

    1. 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。

    2. 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。

    3. 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。

    服务器安装

    yum install -y vsftpd
    
    • 1

    vsftpd服务相关

    • 设置开机自启动

      systemctl enable vsftpd.service
      
      • 1
    • 启动FTP服务

      systemctl start vsftpd.service
      
      • 1
    • 重启FTP服务

      systemctl restart vsftpd.service
      
      • 1
    • 查看服务器监听的端口

      netstat -antup | grep ftp
      
      // :::21     LISTEN
      
      • 1
      • 2
      • 3

    服务器配置

    1. 新建FTP用户、设置密码
    // 新建用户
    adduser ftptest
    // 设置密码
    passwd ftptest
    
    • 1
    • 2
    • 3
    • 4
    1. 创建一个供ftp使用的目录
    mkdir /var/ftp/data
    
    • 1
    1. 更改/var/ftp/data目录的拥有者为ftptest
    chown -R ftptest:ftptest /var/ftp/data
    
    • 1
    1. 修改vsftpd.conf配置文件
    # 打开文件
    vim /etc/vsftpd/vsftpd.conf
    
    # 修改下列参数
    # 禁止匿名登录FTP服务器。
    anonymous_enable=NO
    # 允许本地用户登录FTP服务器。
    local_enable=YES
    #监听IPv4 sockets
    listen=YES
    
    # 关闭监听IPv6 sockets。
    listen_ipv6=YES
    
    # 在配置文件的末尾添加下列参数:
    # 设置本地用户登录后所在目录
    local_root=/var/ftp/test
    # 全部用户被限制在主目录
    chroot_local_user=YES
    # 启用例外用户名单
    chroot_list_enable=YES
    # 指定例外用户列表文件,列表中用户不被锁定在主目录。
    chroot_list_file=/etc/vsftpd/chroot_list
    # 开启被动模式。
    pasv_enable=YES
    allow_writeable_chroot=YES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    1. 创建chroot_list文件
    # 文件内容可以为空
    vim /etc/vsftpd/chroot_list
    
    • 1
    • 2
    1. 允许在SELinux中上传和编辑文件
    setsebool -P allow_ftpd_full_access on
    setsebool -P ftpd_connect_all_unreserved 1
    
    • 1
    • 2
    1. 重启ftp服务器

    测试FTP服务器

    在win10下使用WinSCP工具进行测试

    1. 下载WinSCP

    WinSCP官网

    1. 登录
      在这里插入图片描述
    • 上传/下载速率
      • 上传文件基本稳定在80MB/s左右
      • 下载文件基本稳定在60MB/s左右
        在这里插入图片描述
        至此,服务器搭建完成!

    在终端使用FTP

    • 连接
    ftp `your-host`
    
    // 根据提示输入用户名以及密码
    // 230 Login successful.
    
    • 1
    • 2
    • 3
    • 4
    • 目录操作
    // 列出文件目录
    ls
    
    // 切换目录
    cd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 上传文件
    // 上传单个文件
    put /path/file
    
    // 上传多个文件
    mput *.md 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 下载文件
    // 下载文件之前,设定本地接受目录位置
    lcd `your-path`
    
    // 下载单个文件
    get filepath/file
    
    // 下载多个文件
    mget *.md
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 关闭FTP连接
    // 使用一下命令中任意一个即可退出
    bye/exit/quit
    
    // 221 Goodbye
    
    • 1
    • 2
    • 3
    • 4
    • ftp帮助菜单
    // 获取帮助文档
    help
    
    • 1
    • 2
  • 相关阅读:
    C++ 重载运算符和重载函数
    接口测试重点内容看这一篇就够了
    Ansible
    【Nginx 原理】进程模型、HTTP 连接建立和请求处理过程、高性能、高并发、事件处理模型、模块化体系结构
    国家建筑装配式内装产业基地在沪成立,副主任单位优积科技协同助推绿色低碳循环发展
    kubernetes介绍和安装(1.25版本)
    解决 el-tree setChecked 方法偶尔失效的方法
    使用 Docker 部署 TaleBook 私人书籍管理系统
    org.activiti.bpmn
    Docker-Compose 下载安装、卸载步骤
  • 原文地址:https://blog.csdn.net/weixin_45394086/article/details/126730644