搭建好阿里云服务器后,我们经常需要将本地文件上传到阿里云服务器,或者将阿里云服务器上的文件下载到本地。这就需要在阿里云服务器上搭建FTP服务,下面将介绍在搭建FTP服务器时遇到的问题以及解决办法。
1、在阿里云服务器上安装vsftpd,vsftpd是一个高安全性的运行在UNIX类操作系统上的FTP服务器。在root用户下
apt-get update # 更新软件
apt-get install vsftpd # 安装vsftpd
安装vsftpd通常不会出现错误,我们可以通过以下命令查看vsftpd的状态
service vsftpd status
我们也可以查看vsftpd的端口号,有时启动不成功可能是ftp服务的21端口被占用了
2、之后需要创建用户目录,指定用户只能访问这个目录
mkdir /home/uftp # 创建目录
chmod 775 /home # 赋予同组用户读写权限
3、创建好用户目录后,需要指定ftp用户并设置密码
useradd -m -d /home/uftp -s /bin/sh -g root uftp # 添加用户
passwd uftp # 设置密码
4、接下来也是最重要的步骤,修改vsftpd配置文件
vim /etc/vsftpd.conf # 修改配置文件
重要的有以下几个配置选项
anonymous_enable=NO/YES # 是否允许匿名登录FTP服务器
local_enable=NO/YES # 是否允许本地用户登录FTP服务器
listen=NO/YES # 设置vsftpd服务器是否以standalone模式运行
write_enable=YES/NO # 是否允许登录用户有写的权限
设置write_enable=YES,允许登录有写的权限;建议将anonymous_enable=NO,禁止匿名登录;local_enable=YES,允许本地用户登录;设置listen=NO,当listen=YES,listen_ipv6=YES将同时出现监听IPV4和IPV6,FTP服务器启动失败。
默认情况下,用户登录FTP服务器后被允许跳出主目录之外浏览服务器上的其他目录,如果想要限制用户在主目录下,需要用到chroot_local_user,chroot_list_enable,chroot_list_file三个配置项,一种常用的配置组合如下:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
“/etc/vsftpd.chroot_list”是用户自己指定的文件,在该文件中列出的用户可以跳出主目录,未在文件中列出的用户不允许跳出主目录。
重启FTP服务器,使配置生效
service vsftpd restart # 重启服务
接着我们就可以用FileZilla连接FTP服务器了,通常有可能会遇到以下问题:
1、“不安全的服务器,不支持FTP over TLS”
FileZilla客户端连接时默认使用会话加密的方式,在文件—>站点管理器—>常规,选择“只使用FTP”。
2、“500 OOPS: cannot change directory:/home/uftp”
创建用户和目录时,需要赋予目录权限。删除原有用户和目录,重复上述步骤。
userdel uftp # 删除用户
rm -rf /home/uftp # 删除目录
3、“服务器发回了不可路由的地址,使用服务器地址代替”
更改FileZilla设置,编辑—>设置—>连接—>FTP—>被动模式,将“使用服务器的外部IP来代替”改为“退回到主动模式”。
4、“500 OOPS: vsftpd: refusing to run with writable root inside chroot ()”
当我们限定用户不能跳出主目录时,则该用户的主目录不再具有写权限,如果检查还有写权限,就会报以上错误,可以在配置文件中增加下面配置:
allow_writeable_chroot=YES #
service vsftpd restart
当然阿里云安全组同样需要允许入方向21端口连接,具体参加远程连接阿里云MySQL失败解决办法。
这篇博客只是总结了本人在安装FTP服务器时遇到的一些问题,没有深入探讨其中的原理,如有错误和不恰当的地方,敬请指导!