如何搭建FTP服务器?新手详细教程步骤解析
- 云服务器
- 2026-01-05
- 5
FTP(文件传输协议)是一种常用的网络协议,用于在客户端和服务器之间传输文件,搭建FTP服务器可以方便地在本地网络或互联网上共享文件,本文将详细介绍在Linux系统(以Ubuntu为例)和Windows系统上搭建FTP服务器的步骤,包括安装配置、用户管理、安全设置等内容,帮助读者快速完成搭建。
在Ubuntu系统上搭建FTP服务器
Ubuntu系统下常用的FTP服务器软件是vsftpd(very secure FTP daemon),它具有安全性高、性能稳定的特点。
安装vsftpd
打开终端,更新软件包列表后安装vsftpd:
sudo apt update sudo apt install vsftpd y
安装完成后,vsftpd服务会自动启动,可通过以下命令检查服务状态:
sudo systemctl status vsftpd
配置vsftpd
vsftpd的主配置文件位于/etc/vsftpd.conf,使用以下命令备份原配置文件:

然后使用nano或vim编辑配置文件:
sudo nano /etc/vsftpd.conf
以下是关键配置项及其说明:
- anonymous_enable=NO:禁止匿名用户登录,提升安全性;
- local_enable=YES:允许本地用户登录;
- write_enable=YES:允许用户上传文件;
- chroot_local_user=YES:限制用户只能访问其主目录,防止越权访问;
- allow_writeable_chroot=YES:允许在chroot目录中写入(需配合write_enable=YES);
- pasv_min_port=10000和pasv_max_port=10100:设置被动模式端口范围,避免端口冲突;
- user_sub_token=$USER:定义用户目录变量,结合local_root=/home/$USER/ftp可实现每个用户独立目录。
保存配置文件后,重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
创建FTP用户并设置权限
假设创建一个名为ftpuser的用户,并设置其主目录为/home/ftpuser/ftp:

为用户设置目录权限:
sudo chown R ftpuser:ftpuser /home/ftpuser/ftp sudo chmod R 755 /home/ftpuser/ftp
配置防火墙
允许FTP服务(默认端口21)和被动模式端口范围通过防火墙:
sudo ufw allow 21/tcp sudo ufw allow 10000:10100/tcp sudo ufw reload
测试连接
使用FTP客户端(如FileZilla)输入服务器IP地址、用户名和密码进行连接,若连接成功,说明FTP服务器搭建完成。
在Windows系统上搭建FTP服务器
Windows系统可通过IIS(Internet Information Services)搭建FTP服务器,适合已安装Windows Server或Windows专业版/企业版的用户。

安装IIS及FTP服务
以Windows Server 2019为例,通过服务器管理器安装:
- 打开“服务器管理器”,点击“添加角色和功能”;
- 选择“基于角色或功能的安装”,点击“下一步”;
- 勾选“Web服务器(IIS)”,在“角色服务”中勾选“FTP服务器”和“管理工具”;
- 完成安装后,打开“Internet Information Services (IIS) 管理器”。
配置FTP站点
- 在IIS管理器中,右键点击“站点”选择“添加FTP站点”;
- 站点信息设置:输入站点名称(如“FTP_Site”),并选择物理路径(如C:FTP_Files);
- 绑定设置:选择IP地址(默认“全部未分配”),端口默认21,勾选“SSL”可选择启用加密(需先配置证书);
- 身份验证和授权信息:选择“基本”身份验证,勾选“匿名”或“指定用户”(如输入特定用户名),权限勾选“读取”和“写入”。
设置用户权限
- 在物理路径(如C:FTP_Files)上右键,选择“属性”;
- 在“安全”选项卡中,添加或编辑FTP用户(如ftpuser),赋予“修改”和“读取/执行”权限。
配置防火墙
允许FTP流量通过:
- 打开“Windows Defender 防火墙”,点击“高级设置”;
- 入站规则中,启用“FTP服务器”规则。
测试连接
在客户端电脑打开命令提示符,输入ftp [服务器IP地址],或使用FileZilla连接,输入用户名和密码后测试上传下载功能。
FTP服务器常见安全配置
为确保FTP服务器安全,需注意以下配置:
- 禁用匿名登录:在vsftpd中设置anonymous_enable=NO,在IIS中取消勾选“匿名”身份验证;
- 启用加密传输:vsftpd可通过配置SSL证书启用FTPS,IIS可选择“需要SSL”;
- 限制用户权限:通过chroot限制用户访问目录,避免越权操作;
- 定期更新:及时更新vsftpd或IIS版本,修复安全漏洞;
- 日志监控:开启日志记录(vsftpd日志默认位于/var/log/vsftpd.log),定期检查异常访问。
FTP服务器功能对比(vsftpd vs IIS)
| 功能 | vsftpd(Linux) | IIS(Windows) |
|---|---|---|
| 适用系统 | Linux/Ubuntu | Windows Server/专业版 |
| 匿名登录控制 | 通过配置文件开关 | IIS管理器勾选 |
| 用户目录隔离 | 支持chroot | 需配置虚拟目录 |
| 加密传输 | 支持FTPS(需配置证书) | 原生支持SSL |
| 日志管理 | 默认系统日志 | IIS日志管理器 |
相关问答FAQs
Q1: 如何解决FTP连接时提示“530 Login incorrect”错误?
A: 该错误通常由用户名或密码错误、权限不足或防火墙拦截导致,检查步骤如下:1. 确认用户名和密码输入正确;2. 在Linux中检查/etc/passwd和/etc/shadow文件中用户是否存在,Windows中检查IIS用户权限;3. 确认防火墙允许21端口及被动模式端口;4. vsftpd用户需确保主目录权限为755,且用户对目录有写权限(若需上传)。
Q2: 如何实现FTP服务器的文件上传下载速度限制?
A: 在vsftpd中,可通过配置文件添加local_max_rate=102400(单位:字节/秒,示例为100KB/s)限制用户速度;全局限制可设置anon_max_rate,在IIS中,需通过“请求筛选”和“应用程序请求路由”模块配置,步骤如下:1. 安装“Application Request Routing”模块;2. 在FTP站点配置中启用“请求筛选”;3. 设置“速率限制”规则,注意:速度限制可能影响服务器性能,建议根据实际带宽合理设置。