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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kidthephantomthiefI/article/details/77284741

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

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

猜你喜欢

转载自blog.csdn.net/kidthephantomthiefI/article/details/77284741