阿里云ubuntu服务器搭建ftp服务器
阿里云ubuntu服务器搭建ftp服务器
- 服务器环境
- 安装步骤
- 一.创建用户
- 二.安装 vsftp
- 三 配置vsftp
- 四.配置阿里云安全组
服务器环境
阿里云上的云服务器,操作系统为 ubuntu20.04。
安装步骤
一.创建用户
为什么需要创建用户?
这里的用户,指的是linux系统的用户(当然,也可以设置匿名登录ftp服务器,但是这样安全性不高,不推荐!!)。
创建用户方法:
sudo useradd -d /home/ftp/uftp -M uftp // 用户名为uftp,用户目录为/home/ftp/uftp
sudo passwd uftp //设置密码
chomd 755 -r /home/ftp/uftp //修改目录权限
其它命令:
##限定用户test不能telnet,只能ftp
usermod -s /sbin/nologin uftp
##用户test恢复正常
usermod -s /sbin/bash uftp
二.安装 vsftp
sudo apt-get update
sudo apt-get install vsftpd
三 配置vsftp
1 修改 vsftpd.conf 配置文件·
sudo vi /etc/vsftpd.conf
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Disabled by default).
# 是否允许匿名ftp登录
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# 是否允许本地用户登录ftp服务器
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
# 是否允许ftp用户执行写入操作
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
# 设置本地用户的默认umask值。
# # umask是一个三位八进制数,用来控制新建文件或目录的访问权限。
# # 在FTP服务器中,local_umask选项用来设置本地用户上传文件或创建目录时的默认权限。
# # 默认情况下,local_umask的值为077,表示新建的文件或目录权限为只有所有者可读、可写、可执行,其他用户无权访问。
# # 如果你的用户希望默认权限为所有者可读、可写、可执行,其他用户可读、可执行,则可以将local_umask的值设置为022。
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# 设置是否允许匿名FTP用户上传文件
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
# 设置是否允许匿名FTP用户创建新目录。
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
# 这段配置文件是用来设置是否启用目录消息功能。
# 如果设置为YES,则表示启用目录消息功能。当远程用户进入某个目录时,会显示该目录的消息。
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
# 设置是否启用本地时间功能。
# 启用本地时间功能后,vsftpd将会在目录列表中显示本地时间而非GMT时间
use_localtime=YES
#
# Activate logging of uploads/downloads.
# 启用上传和下载日志记录功能。
# 启用该功能后,vsftpd会记录每个用户的上传和下载操作,并将其记录到指定的日志文件中。
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
# connect_from_port_20=YES
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
# 设置匿名用户上传的文件的所有者。
# 设置为YES,则表示上传的文件将会被转换为指定用户的所有权。
chown_uploads=YES
# 设置为指定的用户名。
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
# 设置vsftpd日志文件的路径。该路径必须具有可写权限,并且对于vsftpd进程来说,必须具有可访问权限。
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
# 置vsftpd日志文件的格式。设备为YES则存储为标准ftpd xferlog格式。
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
# 设置vsftpd空闲会话超时的时间(以秒为单位)。
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
# 设置vsftpd数据连接超时的时间(以秒为单位)。
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
# vsftpd建议在系统中定义一个唯一的用户,供FTP服务器使用,作为完全隔离和无特权的用户
# nopriv_user选项可以用来指定该用户的用户名。
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
# 用于启用异步ABOR请求的识别
async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
# 用于控制FTP服务器是否启用ASCII模式下的文件转换功能。
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
# vsftpd的登录横幅的设置,你可以理解为登录成功后的欢迎词。
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
# 设备是否拒绝匿名电子邮件地址
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
# 设备限制本地用户仅访问其home目录。
# 果启用,则本地用户将仅访问其home目录和其子目录,无法访问其他目录
chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
# 是否允许本地用户,是否将本地用户限制在其主目录中,如果设置为YES,则不会将列在chroot_list_file中的用户限制在其主目录中。
chroot_local_user=YES
# 是否启用chroot_list_file列表,用于指定哪些用户不应该被限制在主目录中
#chroot_list_enable=YES
# (default follows)
# 指定了chroot_list_file列表的路径和名称。一行一个用户名。
chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
# 是否启用SSL加密连接。
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NOlocal_root=/home/ftp/uftp#
# Uncomment this to indicate that vsftpd use a utf8 filesystem.
#utf8_filesystem=YES
#
#
#allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40010
tcp_wrappers=YES
listen_port=21
pasv_address=云服务公有ip地址
参考上述描述。需要特别注意的是最后几行的信息:
其他配置描述,参考说明吧。
2 配置用户
新建 /etc/vsftpd.chroot_list 文件,在里面添加登录ftp服务器的linux用户
sudo vim /etc/vsftpd.chroot_list
在里面添加一行内容:uftp (其中uftp为我之前创建的用户名)
- 服务重启,配置生效
sudo /etc/init.d/vsftpd restart
- 本地登录验证
ftp服务配置完成后,可以现在本地登录验证ftp 127.0.0.1
hejj@XKUbuntu2004:~$ ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 3.0.3)
Name (127.0.0.1:hejj): uftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
四.配置阿里云安全组
由于配置文件:vsftpd.conf中配置的端口为20、21、40000~40010,所以需要在阿里云安全组中打开响应的端口,才能外部访问。
相关文章:

