IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux下搭建FTP站点 -> 正文阅读

[系统运维]Linux下搭建FTP站点

参考文档地址https://help.aliyun.com/document_detail/92048.html

配置环境

  • CentOs7
  • 阿里云ESC服务器
  • vsftpd

安装vsftpd

  1. 使用Xshell远程连接linux实例(官方可下载免费版,填写邮箱信息,不商用即可。点击下载

  2. 运行以下命令安装vsftpd

    yum install -y vsftpd
    
    • 当出现 Complete! 时表示成功

    在这里插入图片描述

  3. 运行以下命令设置 FTP 服务器开机启动

    systemctl enable vsftpd.service
    
  4. 启动 FTP 服务

    systemctl start vsftpd.service
    
    systemctl restart vsftpd.service	# 重启FTP服务器
    systemctl status vsftpd. service	# 查看FTP服务器状态
    
  5. 查看 FTP 服务器状态

    netstat -antup | grep vsftpd
    

    出现下面的图片表示成功
    在这里插入图片描述

启动时错误处理

  • 若出现以下错误

Job for vsftpd.service failed because the control process exited with error code. See “systemctl status vsftpd.service” and “journalctl -xe” for details.

  • 处理方式,前两个为阿里云官方处理,若是不行则按照第三个方式卸载重装。

    • 网络环境不支持IPv6时,运行命令vim /etc/vsftpd/vsftpd.conf将内容listen_ipv6=YES修改为listen_ipv6=NO

    • MAC地址不匹配时,运行命令ifconfig查看MAC地址,并在**/etc/sysconfig/network-scripts/ifcfg-xxx** 配置文件中新增或修改HWADDR=<MAC地址>

    • 当上述两个方法都无效时,删除 vsftpd 并重新安装

      • 查看当前服务器中的vsftpd服务器:

        rpm -qa | grep vsftpd
        
      • 卸载 vsftpd

        rpm -e vsftpd-2.2.2-13.el6_6.1.x86_64
        
      • 删除 vsftpd 文件夹,及其中的文件

        rm -r /etc/vsftpd
        

配置vsftpd

? 配置被动模式下本地用户访问FTP服务器的配置方法

  • 为FTP创建一个Linux用户

    adduser ftpuser
    
    userdel ftpuser 	#  删除用户
    
  • 修改该用户的密码

    passwd ftpuser
    
  • 创建一个共FTP服务器使用的文件目录

    mkdir /var/ftp/test
    
  • 创建测试文件

    touch /var/ftp/test/testfile.txt
    
  • 更改 /var/test/test 目录的拥有者为 ftpuser

    chown -R ftpuser:ftpuser /var/ftp/test
    
  • 修改 vsftpd.conf 配置文件

    • 打开 vsftpd 配置文件
    • 若在安装 vsftpd 时,使用的是 apt install vsftpd 安装,则配置文件路径为 /etc/vsftpd.cof

      vim /etc/vsftpd/vsftpd.conf
      
    • i 进入编辑模式

    • 配置 FTP 服务器为被动模式,具体的配置参数说明如下:

      #除下面提及的参数,其他参数保持默认值即可。
      
      #修改下列参数的值:
      #禁止匿名登录FTP服务器。
      anonymous_enable=NO
      #允许本地用户登录FTP服务器。
      local_enable=YES
      #监听IPv4 sockets。
      listen=YES
      
      #关闭监听IPv6 sockets。
      listen_ipv6=NO
      
      #在配置文件的末尾添加下列参数
      #设置本地用户登陆后所在目录
      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
      #本教程中为Linux实例的公网IP。
      pasv_address=<FTP服务器公网IP地址>
      #设置被动模式下,建立数据传输可使用的端口范围最小值
      #建议把端口范围设置在比较高的范围内,例如50000,50010,有助于提高访问FTP服务器的安全性
      pasv_min_port=<port number>
      #设置被动模式下,建立数据传输可使用的端口范围的最大值
      pasv_max_port=<port number>
      
    • ESC 键,输入 :wq 并回车就保存退出 ,若 :q! 并回车就不保存退出

  • 创建 chroot_list 文件,即使不存用户也要创建

    vim /etc/vsftpd/chroot_list
    
    • 然后按 i 添加用户,然后按 :wq 回车,保存并出编辑
  • /etc/vsftpd/user_list中添加刚才创建的用户,保存退出

  • 重启 vsftpd 服务器

    systemctl restart vsftpd.service
    

接下来就是进行客户端连接测试,这里就不写具体过程(使用ftp软件连接测试即可),只是介绍一下测试时产生的问题,并附上解决方案

客户端测试异常

  • 530 Permission denied

    1. 首先确认是否开启了 vsftpd 服务器

    2. 查看配置

      • 位于 /etc/vsftpd/ftpusers: 其中指定的用户不能访问 FTP 服务器

      • 位于 /etc/vsftpd/user_list: 其中指定的用户默认也不能访问 FTP 服务器,需要手动添加用户并设置

        • vsftpd.conf 中添加
        userlist_deny=NO
        
      • 修改配置完成,重启 vsftpd 的服务器

  • 227 Entering Passive Mode

在这里插入图片描述

  1. 检查客户端设置传输模式为主动模式

  2. 检查 vsftpd.conf 配置文件

    #开启被动模式
    pasv_enable=YES
    allow_writeable_chroot=YES
    # 设置被动模式下,建立数据传输可使用的端口范围
    # 设置端口最小值
    pasv_min_port=51000
    # 设置端口最大值
    pasv_max_port=51010
    
  3. 重启 vsftpd 服务器,这里重启完后可以先测试能否连接,若不能则继续下面的步骤

  4. 确保在 阿里云安全组中配置了该端口范围

  5. 确认防火墙是否开启该端口范围( 这里为CentOs7 ,其他版本防火墙可能不一致)

    1. 查看防火墙开启的端口列表
    firewall-cmd --zone=public --list-ports
    
    1. 开启防火墙端口
    firewall-cmd --zone=public --add-port=51000-51010/tcp --permanent
    
    1. 重启防火墙
    firewall-cmd --reload
    
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:31:17  更:2021-08-26 12:32:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:39:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码