一、背景
在 Web 项目中,可能会遇到图片上传和预览的功能。一般上传到项目根目录可以实现。但是这样影响性能也不好管理。所以想到创建一个Ftp服务器站点,然后配合 Nginx 服务器,整一个相对高效的一个图片服务器。Nginx 如何配置成一个图片服务器 我这篇有说明,有兴趣可以去看看。对于如何安装配置 FTP。网上有很多教程,但都各有各特点,安装配置过程中还会遇到各种问题(坑)。本篇就结合各种教程中优点地方,详情记录一个教程,让你少踩坑~
二、环境准备
- 我的FTP站点是在阿里云上的,Linux 环境, CentOs 7.3 64位系统版本。
- vsftpd 是 Linux 下的一款小巧轻快、安全易用的 FTP 服务器软件,所以 VSftpd 这款软件是必须的。当然Centos 系统中提供 yum 命令直接可以安装 vsftpd
三、详细步骤
3.1、安装 vsftpd
远程连接到远程服务器,我使用 MobaXterm 工具。
运行命令 yum install -y vsftpd 安装 vsftpd 软件,如果出现以下提示,则说明安装成功:

进入 vsftpd 核心配置文件目录中,运行 cd /etc/vsftpd ,查看相关配置文件:

配置文件说明
- vsftpd.conf 是 vsftpd 的核心配置文件
- ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器
- user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器
- chroot_list 这个文件后面会创建,此文件里的用户不受只可以访问其主目录限制的例外用户名单,当然没有特定的用户此文件可以为空的
相关命令
#设置FTP服务开机自启动
systemctl enable vsftpd.service
#启动 FTP 服务
systemctl start vsftpd.service
#查看 ftp 状态
systemctl status vsftpd
#查看ftp的端口
netstat -antup | grep ftp
3.2、配置 vsftpd
vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。所以需要做如下配置:
运行 vim /etc/vsftpd/vsftpd.conf ,修改配置文件
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#修改为:No, 禁止匿名用户登录
anonymous_enable=NO
对chroot_list文件内的用户进行限制
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#如上两行配置 打开,
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
在文件的最后,添加 allow_writeable_chroot=YES ,允许ftp用户登录上传
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#添加允许登录用户进行上传
allow_writeable_chroot=YES
配置本地账户登录 ftp
本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。vsftpd 安装后默认只支持匿名访问 FTP 服务器,如果您试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 服务拒绝。
创建一个ftp账户。
useradd ftptest
设置ftptest账户的密码
passwd ftptest
输入vi /etc/vsftpd/chroot_list ,在文件中添加 ftptest
配置 Linux 用户可以登录 Ftp 服务器
输入setenforce 0,关闭SELinux 可以暂时性关闭。重启后失效。也可以输入vim /etc/selinux/config,新增 SELINUX=disable ,注释掉原来 enforcing 的配置。关闭重启永久有效。
这一块注意:阿里云中,selinux 这块的配置,默认是 disale 的好像。这里根据自己情况配置!!!
给目录文件夹权限
chmod 755 -R /home/ftptest
#重启ftp服务
systemctl restart vsftpd.service
最后,如果是云服务器的,还需要开放对应端口权限,Ftp 服务默认21端口,阿里云安全组中需要开放 21 端口,否则无法访问。
通过以上步骤,便完成了Ftp 服务器的配置
四、结果测试
4.1、使用FileZilla 工具测试 Ftp
打开工具,选择Ftp协议,输入服务器地址、端口号、账户名以及密码

传输设置中,需要设置为主动连接方式。要不然会连接失败。这里不在探讨 主动和被动连接,有兴趣可以自己百度研究下~~

点击连接,如果成功则进入 站点根路径下(/home/ftptest):

连接完成就可以上传文件啦!!!
备注:
问题一:Ftp 搭配 Nginx 配置静态资源服务器时候,如果访问遇到 403 forbidden 的时候:
1.查看目录是否给了权限
2.修改nginx 的配置文件(nginx.conf),user nobody 修改为自己ftp账户或直接设置为 root 账户可以解决
问题二:如果按照以上配置,使用工具连接 ftp 服务器,提示登录成功,但是目录列出失败,这种情况需要考虑下:
您的网络运营商是不是 铁通?移动?长城? 的宽带,这三种类型的好像对 FTP 的服务有限制,具体可以联系运营商咨询下。
亲测:我在电信网络环境下,连接没有任何问题,但是使用长城宽带,ftp连接可以登录,但是无法读出目录!!!
参考链接:
https://blog.csdn.net/qq_27727251/article/details/81169706
https://help.aliyun.com/knowledge_detail/92048.html?spm=a2c4g.11186631.2.2.55889153nDyGPj
本文作者: AI码真香
本文标题: 阿里云服务器上搭载 FTP 站点
本文网址: https://www.xmlvhy.com/article/78.html
版权说明: 自由转载-非商用-非衍生-保持署名 署名-非商业性使用4.0 国际 (CC BY-NC 4.0)
类似文章
| 0 评论
还没有评论,快来抢沙发吧!