FTP服务器连不上,十有八九是防火墙没放行被动模式端口范围,最直接的解决方法是同时开放控制端口21和一段被动端口(如30000-40000),并正确设置服务器软件和防火墙规则。
FTP服务器的主动模式与被动模式到底有什么区别
很多站长在配置FTP防火墙时习惯性参考老教程,结果新版防火墙工具里连主动模式的勾选入口都找不到,这是因为主动和被动两种模式的连接逻辑完全不同,你必须先懂得区别,才能理解下面每一行防火墙规则。
主动模式(Active Mode)的历史比被动模式更久,由FTP客户端发起控制连接,但数据连接由服务器主动向客户端的随机端口发起,这就带来一个很要命的问题:客户端如果在内网NAT后面,服务器根本无法主动连接到客户端的随机端口,连接就会卡死。
被动模式(Passive Mode)则完全相反,客户端先连上服务器的21端口,服务器回应一个端口范围(例如30000-40000),客户端再去连接这个范围内的数据端口,这种模式对内网穿透极其友好,当前主流云服务器和建站环境都在使用。
行业共识认为,如果你在公司内网搭建FTP服务器,或者服务器位于简米云、酷番云、华为云等国内主流云平台,被动模式几乎成为必选项,因此在配置防火墙时,常见误区就是只放行21端口,结果数据通道全部被拦截。
ftp服务器防火墙设置方法之核心:三步走配置流程
无论你使用Windows自带的IIS FTP、Serv-U、FileZilla Server还是vsftpd,防火墙配置的思路都遵循同样三步流程。
第一步:确认FTP服务器软件的被动端口范围
不统一端口范围,防火墙规则就没有依据,以不同软件为例:
- FileZilla Server:在菜单“编辑-设置-被动模式设置”中,勾选“使用自定义端口范围”,例如填写30000-40000,一个较大比例的专业服务器会设置2000-3000个端口。
- Serv-U:在“限制和设置-Socket选项”中,直接用逗号或短划线输入端口范围,例如30000-40000。
- vsftpd(Linux环境):修改
/etc/vsftpd/vsftpd.conf,在文件末尾加入以下两行:
pasv_min_port=30000
pasv_max_port=40000
然后执行systemctl restart vsftpd使配置生效。
小提示:设置范围时不要随意选区间,建议避开10000以下端口,防止与系统动态端口冲突。
第二步:为防火墙同时放行21端口和被动端口段
这一步是整套设置的核心。
21端口负责控制指令传输,被动端口段负责文件数据流转,两者缺一不可。
Windows防火墙操作路径(Windows Server 2012/2016/2019/2026通用):
- 点击“服务器管理器-工具-高级安全Windows防火墙”。
- 点击左侧“入站规则”,再点击右侧“新建规则”。
- 规则类型选择“端口”,点击下一步。
- 协议选择TCP,特定本地端口填写
21,30000-40000,这是最关键的步骤。 - 操作选择“允许连接”,配置文件全选域、专用、公用。
- 规则名称填写
FTP服务端口放行,点击完成。
Linux防火墙常用命令(以CentOS/Firewalld为例):
# 放行21端口 firewall-cmd --permanent --add-port=21/tcp # 放行整段被动端口 firewall-cmd --permanent --add-port=30000-40000/tcp # 重新加载防火墙配置使其生效 firewall-cmd --reload
如果你使用的是Ubuntu的UFW,命令对应为:
sudo ufw allow 21/tcp sudo ufw allow 30000:40000/tcp sudo ufw reload
第三步:验证防火墙规则是否生效
任何防火墙改动都需要经过实际验证,推荐使用以下两种方式:
- 本机验证:在FTP服务器同一台机器上执行
ftp 127.0.0.1,如果能登录说明FTP服务本身工作正常。 - 外网验证:从外部网络(手机4G/5G热点)使用FileZilla连接服务器,建立连接后观察消息日志,如果出现“数据连接开启中”或“服务器发回了不可路由的地址”等提示,通常说明被动端口放行不到位,听不见数据通道的回应。
Windows系统FTP防火墙设置中关键的IIS配置细节
许多用户使用Windows自带的IIS搭建FTP,此时除了防火墙之外,IIS本身的FTP防火墙支持设置同样不可绕过。
IIS默认对被动端口范围不加限制,会随机取用系统动态端口,这时确实增加了防火墙配置难度,在IIS管理器中,点击FTP站点名称,找到“FTP防火墙支持”图标,双击进入后填写数据通道端口范围,例如30000-40000,同时将外部IP地址(即服务器公网IP)填入对应栏位。
如果你忘记配置这个选项,就会出现这样的奇怪场景:防火墙已经放行了30000-40000端口,但FileZilla依然卡在列目录的步骤,排查思路很清晰IIS没有告诉客户端去连接哪个端口段,客户端只能尝试连接系统随机动态端口。
完成这个配置后务务必重启FTP站点,操作路径:在“操作”面板中找到“重新启动”,点击后等待片刻再测试。
云服务器安全组与本地防火墙双重的配合策略
云环境下的防火墙设置有个特殊之处:需要同时操作云平台的安全组和服务器本机的防火墙,这确实是多数用户被卡住的地方。
主流云平台(简米云、酷番云、华为云)的服务器都存在两层防护逻辑:
- 安全组工作在网络层,生效优先级在服务器系统防火墙之前。
- 系统防火墙工作在操作系统层内,两者需要同时放行。
以简米云为例,在控制台找到云服务器ECS实例,点击“安全组-配置规则-添加入方向规则”,需要添加两条规则:
| 规则类型 | 端口范围 | 授权对象 | 说明 |
|---|---|---|---|
| 自定义TCP | 21/21 | 0.0.0/0 | FTP控制端口 |
| 自定义TCP | 30000/40000 | 0.0.0/0 | FTP被动数据端口 |
酷番云和华为云的操作路径类似,差异仅在于控制台界面的名称有细微差别,核心规则完全相同,酷番云称为“安全组”,华为云称为“安全组”,均支持一次添加多条规则。
值得注意的是,安全组和系统防火墙的放行端口需要保持一致,不然就会白白浪费大量排查时间,举个例子,安全组放行21和30000-40000,但系统防火墙只放行21端口,数据端口在系统层被拦截,FTP仍然无法传输文件。
如果服务器有多个网卡,还需在FTP软件中绑定正确的内网IP,避免数据通道走了错误的网卡。
FTP服务器防火墙设置不生效时如何排查疑难杂症
很多时候你按照教程配置完毕却依然连不上,问题往往出在以下几个容易被忽略的环节:
FTP软件绑定的IP地址与服务器实际IP不一致。这种情况常见于服务器有多块网卡,或者使用NAT转发的小型服务器,解决办法是在FTP软件中手动指定监听地址为服务器内网IP,不要使用默认的“所有地址”。
被动模式返回了内网地址。如果FTP服务器位于NAT设备后面,客户端收到的数据地址可能是168.x.x这样的内网IP,客户端无法访问内网地址,就出现了“服务器发回了不可路由的地址”错误,解决方法是设置FTP软件的外部IP地址参数,FileZilla Server中位于被动模式设置里的“使用以下IP地址”栏位,填入服务器公网IP地址。
云平台的安全组忘记添加端口。尤其是使用安全组默认规则“放行全部ICMP”或“放行22端口”的用户,经常以为服务器防火墙已经打开了,却忽略了安全组对FTP端口的限制。
端口范围过小引发并发不够。每个FTP数据传输会话会占用一个被动端口,如果业务并发连接数较多,端口范围设置为100个端口可能不够用,多数情况下推荐设置2000个端口,例如40000-42000,既不影响系统动态端口,也不会因为端口耗尽导致连接超时。
第三方安全软件干扰。国内服务器安装了安全狗、云锁等防护软件时,即使系统防火墙放行也没用,需要在这些软件的“端口白名单”中也加入21和被动端口段。
FTP服务器防火墙配置后如何测试连接是否全部通畅
测试不能只看能否登录成功,还要验证能否真的列出目录和传输文件,推荐使用FileZilla客户端进行细致验证,连接后在日志栏中敲入以下命令验证被动模式:
PASV
如果服务器返回一段227 Entering Passive Mode (a,b,c,d,p1,p2),说明被动模式已正常返回,计算端口时取p1256+p2,该端口必须在30000-40000之间,然后检查这个端口是否能够连通。
测试上传下载大文件也很关键,创建一个几百MB的测试文件尝试上传,如果能顺利完成,说明防火墙配置基本正确,如果上传到一半卡住不动,大概率是数据端口连接超时导致。
对于公司内部的FTP服务器安全设置,部分企业网络还会限制对外访问的端口数量,此时需要联系网管确认出站规则是否有类似限制。
常见问题解答
ftp服务器防火墙设置了被动端口还是连不上怎么办
先检查三处配置是否统一:FTP软件设定的被动端口范围、系统防火墙放行规则、云平台安全组规则,再检查FTP软件的返回IP地址是否为公网IP,内网IP会导致客户端无法连接数据端口,最后在客户端启用被动传输模式,并关闭客户端的主动模式开关。
公司内网搭建ftp服务器防火墙安全设置有什么特殊注意事项
内网环境通常不需要设置公网安全组,但系统防火墙需同时放行21端口和被动端口段,如果公司使用域控环境,还需在防火墙“高级设置”中确认配置文件类型为域配置文件,此外给FTP服务器配置固定内网IP,避免DHCP分配变化导致客户端访问失效。
云服务器FTP被动模式端口范围如何设置才合理
被动端口范围建议设置为30000-40000,共10000个端口,这个范围同时兼顾了并发需求和安全性,如果担心被扫描,也可使用40000-50000,记住设置完成后要同时更新安全组和系统防火墙两处规则,缺一不可。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/575242.html




