好的,我来给你整理一个 快速搭建本地 FTP 服务器的指南,涵盖 Windows 和 Linux 两种环境,并给出常用配置示例。


本地 FTP 服务器搭建指南

1️⃣ Windows 环境

方法 1:使用 Windows 自带 IIS FTP 服务

  1. 安装 IIS FTP 服务器
    • 打开 控制面板 → 程序和功能 → 启用或关闭 Windows 功能
    • 勾选:
      • Internet 信息服务
      • FTP 服务器
        • FTP 服务
        • FTP 扩展性
    • 点击 确定 安装
  2. 配置 FTP 网站
    • 打开 IIS 管理器
    • 右键 网站 → 添加 FTP 站点
      • 站点名称:MyFTP
      • 物理路径:例如 D:\FTPFiles
    • 绑定和 SSL
      • IP 地址:本机 IP 或 All Unassigned
      • 端口:默认 21
      • SSL:选择“不使用 SSL” (本地测试)
    • 身份验证
      • 选择 基本身份验证
      • 用户权限:指定本地用户
  3. 启动 FTP 服务
    • 在 IIS 管理器中启动 FTP 站点
    • 配置防火墙允许端口 21 访问
  4. 访问 FTP
    • 本地访问:ftp://127.0.0.1 或使用客户端(FileZilla、WinSCP)
    • 登录使用刚才设置的用户名和密码

方法 2:使用第三方软件(FileZilla Server)

  1. 下载 FileZilla Serverhttps://filezilla-project.org/download.php?type=server
  2. 安装并启动
  3. 配置用户
    • 添加用户并指定共享目录
    • 设置读/写权限
  4. 配置端口
    • 默认 21,可自定义
    • 配置防火墙允许端口访问
  5. 访问 FTP
    • 使用 FileZilla Client 或浏览器访问 ftp://127.0.0.1

2️⃣ Linux 环境

方法 1:安装 vsftpd(最常用)

  1. 安装 vsftpd
# Ubuntu/Debian
sudo apt update
sudo apt install vsftpd

# CentOS/RHEL
sudo yum install vsftpd

  1. 启动并设置开机启动
sudo systemctl start vsftpd
sudo systemctl enable vsftpd

  1. 配置 vsftpd
    编辑 /etc/vsftpd.conf
# 允许本地用户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 设置根目录为用户家目录
chroot_local_user=YES

  1. 重启服务
sudo systemctl restart vsftpd

  1. 访问 FTP
    • 使用本地用户登录:
ftp 127.0.0.1

  • 或用客户端软件(FileZilla、WinSCP)连接

方法 2:使用 Python 快速搭建临时 FTP 服务器

  1. 安装 pyftpdlib
pip install pyftpdlib

  1. 启动临时 FTP 服务器
from pyftpdlib.servers import FTPServer
from pyftpdlib.authorizers import DummyAuthorizer

authorizer = DummyAuthorizer()
authorizer.add_user("user", "12345", "/path/to/ftp", perm="elradfmw")  # 权限:读写删除等
authorizer.add_anonymous("/path/to/ftp")  # 可选匿名访问

from pyftpdlib.handlers import FTPHandler
handler = FTPHandler
handler.authorizer = authorizer

server = FTPServer(("0.0.0.0", 21), handler)
server.serve_forever()

  • 这是 快速测试用,适合临时调试。

3️⃣ 常见注意事项

  1. 防火墙设置
    • Windows 防火墙或 Linux iptables/ufw 需要允许 FTP 端口(默认 21)。
  2. 被动模式配置
    • FTP 数据传输需要被动模式,设置 PASV 范围和外网 IP。
  3. 权限控制
    • 确保共享目录权限安全,避免匿名写入导致安全问题。
  4. 端口冲突
    • FTP 默认 21,如果端口被占用,可修改配置文件端口。

总结:

  • 本地临时测试 → Python pyftpdlib
  • 正式 Windows → IIS FTP / FileZilla Server
  • 正式 Linux → vsftpd(轻量、稳定)