在阿里云CentOS7上搭建ftp服务器

2023-10-27

当我再次被各种出站入站规则玩弄,在搜索引擎的帮助走出泥淖后,我决定记下这次经历

1. FTP服务器的部署

1.1 安装vsftpd

  笔者使用的是阿里云的ECS服务器(这不是广告,而是提醒:P),操作系统为CentOS7。首先,安装vsftp(very secure FTP daemon),这是一个开源的ftp服务器软件。

# 安装vsftpd
yum install vsftpd
# 设置开机启动
systemctl enable vsftpd

可以用systemctl管理vsftpd进程:

# 启动,终止,重启,查看运行状态
systemctl [start|stop|restart|status] vsftpd
# 设置开机自启动,关闭开机自启动
systemctl [enable|disable] vsftpd

1.2 填写配置文件

1.2.1 配置vsftpd.conf

vim /etc/vsftpd/vsftpd.conf
# 去掉注释并改写
anonymous_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=YES
chown_uploads=NO
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to FTP service.
chroot_local_user=YES
# 添加
use_localtime=YES
listen_port=21
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=10000
pasv_max_port=10020
accept_timeout=5
connect_timeout=1

1.2.2 新建用户文件

vim /etc/vsftpd/virtusers
# 以下为实例内容,两行为一组,第一行为用户名,第二行为密码
qdh
qdh
wb
wb

1.2.3 生成用户数据文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

chmod 600 /etc/vsftpd/virtusers.db 

1.2.4 修改/etc/pam.d/vsftpd文件

vim /etc/pam.d/vsftpd
# 先将auth及account的所有配置行均注释掉,添加以下两行,如果为32位系统,lib64改为lib

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

1.2.5 新建系统用户

# 新建系统用户vsftpd,家目录为/home/vsftpd
# 登录终端设为/bin/false,使之不能登录系统
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd

1.2.6 建立虚拟用户个人配置文件

# 新建文件夹用来存放虚拟用户个人配置文件,并进入该文件夹
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf

# 建立用户根目录
mkdir -p /home/vsftpd/qdh/
mkdir -p /home/vsftpd/wb/

vim qdh
# 新建用户qdh的配置文件,内容如下,其他用户类似

local_root=/home/vsftpd/qdh/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

1.3 防火墙设置

1.3.1 CentOS7的防火墙

# 查看防火墙状态
firewall-cmd --state
# 查看端口开放情况
firewall-cmd --query-port=21/tcp
# 开放20号和21号端口
firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
# 开放10060至10090号端口
firewall-cmd --zone=public --add-port=10000-10020/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload

1.3.2 阿里云的安全组规则(老是忘)

  在“云服务器ECS->实例->管理->本实例安全组->配置规则”中,选择“添加安全组规则“。在本例中,添加的第一个规则填写如下:


这里写图片描述

2. 客户端的配置

  笔者在Windows10中,尝试用cmd的ftp命令和资源管理器两种方式尝试连接ftp服务器,其间出现了各种问题。进行以下操作时,结束后记得点击“确定”或“应用”之类的按钮以保存更改结果。

2.1 在使用ftp命令时出现“425 Failed to establish connection”

  在“控制面板->系统和安全->Windows 防火墙->允许的应用”中,点击更改设置,然后根据所用网络勾选“文件传送程序”。

2.2 在资源管理器中出现“Windows 无法访问此文件夹,请确保输入的文件夹是正确的,并且你有权访问此文件夹”

  在“控制面板->程序->启用或关闭Windows功能”中,找到“Internet信息服务”,把里面的“FTP服务器”中的“FTP服务”和“FTP扩展性”都打勾;找到“TFTP客户端”,并打勾。

  在“控制面板->网络和Interne->Internet高级选项->高级”中,将“使用被动FTP(防火墙和DSL调制解调器的兼容)”前面的勾取消。

  在“控制面板->系统和安全->Windows 防火墙->允许的应用”中,点击更改设置,然后根据所用网络勾选“文件传送程序”。

2.3 上传文件时出现“553 Could not create file”

  在CentOS中修改ftp用户文件夹的访问权限即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在阿里云CentOS7上搭建ftp服务器 的相关文章

