centos7快速搭建ftp服务器

在 CentOS 7 上使用 vsftpd 搭建 FTP 服务器

准备工作:

  • 系统需为 CentOS 7
  • 需要具备根用户或 sudo 权限

第 1 步:安装 vsftpd 和 FTP 客户端

  • 更新系统包(可选,但推荐):
    sudo yum update
    
  • 安装 vsftpd
    sudo yum install vsftpd
    
  • 安装 FTP 客户端(可选):
    sudo yum install ftp
    

第 2 步:配置 vsftpd

  • 备份原始配置文件(非常重要):
    sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
    
  • 编辑配置文件
    sudo vi /etc/vsftpd/vsftpd.conf
    
    在文件中,用以下内容替换全部内容:
    # 基本的 vsftpd 配置
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    allow_writeable_chroot=YES
    user_sub_token=$USER
    local_root=/data/ftpdata/$USER
    
  • 限制用户到指定目录
    为此,您需要在 vsftpd 配置文件中添加以下行:
    user_sub_token=$USER
    local_root=/data/ftpdata/$USER
    
    这将确保用户登录时被限制在 /data/ftpdata/ftpuser0 目录中。

第 3 步:解决 vsftpd 错误

如果出现错误 “500 OOPS: could not read chroot() list file:/etc/vsftpd.chroot_list”,执行以下操作:

创建和配置 chroot 列表文件
  • 创建 chroot 列表文件
    sudo touch /etc/vsftpd.chroot_list
    
  • 设置正确的权限
    sudo chmod 644 /etc/vsftpd.chroot_list
    
  • 添加例外用户(如果有):
    如有不需限制的用户,将它们添加到此文件中,每行一个用户名。

第 4 步:创建 FTP 用户和目录

  • 创建用户(如 ftpuser0):
    sudo adduser ftpuser0
    sudo passwd ftpuser0
    
    然后输入密码(例如 KS12YK)。
  • 创建和设置 FTP 目录
    sudo mkdir -p /data/ftpdata/ftpuser0
    sudo chown -R ftpuser0:ftpuser0 /data/ftpdata/ftpuser0
    sudo chmod -R 755 /data/ftpdata
    

第 5 步:配置防火墙

如果启用了防火墙,需要允许 FTP 流量:

sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
sudo firewall-cmd --zone=public --add-service=ftp --permanent
sudo firewall-cmd --reload

第 6 步:启动和启用 vsftpd 服务

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

第 7 步:测试 FTP 访问

通过在本地机器上使用 FTP 客户端测试访问:

ftp <服务器IP地址>

然后使用用户名 ftpuser0 和密码登录。

完成

现在,您应该有一个在 CentOS 7 上运行的基本 FTP 服务器,用户 ftpuser0 被限制

你可能感兴趣的:(FTP,服务器,运维)