FileZilla Server 是一款免费的开源 FTP 和 FTPS 服务器软件,分为服务器版和客户端版。服务器版原本只支持Windows操作系统,比如笔者曾长期使用过0.9.60版,那时候就只支持Windows操作系统。当时我们生产环境对FTP稳定性要求较高,比较多款FTP服务端后选择了Filezilla Server。Windows上还有一款很稳定的FTP服务端叫Serv-U(也支持Linux服务器),但Serv-U是收费软件,使用学习版容易招来律师函,有缘再分享Serv-U这款FTP软件。目前Filezilla官网也提供macOS、Linux(原生支持debian 11,其他发行版本的linxu需手动编译)的Server版本。FileZilla 免费客户端不仅支持 FTP,还支持基于 TLS 的 FTP (FTPS) 和 SFTP。它是根据 GNU 通用公共许可证条款免费分发的开源软件。客户端版还提供 FileZilla Pro版本,为 WebDAV、Amazon S3、Backblaze B2、Dropbox、Microsoft OneDrive、Google Drive、Microsoft Azure Blob 和文件存储以及 Google Cloud Storage 提供额外的协议支持。主要在免费版客户端版的基础上增加了云存储协议的功能,需通过官网或应用商店订阅,提供7天免费试用,之后年费约12.99美元/欧元。(价格需核实,网址我没打开https://filezillapro.com/)。不过对国内用户来说,Pro版本作用不大。Server端免费,加上免费的客户端已经非常香了。说明一下,现在官网还提供FileZilla Server with manual和 FileZilla Pro Enterprise Server两款FTP服务端收费版供选择。
本次分享讲解在Windows的Server安装和免费客户端使用。
Filezilla Server 演示系统环境:Windows Server 2025
Filezilla Client 演示系统环境:Windows 11 24H2
1、下载安装包
官方网址:https://filezilla-project.org
点击Filezill Server菜单下面的Download,默认出来的就是Windows版本的下载按钮。点击Download Filezilla Server图标。
会出来三个版本,Filezilla Server版本免费,这个是我们需要下载的版本。带文档的版本收费,带SFTP和双因子认证功能的版本收费。毕竟咱们只要免费的,这两个收费版本就不考虑了。
2、安装
既然是Windows版的安装软件,那咱们直接双击exe安装文件,开启一路下一步之旅。
2.1、 同意协议
协议只有同意才能安装。这里要说一下,Server端只有英文,需要有一定英文基础,如果英文着实一般,看我的解释也行。
2.2、 选择安装组件
默认是Full(完整)安装,默认就行,咱们安装大而全的。可根据需要选择Server only(仅服务端)、Administration only(仅管理端)、Custom(自定义)。点Next(下一步)。
2.3、 选择安装位置
默认就行,想修改的话自行指定安装位置。点Next(下一步)。
2.4、 选择开始菜单目录
默认就行。点Next(下一步)。
2.5、 选择服务器设置
选择“Install as service,started with Windows (default)”(以服务安装,默认随Windows一起启动)就行。“Install as service,started manually”(以服务安装,手动启动)。我因为服务器上已经安装过,所以默认是“Keep existing service settings”(保持已存在的服务器设置)。
勾选Start server after setup completes(安装完成后启动服务),点Next(下一步)。
2.6、 管理设置
默认对所有用户生效(Start if user logs on,apply to all users(default)),可根据需要选择仅对当前用户生效(Start if user logs on,apply only to current user)、手动启动(start manually)。勾选下面的安装完成后打开管理员界面(Start administration interface after setup completes)。点Install(安装)。
2.7、 生成管理员界面TLS认证指纹
认证指纹是自动生成的,在管理员界面可以查到,没必要记,直接点确定即可。
2.8、 安装完成
点Close关闭安装界面。
3、管理员界面配置
因为我们前面选了安装完成启动服务并打开管理员界面,接下来我们对服务端进行配置。
3.1、 连接服务端
点Connect to Server。
3.2、 连接设置
Host(主机)默认127.0.0.1,Port(端口)不用改,这里的端口不是FTP提供服务的端口,是管理员界面的端口,服务端口和管理员端口不一样是为了更安全。设置管理员密码。下面的保存密码和启动时自动连接服务都勾选上。点击OK。
可以看到管理员界面已经和FTP服务端连接上了。
4、FTP服务端设置
点击Server菜单下的Configure(设置)进入设置页面。对于做好了的设置,我们可以利用导出设置和导入设置做备份和恢复。网络设置向导和测试FTP网络设置可以根据需要使用。我们主要使用Configure(设置)里面的功能进行配置。
4.1、 Server listeners(服务器监听)设置
Address(地址)里的0.0.0.0表示所有的IPv4地址开放,::表示对所有的IPv6地址开放。Port(端口)就是FTP对外提供服务的端口,我这里设置的是2121,大家可以根据需要修改为自己想要提供服务的端口,这里大家还记得管理端的端口和这个对外提供服务的端口两者有什么区别吗?不记得的话翻到开始重新看一遍吧。Protocol(协议)有三个选项:Explicit FTP over TLS and insecure plain FTP(显式FTPS和不安全普通FTP)、Require explicit FTP over TLS(要求强制使用显式FTPS)、Implicit FTP over TLS(deprecated)(隐式FTPS(不推荐))
这里要解释一下FTP over TLS (简称FTPS),是FTP通信上添加SSL(安全套接层)协议来实现加密传输。FTP over SSL有两种模式:Explicit FTP over TLS(显式FTPS)和Implicit FTP over TLS(隐式FTPS)。两种的区别主要如下:
特性 | 显式SSL | 隐式SSL |
端口 | 控制通道:21(默认), 数据通道:动态 | 控制通道:990,数据通道:动态 |
加密触发方式 | 客户端显式发送 AUTH 命令 | 连接建立后自动加密 |
兼容性 | 高(支持明文与加密混合模式) | 低(需客户端支持隐式SSL) |
安全性 | 依赖客户端主动加密 | 全程强制加密 |
典型应用 | 需兼容旧系统的场景 | 高安全性要求的内部网络 |
看完了上面的对比,是不是还是没有明白两者的区别?哈哈,跟我一样。咱们只用记住显式FTPS兼容性更好一点而隐式FTPS安全性更高一点就行。绕了这个大个弯子,我只是想尽量能让大家明白配置里为什么选Explicit FTP over TLS and insecure plain FTP(显式FTPS和不安全普通FTP),只是这个更适合大部分FTP服务端使用场景而已。
这里扩展一下还有一个SFTP概念:基于SSH协议(端口22),全程加密,单端口传输,更易穿透防火墙。前文介绍过,这个功能不是免费的,在Pro版本中提供。
4.2、 Protocols settings(协议设置)
这个设置页里有4个页签,第一个是Autoban(自动封禁)功能。这里有3个输入框,分别是失败多少次、在多少秒内、封禁多少秒。比如第一个框内填10、第二个框内填60、第三个框填300,意思就是如果在60秒内输错密码10次就封禁这个访问IP 五分钟。
第二个页签是Timeouts(超时退出)设置,默认设置是60秒未登入自动退出,60分钟无活动自动退出。
第三个页签是Performance(性能),设置多少线程、数据连接收的缓冲区多大、发的缓冲区多大。这个设置太精细了我就不设置了。
第四个页签是filters(过滤),设置禁止的IP范围和允许的IP范围。
4.2.1、 FTP和FTPS设置
这里有三个页签,第一个页签是Connetction Security(连接安全)。最低允许的TLS版本有1.3和1.2可供选择,1.3安全性更高,这里我选1.3。TLS证书选择自签名的Use a self-signed X.509 certificate 。另外两个选项是Provide a X.509 certificate and private key(提供一个X.509证书和私钥,真没必要diy这些东西)、Use a Let’s encrypt® certificate(使用一个Let’s encrypt®的证书,这场景更没见过了,Let’s encrypt®是一个由非营利组织运营的免费、自动化、开放的证书颁发机构(CA))。
第二个页签欢迎页就不说了。第三个页签Passive Mode(被动模式)。端口范围我使用是默认的49152-65534。
这里提一下FTP的主动模式(Active Mode)和被动模式(Passive Mode)的主要区别在于数据连接的建立方式,这直接影响客户端和服务器在网络环境(如防火墙或NAT)中的兼容性。两种模式的对比:
模式 | 主动模式(Active Mode) | 被动模式(Passive Mode) |
数据连接发起方 | 服务器主动连接客户端 | 客户端主动连接服务器 |
适用场景 | 客户端有公网IP且无防火墙限制 | 客户端位于防火墙/NAT后 |
端口使用 | 服务器使用20端口作为数据端口 | 服务器随机开放高端口(如50000~60000) |
防火墙友好性 | 需要客户端开放端口供服务器连接,易被防火墙拦截 | 客户端主动发起连接,通常更易穿透防火墙 |
两种模式配置对比(主动模式 vs 被动模式)
配置项 | 主动模式 | 被动模式 |
数据连接方向 | 服务器 → 客户端 | 客户端 → 服务器 |
服务器端口 | 控制端口:21,数据端口:20 | 控制端口:21,数据端口:随机高端口 |
防火墙要求 | 客户端需开放数据端口入站 | 服务器需开放高端口范围入站 |
从上面的截图可以看出,勾选了端口范围说明我们默认使用的被动模式,这也是大部分FTP默认使用的模式。
Public IP or hostname:(leave it empty to use the local IP)意思是留空就是使用本地IP,可以填入公网IP或者主机名,Retrieve public IP按钮是获取公网IP(我试了下读取是IPv6地址),勾选的Use local IP for local connections(Recommended)意思是推荐使用本地IP作为本地连接。这里说一下为什么推荐使用本地IP而不是公网IP,是因为如果服务器和客户端同时都有本地IP(比如我的测试服务器本地IP是192.168.68.131)和公网IP,使用本地IP进行FTP肯定会更安全一些。当然,这要结合实际使用场景来定,如果必须使用公网IP来进行FTP文件传输,那就做好安全防护,不然护网的时候肯定让你头疼。
4.3、 Rights management(权限管理)
这是Filezilla Server一个很重要的设置。
测试服务器直接用的管理员连接的,这里默认就用连接的用户进行管理。
4.3.1、 Groups(组管理)
点开组管理,首先弹出一个提醒,让注意设置本地路径,直接关掉吧。
讲一下Groups(组)和Users(用户)。通过“Groups”选项卡来配置用户组的权限,通过“Users”选项卡来配置单个用户的权限,后将用户添加到相应的组中以应用预设的权限规则。这样做的好处是,如果您需要更改一组用户的权限,只需修改该组的权限设置即可,无需单独调整每个用户的权限。拿学校做例子,我们可以为每个班级建立一个组,这个组默认能看到一些目录,这些目录默认设置一些目录的权限。这个班级的每个学生,又可以为每个人因选课的不同而设置不同的目录权限,这样可以做到非常精细化的目录组合管理。每个目录是读+写还是只读还是禁止、子文件夹是否继承父目录权限、目录结构是否可修改、本地目录不存在则创建。Virtual path(虚拟路径)设置为/(根目录),可以为组或者用户设置多个目录权限。Filters(过滤)前面有类似功能,Limits是对上传、下载速度等的设置,大家根据实际需要可以进行限制。
4.3.2、 Users(用户管理)
注意设置本地路径的提示还是直接关掉吧。
默认有个system user(系统用户),描述里有个提示“This user can impersonate any system user.(这个用户可以扮演任何系统用户)。这个用户是Filezilla Server自带的,我测试取消User is enabled(启用用户)的勾选也不影响使用。点Add添加我们需要的ftp用户,这里我设置的是账号是ftpuser。
跟前面说的组一样,我们可以添加多个ftp用户,为ftp用户设置一个或者多个目录,设置所属的组(默认能看到组权限设置可以看的目录),设置或者修改ftp密码,也可以为大家可以根据需要进行配置。
4.3、 Administration(管理员界面)
前面设置过管理员端口,这里可以修改监听端口号,修改管理密码。
但是尝试打开管理页面,点继续访问却点不能继续访问。不知道什么原因,知道原因的朋友可以教教我。
4.4、 Logging(日志管理)
这里是设置日志相关的,想查看FTP日志知道去哪里找日志文件。
4.5、 加密相关
这两个加密相关的,我没有修改。
5、防火墙设置
Filezilla Server 设置好了,接下来我们设置一下防火墙。打开Windows Server服务器的防火墙设置。
是设置入站规则还是出站规则呢?对于FTP服务器来说,只涉及外网访问服务器,不涉及服务器访问外网,所以是在防火墙的入站规则里打开端口,不修改出站规则。出站就是你访问别人,入站就是别人要访问你,创建入站和出站规则,从而阻挡或者允许特定程序或者端口进行连接。前文也讲过,Filezilla Server默认是被动模式,因此我们是要设置入站规则。
为端口2121和被动模式端口范围(49152-65534)新建入站放行规则。
到此,就完成了Filezilla Server的配置和防火墙的设置。
6、访问FTP
可以使用网页、资源管理器访问ftp://ip:port来访问FTP服务器
也可以是Filezilla Client或者其他的FTP连接客户端访问。Filezilla客户端是中文的,很方便使用。
今天的Filezilla Server设置就介绍到这里。