Linux如何配置FTP服务?

在Linux系统中配置FTP服务通常使用vsftpd(Very Secure FTP Daemon),这是一款轻量级、安全且稳定的FTP服务器软件,以下是详细的配置步骤,涵盖安装、配置用户权限、防火墙设置及服务管理等内容。

linux如何配置ftp

安装vsftpd

首先根据Linux发行版选择合适的包管理器安装vsftpd。

  • 基于Debian/Ubuntu的系统
    sudo apt update
    sudo apt install vsftpd -y
  • 基于CentOS/RHEL的系统
    sudo yum install vsftpd -y  # CentOS 7及以下
    sudo dnf install vsftpd -y # CentOS 8及以上

    安装完成后,vsftpd服务默认未启动,需通过systemctl status vsftpd检查状态。

配置vsftpd核心文件

vsftpd的主配置文件位于/etc/vsftpd/vsftpd.conf,建议先备份原文件:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

然后编辑配置文件,以下为关键配置项及其作用(可通过表格清晰对比):

配置项 作用 推荐值
anonymous_enable 是否允许匿名用户登录 NO(禁止匿名访问)
local_enable 是否允许本地用户登录 YES(允许系统用户登录)
write_enable 是否允许FTP命令修改文件 YES(允许上传/删除等操作)
chroot_local_user 是否限制用户仅能访问自家目录 YES(增强安全性)
allow_writeable_chroot chroot_local_user=YES时,是否允许家目录可写 YES(需配合目录权限)
pasv_enable 是否启用被动模式(推荐用于客户端防火墙环境) YES
pasv_min_port / pasv_max_port 被动模式端口范围 10000 10100(需防火墙放行)
userlist_enable 是否启用用户列表文件 YES
userlist_file 用户列表文件路径 /etc/vsftpd/user_list
tcp_wrappers 是否使用TCP Wrappers访问控制 YES(可通过hosts.allow/deny限制IP)

编辑配置文件时,可通过sudo nano /etc/vsftpd/vsftpd.conf打开,取消或修改上述配置项的值,保存后退出。

配置FTP用户

为安全起见,建议创建专用FTP用户,而非直接使用系统用户。

  1. 创建用户并设置密码

    linux如何配置ftp

    sudo useradd -m -s /sbin/nologin ftpuser  # 创建用户,禁止SSH登录
    sudo passwd ftpuser                        # 设置用户密码

    -m表示自动创建家目录,-s /sbin/nologin限制用户只能通过FTP登录。

  2. 限制用户访问目录(chroot)
    chroot_local_user=YES,需确保用户家目录不可被写入(避免安全漏洞),或设置allow_writeable_chroot=YES后调整目录权限:

    sudo chmod 755 /home/ftpuser  # 设置家目录权限为755(所有者可读写执行,其他用户可读执行)
  3. 通过用户列表限制登录
    userlist_enable=YES,编辑/etc/vsftpd/user_list文件,添加允许登录的用户名(每行一个):

    echo "ftpuser" | sudo tee -a /etc/vsftpd/user_list

配置防火墙

FTP服务默认使用21端口(控制连接),被动模式需额外配置端口范围(如10000-10100)。

  • Ubuntu/Debian(使用ufw)
    sudo ufw allow 21/tcp          # 允许FTP控制端口
    sudo ufw allow 10000:10100/tcp # 允许被动模式端口范围
    sudo ufw reload
  • CentOS/RHEL(使用firewalld)
    sudo firewall-cmd --permanent --add-service=ftp  # 添加FTP服务(自动包含21端口)
    sudo firewall-cmd --permanent --add-port=10000-10100/tcp
    sudo firewall-cmd --reload

启动并设置开机自启

配置完成后,启动vsftpd服务并设置为开机自启:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

通过systemctl status vsftpd确认服务运行状态,若启动失败,可查看日志journalctl -u vsftpd排查问题。

测试FTP连接

  1. 命令行测试(本地或远程客户端):

    linux如何配置ftp

    ftp 127.0.0.1  # 或服务器IP

    输入用户名(ftpuser)和密码,登录后使用put上传文件、get下载文件测试。

  2. 图形化工具测试(如FileZilla):
    主机填服务器IP,协议选择“FTP”,端口21,输入用户名密码,连接成功后即可传输文件。

相关问答FAQs

Q1:FTP连接时提示“530 Login incorrect”,如何解决?
A:可能原因包括:① 用户名或密码错误;② 用户未在user_list文件中;③ chroot限制导致家目录权限问题,检查/etc/vsftpd/user_list是否包含用户名,确认家目录权限为755,或尝试临时关闭chroot_local_user测试。

Q2:如何限制FTP用户只能上传文件,不能下载或删除?
A:通过设置文件权限实现,在用户家目录中,创建专用上传目录,并调整权限:

sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 733 /home/ftpuser/upload  # 用户可读写执行,其他用户无权限(避免下载)

然后在vsftpd配置文件中添加local_root=/home/ftpuser/upload,将用户默认目录限制为upload,即可实现仅上传功能。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33022.html

(0)
酷番叔酷番叔
上一篇 2025年9月30日 09:17
下一篇 2025年9月30日 09:31

相关推荐

  • Linux系统盘如何格式化?操作步骤及注意事项有哪些?

    在Linux系统中格式化系统盘是一项高风险操作,会彻底清除磁盘上的所有数据,因此操作前必须确认目标磁盘并备份重要数据,本文将详细介绍Linux环境下格式化系统盘的完整流程,包括准备工作、工具选择、分区步骤、格式化命令及注意事项,帮助用户安全、正确地完成操作,操作前的准备工作格式化系统盘前,需完成以下关键准备工作……

    2025年9月9日
    2500
  • linux中如何循环赋值

    Linux 中,可以使用 for 循环结合数组或命令进行循环赋值,`for i in {1.

    2025年8月18日
    3600
  • Linux系统如何更改IP地址?操作步骤与命令方法详解指南

    在Linux系统中,IP地址是设备在网络中的唯一标识,正确配置IP地址对于网络通信至关重要,无论是服务器管理、开发环境搭建还是日常使用,都可能需要更改IP地址,本文将详细介绍Linux系统中临时和永久更改IP地址的方法,涵盖命令行工具、图形化工具及配置文件修改,适用于主流Linux发行版,临时更改IP地址临时更……

    2025年8月24日
    3200
  • Linux如何安全安装Sublime Text?

    推荐方法:通过官方仓库安装(适用 Ubuntu/Debian)此方法由 Sublime HQ 官方维护,自动配置更新源和 GPG 密钥,支持后续一键升级,导入 GPG 密钥(验证软件完整性)终端执行:wget -qO – https://download.sublimetext.com/sublimehq-pu……

    2025年7月20日
    3100
  • Linux如何停止运行中的程序?常用命令及操作方法有哪些?

    在Linux操作系统中,程序以进程的形式运行,停止程序本质上是终止对应的进程,Linux提供了多种终止进程的方式,适用于不同的场景(如前台进程、后台进程、系统服务等),掌握这些方法能帮助用户高效管理系统资源,本文将详细介绍Linux中停止程序的各类方法,并结合实例说明操作步骤和注意事项,Linux进程终止的基本……

    2025年9月10日
    2900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信