随机推荐

  • git命令使用上传下载详情大全...

    不罗嗦直接上内容 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch a 查看所有的分支 git branch r 查看远程所有分支 git commit am in
  • CISCN(Web Ezpentest)GC、序列化、case when

    目录 REGEXP的一个点 正则 like 默认不区分大小写 当禁用了空格 regexp like的区分大小写的使用方法 CISCN 2022 初赛 ezpentest 卡点 2022 HFCTF babysql 最近又学到了一道新知识 c
  • attrs.xml中declare-styleable 详解(用于自定义控件的属性)

    1 框架定义
  • simulink电力电子仿真(3)单相桥式全控整流电路

    simulink电力电子仿真 3 单相桥式全控整流及有源逆变电路 返回目录 主要是赶上了疫情 然后期末要疯狂补实验报告 就索性写一下吧 万一以后再做电力电路仿真 可能会有用的 也希望可以帮助别人 器件的选择及位置 MATLAB的版本 201
  • 【k8s集群管理工具篇】云原生之部署K8s管理面板KubePi

    k8s集群管理工具篇 云原生之部署K8s管理面板KubePi 一 KubePi介绍 二 环境规划 三 检查本地环境 1 检查k8s集群状态 2 检查kubepi管理主机环境 三 部署KubePi 1 创建KubePi容器 2 检查KubeP
  • Flutter填坑 编译运行不起来

    记录下Flutter中遇到的一些问题 基本上按照Flutter中文网的教程可以完成Flutter环境的搭建 Flutter中文网 https flutterchina club Windows 环境 https flutterchina c
  • sqli-labs 靶场环境搭建

    目录 一 搭建环境所需资源 搭建sqli labs 靶场需要的运行环境 二 搭建过程 1 下载资源 2 创建网站 3 更改配置文件 4 安装数据库 不使用 php7 x 版本的原因 一 搭建环境所需资源 搭建sqli labs 靶场需要的运
  • 21计算机考研国家线,来了!21考研国家线公布!附详细解读!

    原标题 来了 21考研国家线公布 附详细解读 21考研人最近大概都在焦虑的等待国家线 昨天中国农业大学的一条消息直接将 考研国家线 顶上热搜 这不 最新出炉的国家线就来了 21考研国家线公布 21国家线学硕总分线上涨的门类有 经济学 历史学
  • 人工智能还是人工智障

    序言 有的时候感觉有脑子 有的时候感觉没有 到底是有还是没有呢 机器人 有的很智能 有的很智障 是智能的时候可爱 还是在智障的时候可爱 你是惧怕智障还是惧怕人工智能 风言风语 作为一个吵架之王 每次吵架的时候都会想 现在人工智能这么多 但是
  • 【支持向量机】最大间隔超平面及Matlab代码

    线性可分 在特征空间中 有两个训练样本可以通过一条直线区分开 则称为线性可分 而在特征空间大于等于四维时 分开训练样本的平面 称为超平面 我们定义一条直线方程 1 x 1
  • Linux 之exit() 进程退出函数

    进程的退出 linux下进程数量太多会导致系统崩溃 在使用完一个进程之后要及时终止它 进程退出一般有三种方法 1 在main函数中使用 return关键字 使用 return 后系统会调用 exit 函数来终止进程 2 手动调用 exit
  • C++ 关于 protobuf的一些操作

    先是定义部分 下面跟一些例子组成 message DBRoleData uint64 RoleID 2 string Name 6 repeated int64 Action 12 存内置重复单位 message DBRoleLoginAc
  • Kylin 10 SP1(UI)磁盘自行配置lvm

    1 登录服务器 输入 lsblk 查看新磁盘名称 我以sdb为例 sdb1是我为其建立的分区 2 新建分区 fidsk dev sdb 先输入n 新建分区 然后输入p 建立分区 其余选项默认 最后一步输入w保存 3 格式化分区 mkfs x
  • strapi的使用(二)-- Graphql

    一 Graphql 一种为你的API而生的查询语言 可以理解为动态api 一般来说我们都是在后端写好sql查询语句查询数据库数据 前端请求这个api返回的数据是固定的 而Graphql可以让前端去决定请求什么字段回来 二 strapi安装G
  • OPENSSL库的使用-RSA篇

    一 RSA算法简介 RSA公钥加密算法是1977年由Ron Rivest Adi Shamirh和LenAdleman在 美国麻省理工学院 开发的 RSA取名来自开发他们三者的名字 RSA是目前最有影响力的公钥加密算法 它能够抵抗到目前为止
  • 我的GIT练习TWO

    目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习TWO C1 C2 C3 C4 C5 C6 C7 总结 前言 Git 是一个分布式版本控制及源代码管理工具 Git 可以为你的项目保存若干快照
  • vue3+element-plus上传文件,预览文件

    vue3 ts element plus上传文件 预览文件 场景 使用element plus的el upload标签 手动上传文件 可预览docx xlsx pdf jpg jpeg png 本地资源以及网络资源 1 使用el uploa
  • 三废的日常--Nginx实现负载均衡

    第二天 小废给大废买了杯奶茶 大废 这才差不多 讲了这么多早就应该给我奶茶了 吧唧吧唧 大废 那今天就来讲讲Nginx是如何实现负载均衡吧 二废 这个我知道 我看过Nginx的配置 nginx通过upstream下的配置 对配置的服务器进行
  • Go程序当父进程被kill,子进程也自动退出的问题记录

    平常我们启动一个后台进程 会通过nouhp 的方式启动 这样可以在退出终端会话的时候 进程仍然可以继续在后台执行 进程的父进程id会从原来的bash进程变成1 在go程序中 通过nouhp 的方式启动子进程 预期是即使父进程挂掉 子进程也能
  • 在阿里云CentOS7上搭建ftp服务器

    当我再次被各种出站入站规则玩弄 在搜索引擎的帮助走出泥淖后 我决定记下这次经历 1 FTP服务器的部署 1 1 安装vsftpd 笔者使用的是阿里云的ECS服务器 这不是广告 而是提醒 P 操作系统为CentOS7 首先 安装vsftp v