You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
搭建FTP站点
搭建FTP站点(Ubuntu 22.04)
复制全文
下载 pdf
搭建FTP站点(Ubuntu 22.04)
文件传输协议FTP是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议,一般运行在20和21两个端口。本文介绍如何在Ubuntu 22.04操作系统的实例上搭建FTP站点。​
前提条件​
  • 云服务器状态为运行中 。​
软件版本​
  • Linux 操作系统:本文以Ubuntu 22.04为例。​
  • 客户端操作系统:本文以macOS Sequoia 15.6.1为例。​
  • Vsftpd:本文以vsftpd 3.0.2为例。​
操作步骤​
步骤一:安装vsftpd​
  1. 执行如下命令,安装vsftpd。​
  • ​
    sudo apt-get update​
    sudo apt-get -y install vsftpd​
    ​
  1. 执行如下命令,设置vsftpd开机自启动。​
  • ​
    systemctl enable vsftpd​
    ​
  1. 执行如下命令,启动FTP服务。​
  • ​
    systemctl start vsftpd​
    ​
  1. 执行如下命令,确认服务是否启动。​
  • ​
    netstat -antup | grep vsftpd​
    ​
  • 回显如下所示时,表示vsftpd服务已成功启动。​
  • ​​​
说明​
vsftpd默认以匿名用户访问,匿名用户默认访问的FTP服务器端路径为:/var/ftp/pub,匿名用户只有查看权限,无法创建、删除、修改。​
步骤二:配置vsftpd​
  1. 执行如下命令,备份vsftpd的配置文件。​
  • ​
    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak​
    ​
  1. 修改vsftpd配置文件。​
  1. 执行如下命令,打开vsftpd的配置文件。​
  • ​
    sudo vim /etc/vsftpd.conf​
    ​
  1. 按i键进入编辑模式,开启IPv4 socket监听并关闭IPv6 socket监听。​
  • ​
    listen=YES​
    listen_ipv6=NO​
    ​
  1. 修改FTP访问权限为只允许本地用户访问FTP,并禁用任何匿名访问。​
  • ​
    anonymous_enable=NO​
    local_enable=YES​
    ​
  1. 修改如下配置,启用文件上传功能。 ​
  • ​
    write_enable=YES​
    ​
  1. 删除如下配置的行首注释符#,通过使用chroot jails实现限制FTP用户访问目录,并配置可访问FTP服务用户文件。 ​
  • ​
    chroot_local_user=YES​
    chroot_list_enable=YES​
    chroot_list_file=/etc/vsftpd.chroot_list​
    ​
  1. 添加FTP服务目录配置,并开启允许用户在挂载的chroot(改变根目录)环境中写入权限。​
  • ​
    local_root=/home/ftp ​
    allow_writeable_chroot=YES​
    ​
  1. 根据实际需求添加如下配置,将FTP配置为主动模式或被动模式。​
说明​
由于大多数客户端防火墙设置等原因,使用主动模式可能会产生问题,建议您选择被动模式搭建FTP服务。​
  • 主动模式​
  • ​
    port_enable=YES​
    ​
  • 被动模式​
说明​
请将<PUBLIC_IP>替换为搭建FTP站点的服务器实际公网IP地址。​
  • ​
    pasv_enable=YES​
    pasv_min_port=35000​
    pasv_max_port=40000​
    pasv_address=<PUBLIC_IP>​
    ​
  1. 按esc键退出编辑模式,输入:wq按回车键,保存修改并退出配置文件。​
  1. 创建chroot_list文件,并在文件中写入例外用户名单。​
说明​
例外名单中的用户不会被锁定在主目录,可以访问其他目录。​
  1. 执行如下命令,创建chroot_list文件。​
  • ​
    sudo vim /etc/vsftpd.chroot_list​
    ​
  1. 按i进入编辑模式,输入例外用户名单。​
  1. 按Esc退出编辑模式,然后输入:wq按回车键,保存并退出文件。​
  1. 执行如下命令重新启动vsftpd,使配置生效。​
  • ​
    sudo systemctl restart vsftpd​
    ​
步骤三:配置用户目录​
  1. 安装vsftpd后,默认会创建用户名为ftp的无密码用户,请执行如下命令修改其密码。​
  • ​
    sudo passwd ftp​
    ​
  • 回显如下所示时,表示已成功修改ftp用户的登录密码。​
  • ​​​
  1. 执行如下命令,确保ftp用户的Shell被包含在/etc/shells文件中。​
  • ​
    SHELL_TO_CHECK=$(getent passwd ftp | cut -d: -f7) && (grep -q "^$SHELL_TO_CHECK$" /etc/shells || echo "$SHELL_TO_CHECK" >> /etc/shells)​
    ​
  1. 执行如下命令,将用户ftp添加到vsftpd允许登录的用户列表文件。​
  • ​
    echo "ftp" | sudo tee -a /etc/vsftpd.userlist​
    ​
  1. 执行如下命令,创建FTP文件目录。​
  • ​
    sudo mkdir /home/ftp​
    ​
  1. 执行如下命令,设置FTP文件目录权限。​
说明​
本文以赋予文件夹读、写、完全控制权限,请按需修改相应权限。​
  • ​
    sudo chmod 777 /home/ftp​
    ​
步骤四:设置安全组​
搭建好FTP站点后,在实例安全组的入方向添加规则并放行下列FTP端口。具体操作,请参见修改安全组访问规则。​
​
FTP 使用模式​
方向​
协议类型​
端口范围​
源地址​
主动模式​
入方向​
TCP​
20/21​
0.0.0.0/0​
被动模式​
入方向​
TCP​
21 端口和配置文件 /etc/vsftpd/vsftpd.conf 中参数pasv_min_port和pasv_max_port之间的所有端口。​
说明​
您可参考配置建议调整被动模式端口范围,本文以35000-40000为例。​
0.0.0.0/0​
​
步骤五:客户端测试​
您可以通过FTP客户端软件、浏览器或文件资源管理器等工具验证FTP服务,本文以MacOS 访达为例。​
  1. 打开访达,在顶部导航栏选择“前往 > 连接服务器”。​
  1. 输入ftp://云服务器公网IP:21,单击“连接”按钮。​
  • ​​​
  1. 在弹出的登录窗口中确认FTP服务器信息,单击“连接”按钮。​
  • ​​​
  1. 输入已设置的FTP用户名和密码,然后单击“连接”。连接成功后,可查看到FTP服务器指定目录下的文件。​
  • ​​​
注意​
由于macOS“访达”不支持上传文件到FTP服务器,您可以下载FileZilla等第三方软件进行文件传输操作。​
最近更新时间:2026.01.20 17:18:35
这个页面对您有帮助吗?
有用
有用
无用
无用