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下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文(注:本站提供中文版本,请点击下载),配置难度可想而知,站长从网上找到一篇非常 ...
随机推荐
- FileReader、 FileWriter、readLine()和newLine()、LineNumberReader(二十一)
1.字符流FileReader * 1.字符流是什么 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. ...
- linux静默安装Oracle 11g
./runInstaller -silent -force -responseFile /home/oracle/software/database/response/orcl_install.rsp ...
- Eclipse中文乱码问题
最近用TortoiseSVN从androiddex上下载了一个android工程,导入之后发现里面的中文都是乱码,于是在Eclipse里通过Windows-Preferences-Workspace修 ...
- 【POJ 2407】 Relatives
[题目链接] 点击打开链接 [算法] 欧拉函数 [代码] #include <algorithm> #include <bitset> #include <cctype& ...
- 行内元素变成会计元素block和inline-block的区别
左边一个ul的导航,习惯了用li里面放a,想要a有个百分百宽和高,这个整个li就都可以有点击事件了,用了inline-block,宽高可以实现,但是发现一个问题,a的左边始终会有个类似于外边距的样式, ...
- Ruby: Print WIN32OLE method names in Ruby
class WIN32OLE def list_ole_methods method_names = ole_methods.collect {|m| m.name} puts m ...
- PYTHON XPath与lxml类库
XPath,我们可以用先将HTML文档转换成XML文档,然后用XPath查找HTML节点或元素. XML文档实例 HTML DOM模型示例 HTML DOM定义了访问和操作HTML文档的标准方法,以树 ...
- POJ 1737 经典DP
问题:求含有n个点的连通图的个数. 解: 考虑DP,$f(n)$表示n个点,每个点都和点1相连,且n个点互相连通的图的个数. (蓝字非常重要,这个条件有效地避免了重复计算) $g(n)$表示n个点,每 ...
- linux以字符为单位进行读写操作
1 所用函数 fgetc(FILE *fp):成功返回所读入的字符 失败为-1 fputc(int c,FILE *fp):第一个参数表示需要输出的字符 第二个参数表示输出的文件.成功返回输出的字符 ...
- python学习笔记5-自定义函数
1 自定义函数 (1)函数代码块以def关键字开头,然后函数标识符名称和圆括号 (2)任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数 (3)函数的第一行语句可以选择性的使用文 ...