阿里云ubuntu服务器搭建ftp服务器
阿里云ubuntu服务器搭建ftp服务器 服务器环境安装步骤一.创建用户二.安装 vsftp三 配置vsftp四.配置阿里云安全组 服务器环境 阿里云上的云服务器,操作系统为 ubuntu20.04。 安装步骤 一.创建用户 为什么需要创建用户? 这里的用户,指的是…...

03 卷积操作图片
一、均值滤波 # 卷积操作 # 输入图片. input, 必须是4维tensor(图片数量, 图片高度, 图片的宽度, 图片的通道数) # filters, 卷积核, 必须是4维的tensor(卷积核的高度和宽度, 输入图片的通道数, 卷积核的个数) # strides, 步长, 卷积核在图片的各个维度上的移动步长, (1, 1, 1,…...

软考:中级软件设计师:程序语言基础:表达式,标准分类,法律法规,程序语言特点,函数传值传址
软考:中级软件设计师:程序语言基础:表达式 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都…...

Java“牵手”1688商品详情数据,1688商品详情API接口,1688API接口申请指南
1688平台商品详情接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取1688商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品详情接口API是一种用于获取电商平台上商品详情数据的接口,通过…...

stable diffusion实践操作-批次出图
系列文章目录 stable diffusion实践操作 文章目录 系列文章目录前言一、批次出图介绍1.1 webUI设置1.2 参数介绍 二、批次出图使用2.1 如何设置2.1 效果展示 总结 前言 本章主要介绍SD批次出图。 想要一次产生多张图片的时候使用。 一、批次出图介绍 1.1 webUI设置 1.2 参数…...
LeetCode热题100 【cpp】题解(一)哈希表和双指针
文章目录 1. 两数之和49. 字母异位词分组128. 最长连续序列283. 移动零11. 盛最多水的容器15. 三数之和42. 接雨水 题单链接: LeetCode 热题 100 1. 两数之和 leetcode题目链接 题解1:暴力枚举 时间复杂度: O ( n 2 ) O(n^2) O(n2) class …...
Python爬虫常见代理池实现和优化
在这篇文章中,我们将探讨Python爬虫中常见的代理池实现和优化方法。在爬取网站数据时,为防止被目标网站封禁IP,我们通常会使用代理IP进行访问。一个高效且稳定的代理池可以帮助我们轻松应对各种反爬策略。 首先,我们来了解一下…...
前端面试的话术集锦第 3 篇:进阶篇上
这是记录前端面试的话术集锦第三篇博文——进阶篇上,我会不断更新前端面试话术的博文。❗❗❗ 1 谈谈变量提升 当执⾏JS代码时,会⽣成执⾏环境,只要代码不是写在函数中的,就是在全局执⾏环境中,函数中的代码会产⽣函数执⾏环境,只此两种执⾏环境。 b() // call b conso…...

【文字到语音的论文总结】
1.文字到语音的整个过程 文字到语音的一般整体结构 主要是下面这个流程,每个网络可能会把其中两者或是三者融合在一起来; 长度不同的问题 生成的语音可能和文字的长度并不一样,因此需要解决这个问题 Tactron使用的是交叉注意力的方式解…...

