阿里云Linux服务器安装FTP站点全流程

阿里云百科分享使用阿里云服务器安装FTP全教程,vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。

目录

前提条件

步骤一:安装vsftpd

步骤二:配置vsftpd

步骤三:设置安全组

步骤四:客户端测试

vsftp配置文件及参数说明


前提条件

  • 实例规格:ecs.g6.large
  • 操作系统:CentOS 8.2 64位
  • ECS云服务器:aliyunfuwuqi.com/go/ecs
  • vsftpd:3.0.3
  • 阿里云账号:如果没有账号可以注册一个阿里云账号

步骤一:安装vsftpd

  1. 远程连接Linux实例。

    远程连接的具体操作,请参见连接方式介绍。

  2. 切换CentOS 8源地址。

    CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。如果您需要使用CentOS 8系统中的一些安装包,则需要手动切换源地址。

  3. 运行以下命令安装vsftpd。
    dnf install -y vsftpd

    出现如下图所示界面时,表示安装成功。

    vsftpd 3.0.3

  4. 运行以下命令设置FTP服务开机自启动。
    systemctl enable vsftpd.service
  5. 运行以下命令启动FTP服务。
    systemctl start vsftpd.service
    说明 执行该命令时如果提示错误信息Job for vsftpd.service failed because the control process exited with error code,请排查是否存在下述问题。
    • 网络环境不支持IPv6时,运行命令vim /etc/vsftpd/vsftpd.conf将内容listen_ipv6=YES修改为listen_ipv6=NO
    • MAC地址不匹配时,运行命令ifconfig查看MAC地址,并在/etc/sysconfig/network-scripts/ifcfg-xxx配置文件中新增或修改HWADDR=<MAC地址>
  6. 运行以下命令查看FTP服务监听的端口。
    netstat -antup | grep ftp

    出现如下图所示界面,表示FTP服务已启动,监听的端口号为21。

    ftp port

    此时,vsftpd默认已开启本地用户模式,您还需要继续进行配置才能正常使用FTP服务。

 

步骤二:配置vsftpd

为保证数据安全,本文主要介绍被动模式下,使用本地用户访问FTP服务器的配置方法。

  1. 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。
    adduser ftptest
  2. 运行以下命令修改ftptest用户的密码。
    passwd ftptest

    运行命令后,根据命令行提示完成FTP用户的密码修改。

  3. 运行以下命令创建一个供FTP服务使用的文件目录。
    mkdir /var/ftp/test
  4. 运行以下命令,创建测试文件。该测试文件用于FTP客户端访问FTP服务器时使用。
    touch /var/ftp/test/testfile.txt
  5. 运行以下命令更改/var/ftp/test目录的拥有者为ftptest。
    chown -R ftptest:ftptest /var/ftp/test
  6. 修改vsftpd.conf配置文件。
    1. 运行以下命令,打开vsftpd的配置文件。如果您在安装vsftpd时,使用的是apt install vsftpd安装命令,则配置文件路径为/etc/vsftpd.conf。
      vim /etc/vsftpd/vsftpd.conf
    2. 按i进入编辑模式。
    3. 配置FTP服务器为被动模式。具体的配置参数说明如下:

      重要 修改和添加配置文件内的信息时,请注意格式问题。例如,添加多余的空格会造成无法重启服务的结果。

      #除下面提及的参数,其他参数保持默认值即可。#修改下列参数的值:
      #禁止匿名登录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
      #本教程中为Linux实例的公网IP。
      pasv_address=<FTP服务器公网IP地址>
      #设置被动模式下,建立数据传输可使用的端口范围的最小值。
      #建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
      pasv_min_port=<port number>
      #设置被动模式下,建立数据传输可使用的端口范围的最大值。
      pasv_max_port=<port number>

      更多参数的详细信息,请参见vsftp配置文件及参数说明。

    4. 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。
  7. 创建chroot_list文件,并在文件中写入例外用户名单。
    1. 运行以下命令,创建chroot_list文件。
      vim /etc/vsftpd/chroot_list
    2. 按i进入编辑模式。
    3. 输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
    4. 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。

    重要 没有例外用户时,也必须创建chroot_list文件,内容可为空。

  8. 运行以下命令重启vsftpd服务。
    systemctl restart vsftpd.service

步骤三:设置安全组

搭建好FTP站点后,在实例安全组的入方向添加规则并放行下列FTP端口。具体操作,请参见添加安全组规则。

