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

相关推荐

  • Debian还是Ubuntu更适合初学者?

    在Linux系统中正确显示中文字符需要确保系统具备完整的语言支持和字体配置,以下是详细操作指南:核心原理Linux默认不显示中文的原因:缺失中文字体:系统未安装中文字体包(如Noto Sans CJK、WenQuanYi)未配置Locale:语言环境未设置为支持UTF-8编码应用未启用中文渲染:部分应用需单独配……

    2025年7月30日
    21700
  • Linux新手指南,如何正确退出vim编辑器?命令操作步骤请解答?

    在Linux系统中,vim是一款功能强大的文本编辑器,但因其模式化的操作特性,新手常常对退出操作感到困惑,掌握vim的退出方法不仅能提高工作效率,还能避免因操作不当导致的数据丢失,本文将详细介绍vim的各种退出方式,包括基础命令、进阶技巧及常见问题处理,帮助用户全面掌握vim的退出操作,vim的基础退出命令vi……

    2025年9月26日
    24800
  • linux系统如何ftp

    Linux 系统中,可安装 ftp 客户端软件,使用 ftp 命令连接服务器,进行

    2025年8月15日
    24100
  • Linux下如何删除用户?命令与操作步骤详解

    在Linux系统中,用户管理是系统维护的核心任务之一,当不再需要某个用户账号时,及时删除不仅能提升系统安全性,还能释放相关资源,但删除用户操作需谨慎,若处理不当可能导致数据丢失或权限混乱,本文将详细介绍Linux下删除用户的完整流程、命令参数、注意事项及特殊情况处理,帮助用户安全、高效地完成操作,删除用户的准备……

    2025年9月17日
    27100
  • U盘如何安装Linux系统?新手详细步骤教程指南

    将Linux系统安装到U盘是一种灵活便携的方式,既能作为随身系统使用,也能用于体验Linux或系统修复,以下是详细的操作步骤,从准备工作到安装完成的全流程,帮助你顺利完成操作,U盘安装Linux系统准备工作在开始前,需确保硬件和软件准备到位,避免中途出现问题,以下是关键准备工作清单:项目具体要求备注U盘容量建议……

    2025年8月22日
    26700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信