Linux服务安装ftp服务(支持ftps)详细教程

简介: 本文详解vsftpd FTP服务器的快速部署:涵盖Debian/Ubuntu与CentOS/RHEL系统安装、专用用户与目录创建、核心安全配置(禁用匿名访问、chroot限制)、FTPS加密配置(TLS 1.2/1.3支持、自签名证书生成)及隐式SSL(端口990)设置,并提供服务管理与本地测试命令。

1. 安装方式

Vsftpd可通过系统包管理器安装:

  • Debian/Ubuntu系统sudo apt-get install vsftpd
  • CentOS/RHEL系统sudo yum -y install vsftpd

2. 基础准备:创建用户与目录

为使用FTP服务,需要创建专用的系统用户和主目录:

# 创建用户组
sudo groupadd ftp
# 创建并授权主目录
sudo mkdir -p /home/resource
sudo chmod 777 /home/resource
# 创建用户(ftpuser)并指定主目录和组
sudo useradd -g ftp -d /home/resource ftpuser
# 设置用户密码
sudo passwd ftpuser

3. 核心配置详解

配置文件位于 /etc/vsftpd.conf。以下是根据原文整理的常用配置项:

3.1 基础与安全配置

配置项 示例值 说明
监听设置 listen=NO, listen_ipv6=YES 根据网络环境配置IPv6监听
匿名访问 anonymous_enable=NO 禁止匿名登录,增强安全性
本地用户 local_enable=YES 允许系统用户(如ftpuser)登录
写入权限 write_enable=YES 允许上传、创建文件等操作
目录消息 dirmessage_enable=YES 进入目录时显示消息文件
时间设置 use_localtime=YES 使用服务器本地时间
日志记录 xferlog_enable=YES 启用上传下载日志
端口连接 connect_from_port_20=YES 启用20端口进行数据传输
用户根目录限制 chroot_local_user=YES 限制用户活动范围在其主目录
允许可写根目录 allow_writeable_chroot=YES 允许主目录可写(配合上一项使用)

3.2 配置FTPS(隐式SSL/TLS加密)

为了数据传输安全,可以配置FTPS。首先使用OpenSSL生成自签名证书(放置于安全目录如/etc/vsftpd/ssl/):
bash

sudo mkdir -p /etc/vsftpd/ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /etc/vsftpd/ssl/vsftpd.pem \
  -out /etc/vsftpd/ssl/vsftpd.pem

然后在配置文件中添加或修改以下关键项:

配置项 推荐值 说明
ssl_enable YES 开启SSL加密功能
rsa_cert_file /etc/vsftpd/ssl/vsftpd.pem 指定证书文件路径
rsa_private_key_file /etc/vsftpd/ssl/vsftpd.pem 指定私钥文件路径
ssl_tlsv1_2 YES 启用TLS 1.2(推荐,更安全)
ssl_tlsv1_3 YES 启用TLS 1.3(如版本支持)
ssl_sslv2ssl_sslv3 NO 禁用不安全的SSL协议
require_ssl_reuse NO 设为NO以避免下载问题
ssl_ciphers HIGH 使用高强度的加密算法

3.3 高级与隐式SSL配置

如果希望使用隐式SSL(即专用的FTPS端口990),可以添加:
text

implicit_ssl=YES
listen_port=990

其他性能与调试配置:

  • max_clients=11: 最大并发连接数
  • max_per_ip=11: 每个IP的最大连接数
  • log_ftp_protocol=NO: 是否记录详细的FTP协议命令

4. 服务管理命令

bash

# 启动服务
sudo systemctl start vsftpd   # 或 service vsftpd start
# 查看状态
sudo systemctl status vsftpd  # 或 service vsftpd status
# 重启服务
sudo systemctl restart vsftpd # 或 service vsftpd restart
# 停止服务
sudo systemctl stop vsftpd    # 或 service vsftpd stop

5. 本地连接测试

bash

# 连接本地FTP服务器
ftp 127.0.0.1
# 按提示输入用户名(如ftpuser)和密码
# 登录成功后可使用 ls, get, put 等命令
ftp> quit # 退出
相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
相关文章
|
3月前
|
搜索推荐 关系型数据库 大数据
PL/pgSQL 入门教程(四):使用游标(cursor)
游标是PostgreSQL中“按需取数”的数据指针,避免大查询内存溢出;支持逐行处理、动态查询、精准更新/删除及函数返回大结果集。分未绑定(灵活)与绑定(固定)两类,核心操作为声明→打开→FETCH/MOVE/UPDATE→关闭,FOR循环可自动简化遍历。
|
3月前
|
运维 监控 Linux
Linux中收集【系统】和【硬件】信息的30个常用命令总结
本文系统梳理30个Linux运维核心命令,涵盖系统信息(如`uname`、`hostname`)、硬件诊断(如`lscpu`、`smartctl`)及日志监控(如`dmesg`、`journalctl`)等全场景需求,助力高效排查故障、优化性能与实现自动化运维。
721 2
|
23天前
|
关系型数据库 分布式数据库 PolarDB
PolarDB开源新作:DuckDB-paimon,助力企业构建面向AI的多模数据底座
DuckDB-paimon 是 PolarDB 团队开发的 DuckDB 插件,支持直接查询 Apache Paimon 数据湖表(本地/OSS),无需 Flink/Spark 集群。基于 paimon-cpp 原生 C++ 实现,具备列裁剪、多线程扫描、Secret 安全凭证等特性,实现秒级轻量分析。
296 9
|
3月前
|
Oracle Java 应用服务中间件
apache-tomcat-6.0.10使用步骤详解(附启动与部署教程)
Tomcat 6.0.10是经典Java Web服务器,适用于老项目部署。需先安装JDK 6/7并配置环境变量,解压后运行bin目录下startup.bat启动服务,浏览器访问localhost:8080验证。支持war包自动部署,可修改server.xml调整端口,关闭用shutdown.bat或Ctrl+C。
|
26天前
|
机器学习/深度学习 人工智能 自然语言处理
视频去字幕工具横评:本地 AI、云端方案与传统方法的实战对比
做视频二创,最头疼的莫过于硬编码字幕。本文实测 5 种主流去字幕方案,从技术原理到实际效果,给你一份客观的选型指南。
446 8
|
12天前
|
数据采集 人工智能 自然语言处理
Token中文新译名:「符元」——一文七个维度讲清Token的本质定义
拒绝“智元”走私语义,七维拆解 Token 物理本质,定义 AI 时代唯一真名:「符元」。
383 2
|
监控 架构师 Java
JVM 8 调优指南:如何进行JVM调优,JVM调优参数
这篇文章将详细介绍如何进行JVM 8调优,包括JVM 8调优参数及其应用。此外,我将提供12个实用的代码示例,每个示例都会结合JVM启动参数和Java代码。JVM调优是指通过调整Java虚拟机的配置来提升Java应用程序的性能。这包括优化堆内存设置、选择合适的垃圾收集器以及调整其他性能相关的参数。
1291 0