因为做项目的时候需要将一些数据定时通过FTP上传到服务器,所以需要在服务端搭建FTP服务。具体的步骤如下:
  1. 连接华为云服务器后,执行以下命令新建用户:
    sudo adduser userftp
    
  2. 安装vsftpd:
    sudo apt-get update
    sudo apt-get install vsftpd
    
  3. 修改配置文件:
    sudo vim /etc/vsftpd.conf
    
    配置文件中的内容如下:
    # 如果设置为"listen=YES",则表示vsftpd将作为独立守护进程运行。
    listen=NO
    # 设置vsftpd是否启用IPv6监听。
    listen_ipv6=YES
    # 设置是否允许匿名FTP登录。
    anonymous_enable=NO
    # 设置是否允许本地用户登录FTP服务器。
    local_enable=YES
    # 设置是否启用目录消息功能。
    dirmessage_enable=YES
    # 设置是否启用本地时间功能。
    use_localtime=YES
    # 设置是否启用上传和下载日志记录功能。
    xferlog_enable=YES
    # 设置数据传输的端口号。
    connect_from_port_20=YES
    # 指定了一个空目录作为安全chroot() jail。
    # 在某些情况下,vsftpd不需要访问文件系统,因此可以将FTP用户限制在这个空目录中,以增强安全性。
    # 该目录应该为空,并且不应该被FTP用户写入。
    secure_chroot_dir=/var/run/vsftpd/empty
    # 指定vsftpd将使用的PAM服务的名称。
    pam_service_name=vsftpd
    # 用于指定在SSL加密连接中使用的RSA证书的位置。
    # 通过设置rsa_cert_file和rsa_private_key_file选项来指定RSA证书和私钥的位置。
    # 其中,rsa_cert_file选项用于指定证书文件的位置,而rsa_private_key_file选项用于指定私钥文件的位置。
    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
    # 华为云的IP地址
    pasv_address=123.60.84.95
    # 设置被动模式下,建立数据传输可使用的端口范围,建议把端口范围设置在一段比较高的范围内,有助于提高访问FTP服务器的安全性。
    pasv_min_port=50000
    pasv_max_port=50010
    
  4. 创建/etc/allowed_users文件,并写入用户名:
    sudo vim /etc/allowed_users
    
    文件中的内容如下:
    userftp
    
  5. 设置安全组:需要在服务器的安全组里开放20-21端口,还需要开放pasv_min_port和pasv_max_port设置的端口。
    在这里插入图片描述
  6. 修改共享文件夹的权限:
    chmod -R 777 /home/userftp
    
  7. 重启vsftpd:
    sudo /etc/init.d/vsftpd restart
    
  8. 查看vsftpd状态:
    sudo /etc/init.d/vsftpd status
    
    在这里插入图片描述
    active表示启动成功。
  9. 使用winscp进行客户端测试:
    在这里插入图片描述
    可以发现连接成功,并可以进行文件上传和下载:
    在这里插入图片描述
  10. 常见错误:
    winscp可以成功连接服务器,但是没有权限进入目录,有可能是因为没有开启被动模式。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