温馨提示×

Linux vsftp安装步骤:快速上手指南

小樊
63
2026-01-12 01:09:43
栏目: 智能运维

Linux vsftpd 安装与快速上手

一 安装与启动

  • 在基于 RHEL/CentOS 的系统上安装并启动:
    sudo yum install -y vsftpd
    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd
    
  • 在基于 Ubuntu/Debian 的系统上安装并启动:
    sudo apt-get update
    sudo apt-get install -y vsftpd
    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd
    
  • 安装完成后,vsftpd 的主配置文件为:/etc/vsftpd/vsftpd.conf

二 基础安全配置

  • 禁止匿名访问,启用本地用户与写入:
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    
  • 将本地用户限制在其家目录(chroot),避免越权浏览:
    chroot_local_user=YES
    allow_writeable_chroot=YES
    
  • 说明:启用 chroot 后,若需允许极少数用户跳出家目录,可结合 chroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_list 进行例外配置。

三 创建系统用户与目录

  • 创建仅用于 FTP 的系统用户(禁止 shell 登录),并指定其根目录:
    sudo useradd -d /home/wwwroot -s /sbin/nologin ftpuser
    sudo passwd ftpuser
    sudo chown -R ftpuser:ftpuser /home/wwwroot
    
  • /etc/shells 中缺少 /sbin/nologin,请追加该行,避免登录受限。

四 防火墙与被动模式

  • 放行 FTP 控制端口 21;若启用被动模式(PASV),需开放一段高位端口,并在路由器/NAT 上做端口映射:
    # 被动模式启用与端口范围示例
    pasv_enable=YES
    pasv_min_port=50000
    pasv_max_port=50010
    pasv_address=你的公网IP   # 有公网IP时建议显式指定
    
  • 防火墙示例(firewalld):
    sudo firewall-cmd --permanent --add-service=ftp
    sudo firewall-cmd --permanent --add-port=50000-50010/tcp
    sudo firewall-cmd --reload
    
  • 防火墙示例(UFW):
    sudo ufw allow 21/tcp
    sudo ufw allow 50000:50010/tcp
    
  • 说明:FTP 使用 21 端口进行控制连接,数据连接在主动模式常用 20 端口,被动模式使用配置的高位端口段。

五 启动测试与常见问题

  • 重启服务并验证端口监听:
    sudo systemctl restart vsftpd
    sudo ss -tlnp | grep :21
    
  • 本地或远程登录测试(命令行示例):
    ftp your_server_ip
    # 或使用 lftp
    lftp ftpuser@your_server_ip
    
  • 常见问题与处理:
    • SELinux 限制:若登录或写入失败,可开启相关布尔值(如 ftpd_full_access)。
      sudo setsebool -P ftpd_full_access on
      
    • chroot 与可写:启用 chroot_local_user=YES 时,若需写入,请同时设置 allow_writeable_chroot=YES,否则可能登录失败。
    • 被动模式不通:确认云厂商/防火墙已放行配置的 pasv_min_port–pasv_max_port,且路由器/NAT 映射正确。

0