我参考的 搭建FTP站点(CentOS 7),操作步骤那切换到手动部署。设置安全组以及下面内容可以不看。下面是我的安装记录。
安装vsftpd
# 安装vsftpd apt install -y vsftpd # 启动FTP服务,并设置开机自启动 systemctl start vsftpd systemctl enable vsftpd # 查看FTP服务监听的端口(默认监听端口号为21) netstat -antup | grep ftp
配置vsftpd
# 创建一个Linux用户并设置密码(如:ftptest/ftptest.123), sudo adduser ftpwanghua(修改密码请用:sudo passwd ftpwanghua) # 创建一个供FTP服务使用的文件目录。 sudo mkdir -p /var/ftp/public # 创建测试文件 sudo touch /var/ftp/public/testfile.txt # 更改 /var/ftp/public 目录的拥有者为 ftptest sudo chown -R ftptest:ftptest /var/ftp/public
vim /etc/vsftpd.conf,修改下列参数的值:
# 禁止匿名登录FTP服务器。 anonymous_enable=NO # 允许本地用户登录FTP服务器。 local_enable=YES # 监听IPv4 sockets。 listen=YES # 允许往FTP写文件 write_enable=YES 在行首添加#注释掉以下参数,关闭监听IPv6 sockets: #listen_ipv6=YES
此外,在配置文件的末尾添加下列参数,其中pasv_address需修改为FTP服务器的公网IP地址:
#设置本地用户登录后所在目录。 local_root=/var/ftp/public #全部用户被限制在主目录。 chroot_local_user=YES #启用例外用户名单。 chroot_list_enable=YES #指定例外用户列表文件,列表中用户不被锁定在主目录。 chroot_list_file=/etc/vsftpd.chroot_list #开启被动模式。 pasv_enable=YES allow_writeable_chroot=YES #本教程中为Linux实例的公网IP。 pasv_address=192.168.1.200 #设置被动模式下,建立数据传输可使用的端口范围的最小值。 #建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。 pasv_min_port=50000 #设置被动模式下,建立数据传输可使用的端口范围的最大值。 pasv_max_port=50010
重要:/etc/vsftpd.chroot_list 是空的也要创建出来,否则客户端连上去一直报验证失败。
重启让配置生效:systemctl restart vsftpd
最后,阿里云、ufw都放通 21 端口。
测试
XFTP 主动模式连上去成功了,但被动模式没有成功,应该是阿里云防火墙上未放通 50000-50010 端口。
卸载
# 卸载ftp服务,--purge:选项表示彻底删除改软件和相关文件 sudo apt-get remove --purge vsftpd