Windows系统 和 Linux系统(以Ubuntu为例) 分别讲解两种最常见的搭建方式。
一、Windows系统搭建FTP服务器
方法1:使用Windows自带的IIS搭建FTP服务器
启用IIS和FTP功能
- 打开“控制面板” → “程序” → “启用或关闭Windows功能”。
- 勾选:
- “Internet Information Services” → “FTP服务器”
- “IIS管理控制台”
- 点击“确定”,等待安装完成。
创建FTP站点
- 打开 IIS管理器(开始菜单搜索 Internet Information Services (IIS) 管理器)。
- 右键“网站” → “添加FTP站点”。
- 设置站点名称、选择物理路径(如
D:\FTP)。
- 绑定IP地址(默认“全部未分配”)和端口(默认21)。
- SSL选择“无SSL”(本地测试可不启用)。
设置身份验证和权限
- 身份验证:勾选“基本”(简单本地测试可用,生产环境建议结合SSL)。
- 授权规则:设置允许的用户(如“所有用户”或指定用户)和权限(读取/写入)。
配置Windows防火墙
- 控制面板 → Windows Defender 防火墙 → 允许应用或功能通过防火墙。
- 勾选“FTP服务器”和“核心网络诊断”相关规则。
- 或手动添加入站规则:端口21(TCP)。
测试FTP连接
- 打开浏览器或资源管理器,输入
ftp://本机IP地址(如 ftp://192.168.1.100)。
- 或使用FTP客户端(如FileZilla)连接。
方法2:使用第三方软件(如FileZilla Server)
下载安装FileZilla Server
- 官网下载:https://filezilla-project.org/
- 安装过程保持默认设置,记住管理端口和密码。
启动并配置
- 打开FileZilla Server Interface,连接本地服务器。
- 点击“用户” → 添加用户(如
ftpuser)并设置密码。
- 为用户指定共享目录并设置权限(读取、写入、删除等)。
防火墙设置
- 开放端口 21(控制连接)和 被动模式端口范围(可在设置中自定义)。
测试连接
二、Linux系统搭建FTP服务器(以Ubuntu为例)
使用 vsftpd(常用)
安装 vsftpd
sudo apt update
sudo apt install vsftpd
备份并编辑配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
修改关键配置
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 设置本地用户目录(可选)
local_root=/home/ftp
# 禁止匿名登录(更安全)
anonymous_enable=NO
# 限制用户只能访问其家目录
chroot_local_user=YES
allow_writeable_chroot=YES
# 被动模式设置(如果需要)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
创建FTP专用用户(可选)
sudo useradd -m ftpuser
sudo passwd ftpuser
设置目录权限
sudo chown ftpuser:ftpuser /home/ftpuser
重启服务并设置自启
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
配置防火墙(如UFW)
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
测试连接
ftp localhost
或用客户端连接服务器IP。
三、通用配置与安全建议
1. 安全设置
- 使用强密码,避免默认账户。
- 限制用户访问目录(chroot)。
- 生产环境建议使用 FTPS(FTP over SSL/TLS) 或 SFTP(SSH File Transfer Protocol)。
- 设置防火墙规则,仅允许必要IP段访问。
2. 被动模式与端口转发(内网穿透)
- 若服务器在路由器后,需在路由器设置 端口转发:TCP 21 + 被动模式端口范围。
- 将服务器IP设为静态IP,避免内网IP变化导致连接失败。
3. 测试工具
- 命令行:
ftp [IP地址]
- 图形工具:FileZilla Client、WinSCP。
- 浏览器访问:
ftp://[IP地址]
四、常见问题排查
连接超时 → 检查防火墙/路由器端口是否开放。
身份验证失败 → 检查用户名/密码,确认用户是否有登录权限。
无法上传文件 → 检查目录权限和vsftpd配置文件中的
write_enable。
被动模式失败 → 检查被动端口范围是否在防火墙中开放。
如果你需要更详细的某一部分说明(如SSL配置、用户权限细分),我可以继续为你补充!