E. Data Structures Fan(思维 + 异或前缀和)
Problem - E - Codeforces 给你一个整数数组 a1, a2,..., an,以及一个由 n 个字符组成的二进制字符串† s。 Augustin 是一个数据结构的爱好者。因此,他请你实现一个可以回答 q 个查询的数据结构。这里有两种类型的查询: Plain Text "1…...

初学python爬虫学习笔记——爬取网页中小说标题
初学python爬虫学习笔记——爬取网页中小说标题 一、要爬取的网站小说如下图 二、打开网页的“检查”,查看html页面 发现每个标题是列表下的一个个超链接,从183.html到869.html 可以使用for循环依次得到: x range(183,600) for i in x:pr…...

The WebSocket session [x] has been closed and no method (apart from close())
在向客户端发送消息时,session关闭了。 不管是单客户端发送消息还是多客户端发送消息,在发送消息之前判断session 是否关闭 使用 isOpen() 方法...

前端实现展开收起的效果 (react)
需求背景:需要实现文本的展开收起效果,文本是一行一行的,数据格式是数组结构。 如图所示(图片已脱敏) 简单实现:使用一个变量控制展开收起效果。 展开收起逻辑部分(react) const […...

ABY2.0:更低的通信开销
参考文献: [ABY] Demmler D, Schneider T, Zohner M. ABY-A framework for efficient mixed-protocol secure two-party computation[C]//NDSS. 2015.[ABY3] Mohassel P, Rindal P. ABY3: A mixed protocol framework for machine learning[C]//Proceedings of the…...
vue项目预览图片
1.图片为本地上传的预览: <input type"file" ref"file"/> <img :src"imgUrl"/>let fr new FileReader()fr.readAsArrayBuffer(this.$refs.file.files[0])fr.addEventListener("loadend", (e) > {let buff…...

Tomcat 安装
1.关闭防火墙 2.安装JDK包 3. 4。添加环境变量 5.刷新配置文件 6.解压文件 7.启动tomcat 8. 9.编写tomcat.service文件 vim /etc/systemd/system/tomcat.service 10.刷新服务 11.打开浏览器访问:192.168.2.100:8080/,正常可以看到以下界面...

计算机网络的故事——HTTP报文内的HTTP信息
HTTP报文内的HTTP信息 文章目录 HTTP报文内的HTTP信息一、HTTP 报文二、请求报文及响应报文的结构三、编码提升传输速率 一、HTTP 报文 HTTP报文是由多行(CRLF作换行符)数据构成的字符串文本,HTTP报文可以分为报文首部和报文主体两部分&…...
CF1120 D. Power Tree 巧妙的图论转化
传送门 [前题提要]:无 题目描述: 就是给你一棵树,然后每个点有花费,然后你可以选一个点,付费后对这个点的子树的所有叶子结点增减任意权值. 考虑有一个人会给这棵树的所有叶子结点赋值(值我们不知道),输出最小的花费,使得无论它如何赋值,我们使用上述的花 费都能使所有的叶子…...

【算法训练-字符串 三】最长公共子串、最长公共子序列
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【】,使用【】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公…...
lintcode 1446 · 01矩阵走路问题 【两次BFS, VIP 中等 1也计算距离,但是不入队列】
题目链接,描述 https://www.lintcode.com/problem/1446 给定一个大小为 n*m 的 01 矩阵 grid ,1 是墙,0 是路,你现在可以把 grid 中的一个 1 变成 0,请问从左上角走到右下角是否有路可走?如果有路可走&am…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

基于小程序老人监护管理系统源码数据库文档
摘 要 近年来,随着我国人口老龄化问题日益严重,独居和居住养老机构的的老年人数量越来越多。而随着老年人数量的逐步增长,随之而来的是日益突出的老年人问题,尤其是老年人的健康问题,尤其是老年人产生健康问题后&…...

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
【导读】 本文针对无人机(UAV)视频中目标尺寸小、运动快导致的多目标跟踪难题,提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪(贴合无人机场景特性),并改进传统外观匹配算法以关联此类检测…...