首页> 博客> 阿里云服务器上搭载 FTP 站点
18 03 2019
一、背景

在 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

类似文章

  1. 给网站搭建 HTTPS 安全环境
  2. Windows 下搭建 MySQL+Apache +PHP 环境
  3. CentOS 下 配置Nginx 和相关使用配置

评论区

| 0 评论

还没有评论,快来抢沙发吧!