FileZilla Server 端设置passive模式注意事项
1,需求和问题的产生
实践中需要分布在各地的各个客户端向云端服务器上传文件,因此在阿里云服务器上安装了FileZilla Server软件作为文件FTP服务端。
客户端程序采用FTP方式向服务端传输文件。由于客户端为局域网地址,服务端无法主动访问客户端,因此需要设置服务端为被动模式。

但实践发现,客户端程序可以连接上服务端,但无法向服务端正常传输文件,服务端生成的文件大小为0。而服务端则出现“425 Can't open data connection for transfer”错误。

2,问题分析
首先怀疑是客户端程序写得有问题。于是,在客户端电脑上安装FlashFXP和WinSCP软件,用这两种软件作为FTP客户端连接FileZilla Server,测试结果表明文件传输正常。
因此怀疑客户端程序有问题。但客户端程序先后更换了INDY、ICS、CIS等多种FTP客户端组件,其结果均不正常。
由于客户端采用FlashFXP和WinSCP能正常传输文件,因此显然与防火墙设置无关了,况且为简化情况已将服务端和客户端的防火墙全部禁用,360杀毒和安全卫士也关闭。
因此又怀疑是FileZilla Server设置问题,但网上查了很多资料,均不得要领。
某次打开“Passive mode settings”发现,最下方有个网址可以帮助检查问题。

于是在客户端电脑上点击进去,访问https://ftptest.net/
结果如下:

显然是网络配置有问题的,而且解决方案也很明确,就是第2条,必须让“the server knows its external IP address”。这就很明确了,服务端应该配置明确的外网地址!
3,问题解决
于是在“Passive mode settings”选项中,设置明确的外网地址如下:

再次访问https://ftptest.net/测试,hula!测试通过!

客户端软件上传文件试试,也OK了!

至此,内网向阿里云服务器FTP上传文件的问题得到解决。
4,总结
至此还有一个疑惑未解,就是为什么服务端“Passive mode settings”选项中,未设置明确的外网地址时,FlashFXP和WinSCP软件也能正常使用呢?
其实分析FlashFXP的日志不难发现,在FileZilla Server的被动模式下未设置明确的外网地址时,其得到的服务器地址确实是阿里云服务器的内网地址(172,18,134,181),但软件足够聪明,下一步打开数据连接时将IP地址自动转换为了外网地址(120.25.204.13),因此能连接成功。如下图:

但普通的FTP客户端软件缺少这一转换,直接使用服务器返回的内网地址去建立数据连接,显然只能失败。如下图:

当FileZilla Server的被动模式下设置了明确的外网地址时,客户端得到的是服务器的外网地址,因此数据连接能够成功。如下图:

总之,为了确保被动模式下FTP连接不出现“425 Can't open data connection for transfer”错误,应在服务端“Passive mode settings”选项中,设置明确的外网地址。
FileZilla Server 端设置passive模式注意事项的更多相关文章
- [备忘]Windows Server 2008 R2部署FTP FileZilla Server防火墙设置
有一台服务器,之前文件迁移少,现准备用FileZilla Server当FTP服务器,服务器系统是Windows Server 2008 R2,同样适用FileZilla Client连接服务器FTP ...
- filezilla server配置为 passive mode
首先要配置filezilla的setting里面的Passive mode setting选项 (2)关键部分,打开win8.1下的防火墙,新建入站规则 注意,要打开80,443端口.已经passiv ...
- 防火墙内设置FileZilla Server注意事项
开启了Windows下的防火墙,如何设置FileZilla Server 相关选项,能在服务器端只开启21,23端口就可以正常连接使用 方法/步骤 1. 开启windows防火墙,同时 ...
- FileZilla Server ftp 服务器下通过alias别名设置虚拟目录(多个分区)
最近检查服务器的时候发现磁盘空间不够用了,正好有两个硬盘正好,一个硬盘还空着,正好通过ftp服务器的别名功能实现添加空间了,这样就不用重新弄机器了 说明:FileZilla Server 的虚拟目录设 ...
- FileZilla Server下通过别名设置虚拟目录
说明:FileZilla Server 的虚拟目录设置与其它 FTP 服务器软件有所不同.在 FileZilla Server 中设置虚拟目录,必须采用 FTP 根目录 + 虚拟目录名的形式来进行.比 ...
- FTP服务器FileZilla Server配置及使用方法
FileZilla Server下载安装完成后,安装过程不写说明了,网上一抓一大把,直接从配置开始记录. 1.创建服务器 ² Password:栏位中输入本服务器Filezilla服务的密码, ² ...
- 免费ftp服务器FileZilla Server配置
FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文,配置难度可想而知,小编从网上找到一篇非常详细的教程进行整理了一番,确保读到这 ...
- FileZilla Server超详细配置
FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文(注:本站提供中文版本,请点击下载),配置难度可想而知,站长从网上找到一篇非常 ...
- [转] FileZilla Server超详细配置
FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文(注:本站提供中文版本,请点击下载),配置难度可想而知,站长从网上找到一篇非常 ...
随机推荐
- Quartz2D绘图 及实例:下载进度
基础绘图: C语言coregraphics框架 绘制一条线:(不常用) UIBezierPath 路径画图 1.线段 线段2: 2.三角形 填充颜色 如果边框颜色和填充颜色都为红色:[[UICol ...
- MDZX——张能传
「你们到底要干什么?!」——8012年7月13日 张能于MDZX ———————————— 序章 ———————————— 话说天下大势,分久必合,合久必分. 他肩扛99米大砍刀,站在MDZX大门对面 ...
- 「HNSDFZ暑期集训 测试1」「LuoguT36485」 括号(贪心
Description 给定一个由左括号'('和右括号')'组成的字符串s,其中第i个括号的权值为ai. 我们定义一个括号序列t为合法括号序列,当且仅当满足下列条件之一: 1.t为空串 2.t=(A) ...
- node --save可以省略掉手动修改package.json的步骤
当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里 ...
- VS2008 视图资源.rc无法加载的问题及解决方法
VS2008 视图资源.rc无法加载 1.首先先把vs关闭,然后执行 开始>>所有程序>>Mircosoft visual studio 2008>>visual ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 21. Model 验证 Again
深入的将Model验证 手动添加验证的错误 view里面显示每个属性的验证错误信息 显示整个model级别错误 自定义验证 如果业务逻辑需要比较复杂的验证.而且这个验证逻辑可能到处复用的话就应该考虑使 ...
- HDU 1713 相遇周期 (最小公倍数)
题意:... 析:求周期就是这两个分数的最小公倍数,可以先通分,再计算分子的最小倍数. 代码如下: #pragma comment(linker, "/STACK:1024000000,10 ...
- 你真的懂了redis的数据结构吗?redis内部数据结构和外部数据结构揭秘
原文链接:https://mp.weixin.qq.com/s/hKpAxPE-9HJgV6GEdV4WoA Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有 ...
- Vue 基础指令学习
学习Vue的一些总结,第一次写博客,文笔实在是很差 不过我会不断写的. <template> <!--只能有一个根节点 --> <div> <pre> ...
- python 导入.py
转自: https://blog.csdn.net/winycg/article/details/78512300 在同一个文件夹下调用函数:A.py文件: def add(x,y): print(' ...