ECS进阶训练营-day1(如何安装vsftpd)

简介: 基于ECS搭建FTP服务-新手如何安装vsftpd?

打开系统自带的终端工具。

Windows:CMD或Powershell。
MAC:Terminal。
Windows用户请检查系统中是否安装有ssh工具。检查方法:

a. 在终端中输入命令ssh -V。(注意:“V”是大写)

b. 出现如下结果说明已安装。

OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5

在终端中输入连接命令 ssh [username]@[ipaddress]。将其中的 username 和 ipaddress 替换为云产品资源提供的ECS服务器的 用户和 弹性IP。例如:ssh root@123.123.123.123
按照页面提示依次往下操作 , 其中登录密码为资源提供的ECS服务器的登录密码。(注意:输入登录密码时是不可见的)
image.png
当出现这个时,即登陆成功!

安装vsftpd

1.运行以下命令安装vsftpd

yum install -y vsftpd
返回如下图所示界面时,表示安装成功。

2.运行以下命令设置FTP服务开机自启动。

systemctl enable vsftpd.service
3.启动FTP服务。

systemctl start vsftpd.service
4.运行以下命令查看FTP服务监听的端口。

netstat -antup | grep ftp
出现如下图所示界面,表示FTP服务已启动,监听的端口号为 21。此时,vsftpd默认已开启匿名访问功能,您无需输入用户名密码即可登录FTP服务器,但没有修改或上传文件的权限。
image.png

配置vsftpd

vsftpd支持匿名访问和本地用户模式两种访问方式。匿名访问方式任何用户都可以访问搭建的FTP服务;本地用户模式只支持添加的本地用户访问搭建的FTP服务。

说明: 匿名用户模式和本地用户模式只可同时配置一种。

匿名用户模式
修改配置文件vsftpd.conf。

vim /etc/vsftpd/vsftpd.conf
按 i 键进入编辑模式,将匿名上传权限 anon_upload_enable=YES 的注释解开。

按ESC键退出编辑模式,输入:wq 保存并退出vim。

更改/var/ftp/pub目录的权限,为FTP用户添加写权限。

chmod o+w /var/ftp/pub/

  1. restart vsftpd.service

本地用户模式
为FTP服务创建一个Linux用户。

adduser ftptest
为用户设置密码。

passwd ftptest

创建一个供FTP服务使用的文件目录。

mkdir /var/ftp/test
更改/var/ftp/test目录的拥有者为ftptest。

chown -R ftptest:ftptest /var/ftp/test
修改vsftpd.conf配置文件。
配置FTP为主动模式请执行如下命令:

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录
配置FTP为被动模式请执行如下命令:

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录

echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式
echo "pasv_address=" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值
在/etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单。

使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
vim /etc/vsftpd/chroot_list
说明: 没有例外用户时,也必须创建chroot_list文件,内容可为空。

重启FTP服务。

客户端测试

systemctl restart vsftpd.service

FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。(此步骤仅适用于本地用户,匿名模式无需进行测试操作)

说明:使用浏览器访问FTP服务器出错时,建议您清除浏览器缓存后再尝试。

  1. 打开Chrome浏览器,在地址栏中输入ftp://:FTP端口,FTP服务器公网IP地址为ECS服务器的弹性IP地址。例如:ftp://139.0.0.1:21。
  2. 在弹出的对话框中,输入用户名和密码。
  3. 登录成功后,此时可对FTP文件进行相应权限的操作。
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 机器学习/深度学习 人工智能
【前沿技术RPA】 一文了解UiPath 机器人企业框架 (REFramework)
本博文主要介绍 UiPath 机器人企业框架 (REFramework)。我们将讨论事务处理、调度程序和执行程序的概念,还会简要介绍 REFramework 可以完成的任务。
【前沿技术RPA】 一文了解UiPath 机器人企业框架 (REFramework)
|
监控 Linux
linux命令之mpstat
linux命令之mpstat
397 2
|
安全 中间件 网络安全
OpenIM支持10万级超级大群
opeim支持十万级超级大群
953 0
OpenIM支持10万级超级大群
|
传感器 人工智能 监控
Uni-app智慧工地数据大屏可视化监管平台源码带APP
智慧工地的核心是数字化,它通过传感器、监控设备、智能终端等技术手段,实现对工地各个环节的实时数据采集和传输,如环境温度、湿度、噪音等数据信息,将数据汇集到云端进行处理和分析,生成各种报表、图表和预警信息,帮助管理人员了解工地的实时状况,及时做出决策和调整,
1186 0
com.alibaba.excel包教程:Excel数据导出加工进阶篇
com.alibaba.excel包教程:Excel数据导出加工进阶篇
2961 0
|
2月前
|
存储 缓存 人工智能
CodeGraph深度解析 降低Claude Code工具调用量、减少七成交互请求的核心原理与完整实操教程
在当下代码开发、项目运维、工程重构场景中,Claude Code凭借强大的代码理解、文件编辑、工程分析能力,成为主流命令行AI编程工具。但在实际使用过程中,尤其是面对中大型项目、多文件关联代码、复杂业务逻辑时,Claude Code会出现**工具调用频次过高**的问题。频繁的文件读取、内容查询、逻辑问询、分段修改,不仅拉长整体工作耗时,还会持续消耗接口配额与计算资源,同时多轮碎片化交互也容易导致上下文断裂、代码理解偏差,影响最终输出质量。
533 0
|
IDE JavaScript 编译器
《Solidity 简易速速上手小册》第2章:搭建 Solidity 开发环境(2024 最新版)
《Solidity 简易速速上手小册》第2章:搭建 Solidity 开发环境(2024 最新版)
3952 0
|
存储 SQL Java
规则引擎深度对比,LiteFlow vs Drools! 下
规则引擎深度对比,LiteFlow vs Drools! 下
|
存储 缓存 监控
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
589 12
|
消息中间件 存储 运维
阿里云顺利通过云原生中间件成熟度评估
阿里云顺利通过云原生中间件成熟度评估

热门文章

最新文章