说明 大多数客户端位于局域网中,IP地址是经过转换的,因此ipconfig或ifconfig命令返回的IP不一定是客户端的真实公网IP地址。若后续客户端无法登录FTP服务器,请重新确认其公网IP地址。

被动模式需开放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。配置详情如下表所示。

规则方向授权策略协议类型端口范围授权对象
入方向允许自定义TCP21/21所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。

允许所有客户端访问时,授权对象为0.0.0.0/0。

入方向允许自定义TCPpasv_min_port/pasv_max_port。例如:50000/50010所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。

允许所有客户端访问时,授权对象为0.0.0.0/0。

 

步骤四:客户端测试

FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。本文以Windows Server 2012 R2 64位系统的本地主机作为FTP客户端,介绍FTP服务器的访问步骤。

  1. 在本地主机,打开这台电脑。
  2. 在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口,本文中为Linux实例的公网IP地址。例如:ftp://121.43.XX.XX:21
  3. 在弹出的登录身份对话框中,输入已设置的FTP用户名和密码,然后单击登录。

    登录后,您可以查看到FTP服务器指定目录下的文件,例如:测试文件testfile.txt。

    ftp client

vsftp配置文件及参数说明

/etc/vsftpd目录下文件说明如下:

  • /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。
  • /etc/vsftpd/ftpusers是黑名单文件,此文件中的用户不允许访问FTP服务器。
  • /etc/vsftpd/user_list是白名单文件,此文件中的用户允许访问FTP服务器。

配置文件vsftpd.conf参数说明如下:

  • 用户登录控制参数说明如下表所示。
    参数说明
    anonymous_enable=YES接受匿名用户
    no_anon_password=YES匿名用户login时不询问口令
    anon_root=(none)匿名用户主目录
    local_enable=YES接受本地用户
    local_root=(none)本地用户主目录
  • 用户权限控制参数说明如下表所示。
    参数说明
    write_enable=YES可以上传文件(全局控制)
    local_umask=022本地用户上传的文件权限
    file_open_mode=0666上传文件的权限配合umask使用
    anon_upload_enable=NO匿名用户可以上传文件
    anon_mkdir_write_enable=NO匿名用户可以建目录
    anon_other_write_enable=NO匿名用户修改删除
    chown_username=lightwiter匿名上传文件所属用户名

    本文转自阿里云官方文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/94765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松学会网络编程

目录 一、UDP 和 TCP 特点对比 1、有连接和无连接 2、可靠传输和不可靠传输 3、面向字节流和面向数据报 4、全双工和半双工 二、UDP 的 socket.api 1、DatagramSocket 2、DatagramPacket 回显服务器的实现 &#xff08;1&#xff09;服务器代码 &#xff08;2&#…

如何应用项目管理软件进行敏捷开发管理

敏捷开发&#xff08;Agile Development&#xff09;是一种软件开发方法论&#xff0c;强调在不断变化的需求和环境下&#xff0c;通过迭代、协作和自适应的方式来开发软件。敏捷方法的目标是提供更快、更灵活、更高质量的软件交付&#xff0c;以满足客户需求并实现项目成功。 …

LeetCode150道面试经典题-- 汇总区间(简单)

1.题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,…

力扣 198. 打家劫舍

题目来源&#xff1a;https://leetcode.cn/problems/house-robber/description/ C题解&#xff1a;因为是间接偷窃&#xff0c;所以偷nums[i]家前&#xff0c;一定偷过第i-2或者i-3家&#xff0c;因为i-1不能偷。 例如12345共5家&#xff0c;先偷第1家&#xff0c;那么2不能偷…

数据结构-栈的实现(C语言版)

前言 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除的操作&#xff0c;进行数据插入和删除的一端叫做栈顶&#xff0c;另一端叫做栈底。 栈中的数据元素遵循后进先出的的原则。 目录 1.压栈和出栈 2. 栈的实现 3.测试代码 1.压栈和出栈 压栈&#xff…

vue 使用indexDB 简单完整逻辑

