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

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

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用户文件夹的访问权限即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建FTP服务器,我们可以使用阿里云提供的云服务器ECS。首先,我们需要在阿里云控制台上购买一台ECS实例。选择适合自己需求的操作系统,如CentOS或Ubuntu。 购买成功后,我们可以通过SSH客户端连接到ECS实例。然后,我们需要安装FTP服务器软件,常用的有ProFTPD和vsftpd。通过在终端中运行适当的安装命令,即可完成安装。例如,在Ubuntu系统中,我们可以使用以下命令安装vsftpd: sudo apt update sudo apt install vsftpd 安装完成后,我们需要对FTP服务器进行配置。首先,我们需要编辑配置文件。在Ubuntu系统中,配置文件位于/etc/vsftpd.conf。我们可以使用命令行编辑器(如nano)打开该文件,并根据自己的需求进行修改。 配置文件中的一些重要选项包括:监听的端口、允许的用户、文件传输模式等。例如,我们可以选择是否允许匿名用户登录,并指定允许上传和下载的目录。还可以设置用户的权限和限制。 完成配置后,我们需要重启FTP服务器以使更改生效。在Ubuntu系统中,可以使用以下命令重启服务: sudo service vsftpd restart 现在,我们的FTP服务器已经搭建成功了!我们可以使用FTP客户端连接到ECS实例的公网IP,并使用配置的用户名和密码登录。如果一切顺利,我们应该可以在指定的目录下上传和下载文件了。 当然,在搭建FTP服务器的过程中还有更多细节需要考虑,如安全性配置、防火墙设置等。但通过以上简要的步骤,我们可以初步搭建服务器ECS上的FTP服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值