如何在Linux上安装和配置FTP服务器

来源:IT编程作者:天穹小白头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux上安装和配置FTP服务器》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上安装和配置FTP服务器》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中搭建FTP服务器可以实现便捷的文件传输功能,vsftpd是目前使用最广泛的轻量FTP服务程序,稳定性和安全性表现优异,适合多数场景的部署需求。

如何在Linux上安装和配置FTP服务器

安装vsftpd服务

不同Linux发行版的包管理工具不同,安装命令存在差异,以下是常见发行版的安装方式:

  • Debian/Ubuntu系统:使用apt包管理器安装
  • CentOS/RHEL系统:使用yum或dnf包管理器安装
  • Arch Linux系统:使用pacman包管理器安装

以Ubuntu系统为例,安装命令如下:

# 更新软件源索引
sudo apt update
# 安装vsftpd服务
sudo apt install vsftpd -y

安装完成后可以检查服务状态,确认是否安装成功:

# 查看vsftpd服务运行状态
systemctl status vsftpd

核心配置文件说明

vsftpd的默认配置文件路径为/etc/vsftpd.conf,大部分配置调整都需要修改这个文件。以下是常用配置项的含义:

配置项默认值说明
anonymous_enableYES是否允许匿名用户登录,生产环境建议设为NO
local_enableNO是否允许本地系统用户登录
write_enableNO是否允许登录用户执行写操作,如上传、删除文件
chroot_local_userNO是否将用户限制在其家目录内,避免访问系统其他路径
listenYES是否以独立模式运行服务

基础配置步骤

1. 备份原始配置文件

修改配置前先备份原始文件,避免配置错误后无法恢复:

# 备份配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

2. 修改配置文件

使用文本编辑器打开配置文件,调整以下基础配置:

# 编辑配置文件
sudo vim /etc/vsftpd.conf

在文件中找到对应配置项,修改为如下内容:

# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写操作
write_enable=YES
# 限制用户在家目录
chroot_local_user=YES
# 允许对家目录有写权限
allow_writeable_chroot=YES
# 监听IPv4地址
listen=YES
# 关闭IPv6监听
listen_ipv6=NO

3. 重启服务生效配置

修改完成后保存文件,重启vsftpd服务让配置生效:

# 重启vsftpd服务
sudo systemctl restart vsftpd
# 设置服务开机自启
sudo systemctl enable vsftpd

用户权限配置

如果需要为特定用户开放FTP访问权限,可以创建专用的系统用户,避免使用root用户直接登录:

# 创建ftp用户,设置家目录为/var/ftp/pub
sudo useradd -d /var/ftp/pub -s /sbin/nologin ftpuser
# 设置用户密码
sudo passwd ftpuser
# 修改家目录权限,确保用户可以读写
sudo chmod 755 /var/ftp/pub
sudo chown ftpuser:ftpuser /var/ftp/pub

如果需要限制部分用户不能访问FTP,可以配置用户列表:

# 编辑用户限制列表,添加不允许登录的用户名,每行一个
sudo vim /etc/vsftpd.user_list
# 在配置文件中开启用户列表限制
sudo vim /etc/vsftpd.conf
# 添加以下配置
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list

防火墙与端口配置

FTP服务默认使用21端口作为命令端口,被动模式还会使用随机高位端口,需要开放对应端口:

使用ufw防火墙(Ubuntu常见)

# 开放21端口
sudo ufw allow 21/tcp
# 开放被动模式端口范围,假设设置为30000-31000
sudo ufw allow 30000:31000/tcp
# 重新加载防火墙规则
sudo ufw reload

使用firewalld防火墙(CentOS常见)

# 开放21端口
sudo firewall-cmd --permanent --add-port=21/tcp
# 开放被动模式端口范围
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
# 重新加载规则
sudo firewall-cmd --reload

同时需要在vsftpd配置文件中指定被动模式端口范围:

# 在/etc/vsftpd.conf中添加
pasv_min_port=30000
pasv_max_port=31000

连接测试

配置完成后可以使用FTP客户端工具测试连接,以下是命令行测试方式:

# 使用ftp命令连接,替换为服务器IP
ftp 192.168.0.1
# 输入之前创建的用户名ftpuser和密码
# 登录成功后可以使用ls查看目录,put上传文件,get下载文件

如果连接失败,可以查看vsftpd的日志文件排查问题,默认日志路径为/var/log/vsftpd.log

vsftpdLinux_FTPftp配置用户权限修改时间:2026-06-18 11:45:42

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。