1 npm npm install idb 2 代码 <template><div><p>Data: {{ data }}</p><button click"fetchData">Fetch Data</button></div> </template><script> import { openDB } from idb;export default {data() {…

【C++学习手札】一文带你认识C++虚函数(内层剖析)

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f340;本文前置知识&#xff1a; C初识继承 ♈️今日夜电波&#xff1a;No title —REOL 1:02 ━━━━━━️&#x1f49f;──────── 4:03 …

PHP手术麻醉系统源码,自动生成麻醉和护理医疗文书

一套手术麻醉系统源码&#xff0c;可二次开发 手术室麻醉临床信息系统&#xff08;AIMS&#xff09;是应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期&#xff0c;对病人进行全程跟踪与信息管理&#xff0c;自动集成病人HIS、LIS、RIS、PACS信息&#xff0…

ts与vue

ts与Vue 如果你已经学习了typeScript,但不知道如何在vue项目中使用&#xff0c;那么这篇文章将会很适合你。参考千峰教育 kerwin视频 1.会自动推导&#xff0c;隐士推导。提示 类型系统。 独立模块。 isolatedModules选项&#xff1a;是否配置为独立的模块。 减少报错 let …

数字化时代,数据仓库和商业智能BI系统演进的五个阶段

数字化在逐渐成熟的同时&#xff0c;社会上也对数字化的性质有了进一步认识。当下&#xff0c;数字化除了前边提到的将复杂的信息、知识转化为可以度量的数字、数据&#xff0c;在将其转化为二进制代码&#xff0c;引入计算机内部&#xff0c;建立数据模型&#xff0c;统一进行…

FPGA芯片IO口上下拉电阻的使用

FPGA芯片IO口上下拉电阻的使用 为什么要设置上下拉电阻一、如何设置下拉电阻二、如何设置上拉电阻为什么要设置上下拉电阻 这里以高云FPGA的GW1N-UV2QN48C6/I5来举例,这个芯片的上电默认初始化阶段,引脚是弱上来模式,且模式固定不能通过软件的配置来改变。如下图所示: 上…

华为OD机试 - 查找接口成功率最优时间段 - 回溯(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

Viobot开机指南

0.前言 本篇旨在让每个拿到Viobot设备的用户都能够第一时间测试它的效果&#xff0c;以及将设备配置到自己的环境下面。 1.上电 首先&#xff0c;我们先要把设备接上电源线和网线&#xff0c;最简单的方式就是网线直连电脑。 电源选用12V1.5A设备自带的电源即可。 2.配置网…

Android 网络编程-网络请求

Android 网络编程-网络请求 文章目录 Android 网络编程-网络请求一、主要内容二、开发网络请求前的基本准备1、查看需要请求的网址是否有效&#xff08;1&#xff09;通过网页在线验证&#xff08;2&#xff09;使用专用window网咯请求工具&#xff08;3&#xff09;编写app代码…

《游戏编程模式》学习笔记(四) 观察者模式 Observer Pattern

定义 观察者模式定义了对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 这是定义&#xff0c;看不懂就看不懂吧&#xff0c;我接下来举个例子慢慢说 为什么我们需要观察者模式 我们看一个很简…

ubuntu部署haproxy

HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理. 1、更新系统报 通过在终端中运行以下命令&#xff0c;确保所有系统包都是最新的 sudo apt updatesudo apt upgrade2、安装Haproxy sudo apt install haproxy设置开机自动启动haproxy服务 sudo systemctl en…

微服务-Nacos(注册中心)

Nacos是SpringCloud的一个功能非常强大的组件&#xff0c;想比eureka的功能更加丰富 官方的nacos简介 Nacos&#xff08;全称&#xff1a;Naming and Configuration Service&#xff09;是一个开源的动态服务发现、配置管理和服务管理平台。它由阿里巴巴集团开发并贡献给开源…

SpringBoot复习:(51)默认情况下DataSource是怎么创建出来的,是什么类型的?

DataSource是通过DataSourceAutoConfiguration创建的&#xff0c;这个类代码如下&#xff1a; 可以看到DataSourceAutoConfiguration有个静态内部类PooledDataSourceConfiguration,在这个类上有个Import注解&#xff0c;导入了DataSourceConfiguration.Hikari这个类&#xff0…

【学习日记】【FreeRTOS】任务调度时如何考虑任务优先级——任务的自动切换

写在前面 本文开始为 RTOS 加入考虑任务优先级的自动调度算法&#xff0c;代码大部分参考野火。 本文主要是一篇学习笔记&#xff0c;加入了笔者自己对野火代码的梳理和理解。 一、基本思路 首先我们要知道&#xff0c;在 RTOS 中&#xff0c;优先级越高、越需要被先执行的的…

Jmeter对websocket进行测试

JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪&#xff0c;需要带认证信息进行长连接&#xff0c;通过websocket插件是请求失败&#xff0c;如下图&#xff0c;后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下&#xff1a; pa…