因为做项目的时候需要将一些数据定时通过FTP上传到服务器,所以需要在服务端搭建FTP服务。具体的步骤如下:
- 连接华为云服务器后,执行以下命令新建用户:
sudo adduser userftp
- 安装vsftpd:
sudo apt-get update
sudo apt-get install vsftpd
- 修改配置文件:
sudo vim /etc/vsftpd.conf
配置文件中的内容如下:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_root=/home/userftp/
local_enable=YES
write_enable=YES
utf8_filesystem=YES
pasv_enable=YES
pasv_address=123.60.84.95
pasv_min_port=50000
pasv_max_port=50010
- 创建/etc/allowed_users文件,并写入用户名:
sudo vim /etc/allowed_users
文件中的内容如下:userftp
- 设置安全组:需要在服务器的安全组里开放20-21端口,还需要开放pasv_min_port和pasv_max_port设置的端口。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/121a03045bad4a08a888cbcde319fe10.png)
- 修改共享文件夹的权限:
chmod -R 777 /home/userftp
- 重启vsftpd:
sudo /etc/init.d/vsftpd restart
- 查看vsftpd状态:
sudo /etc/init.d/vsftpd status
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2acfa2410a97431c874df19c0f0a6e6f.png)
active表示启动成功。 - 使用winscp进行客户端测试:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9f76dfe685bb43d58bc92711b76ae925.png)
可以发现连接成功,并可以进行文件上传和下载:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/993368c1a63649848ea314cae5caea5e.png)
- 常见错误:
winscp可以成功连接服务器,但是没有权限进入目录,有可能是因为没有开启被动模式。