易君召
易君召
发布于 2026-10-26 / 2 阅读
0

FTP 服务器基本配置总流程

FTP 默认控制端口 21;主动模式数据端口 20;被动模式是外网 / 防火墙环境首选(推荐) ⚠️ 原生 FTP 明文传输,生产优先用 FTPS(SFTP)

通用 7 大步骤

  1. 安装 FTP 服务软件

    • Linux:vsftpd(最常用、安全)、pure-ftpd、proftpd

    • Windows:IIS 自带 FTP、FileZilla Server、Serv-U

  2. 准备共享目录 + 设置文件权限 创建存放文件的目录,分配读写权限,权限不要 777。

  3. 创建访问账号

    • 匿名用户(anonymous,只读为主,不安全,公网尽量关闭)

    • 系统本地用户 / 虚拟用户(推荐,独立账号)

  4. 修改主配置文件 开启 / 关闭匿名、本地用户登录、上传写入、用户禁锢 (chroot)、被动模式端口范围、日志、umask 权限掩码。

  5. 防火墙 / 安全组放行端口

    • 控制端口:21

    • 被动模式:自定义一段端口(例如 40000-40500)一并放行

  6. 启动服务 + 设置开机自启 修改配置后重启服务生效

  7. 客户端测试连接 工具:FileZilla、WinSCP、浏览器、资源管理器;格式 ftp://IP:端口

一、Linux vsftpd 最简配置(CentOS/RHEL)

  1. 安装

yum install -y vsftpd
systemctl enable --now vsftpd

Ubuntu/Debian:

apt update && apt install vsftpd
systemctl enable --now vsftpd
  1. 创建 FTP 用户和目录

useradd ftpuser
passwd ftpuser
mkdir -p /var/ftp/share
chown ftpuser:ftpuser /var/ftp/share
  1. 编辑配置文件 /etc/vsftpd/vsftpd.conf

anonymous_enable=NO          # 关闭匿名(安全)
local_enable=YES             # 允许本地用户登录
write_enable=YES             # 允许上传写入
local_umask=022
chroot_local_user=YES        # 锁定用户在自家目录,不能跳出
allow_writeable_chroot=YES
# 被动模式(必配,外网访问)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40500
pasv_address=你的服务器公网IP
xferlog_enable=YES
connect_from_port_20=YES
  1. 防火墙放行(firewalld)

firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=40000-40500/tcp --permanent
firewall-cmd --reload
  1. 重启服务

systemctl restart vsftpd
  1. 测试:FileZilla,协议 FTP,主机 IP,端口 21,用户名 ftpuser、密码

补充:云服务器额外去控制台安全组放行 21 + 被动端口段

二、Windows IIS FTP 配置

  1. 安装 IIS FTP:控制面板 → 启用或关闭 Windows 功能 → 勾选 IIS + FTP 服务器

  2. 打开 IIS 管理器 → 右键【网站】→【添加 FTP 站点】

  3. 站点名称 + 物理路径(共享文件夹)

  4. 绑定:IP、端口默认 21;SSL:测试选【无 SSL】(生产选 SSL 开启 FTPS)

  5. 身份验证:勾选基本(匿名按需开启);授权:指定 Windows 用户,权限勾选【读取 / 写入】

  6. Windows 防火墙放行 21 端口、被动端口范围

  7. 测试访问 ftp://服务器IP

三、主动模式 vs 被动模式(重点踩坑点)

  • 主动 PORT:服务器 20 端口主动连客户端;内网 / NAT、家用宽带、防火墙经常不通

  • 被动 PASV:客户端连接服务器的随机高端口;绝大多数场景推荐被动模式

四、安全建议

  1. 公网不要开匿名 FTP

  2. 尽量改用 FTPS(FTP over TLS) 或者 SFTP(SSH 文件传输,端口 22),避免明文账号密码

  3. 不要给目录 777 权限,最小权限原则

  4. 单独虚拟用户,不要直接使用 root、管理员账号登录 FTP

  5. 修改默认 21 端口(可选),降低扫描攻击

五、常见故障

  • 能登录、列表失败、上传超时:被动端口没放行

  • 500 OOPS: chroot:老版本 vsftpd 需要 allow_writeable_chroot=YES

  • 550 Permission denied:目录属主 / 权限不对、write_enable 没开

  • 云服务器连不上:安全组没放端口,不是只开系统防火墙


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/ftp-server-basic-configuration-workflow

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/