最近,我尝试在一台 Azure 虚拟机上设置 Filezilla 服务器,但似乎无法完全运行。我目前能够建立初始连接,但后续数据连接(例如列出远程目录、文件传输等)总是失败。我尝试遵循各种博客上的建议,例如:
但我仍然得到相同的结果。
Azure 管理器设置
不幸的是我没有足够的声誉来发布配置图片,所以我会尽力描述它们。
对于服务器,我有 2 个用于 ftp 的端点。
- TCP 公网端口:21,私网端口:21
- TCP 公网端口:65100,私网端口:65100
常规服务器设置
为了消除潜在的错误源,我暂时关闭了服务器上的 Windows 防火墙,这样不会影响我在此处看到的结果。
FileZilla PASV 设置
- 使用已检查的自定义端口范围。使用的范围是 65100 - 65100
- 使用以下已检查的 IP,以及来自 Azure 仪表板的公共虚拟 IP (VIP) 地址。
- 未选中不要使用外部 IP 进行本地连接
https://i.stack.imgur.com/ntKeh.jpg
连接尝试日志
Status: Connecting to XXX.XXX.XXX.XXX...
Status: Connection established, waiting for welcome message...
Response: 220-FileZilla Server version 0.9.41 beta
Response: 220-written by Tim Kosse ([email protected])
Response: 220 Please visit http://sourceforge.net/projects/filezilla/
Command: USER x
Response: 331 Password required for x
Command: PASS ********
Response: 230 Logged on
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I
Command: PASV
Response: 227 Entering Passive Mode (XXX,XXX,XXX,43,254,76)
Command: MLSD
Response: 425 Can't open data connection.
Error: Failed to retrieve directory listing
谢谢,
雅比
答案1
简要介绍如何修复此问题。对我有用。
Azure VM - 防火墙
1.1)打开入站端口21
1.2)为被动模式打开几个入站端口 - 例如 1035 到 1040
Azure VM-FileZilla 服务器
2.1) 在设置中 - 将被动端口更改为 1035 至 1040(或您在上面的 1.2 中打开的任何端口)
2.2)对于“外部服务器 IP”选项,使用“从中检索外部 IP 地址”
Azure 控制面板 - 端点
3.1) 打开端口 21 和 1035 至 1040(或上面 1.2 中打开的任何端口)
答案2
经过一番苦思冥想,终于弄清楚了。原来,Azure 已经对使用管理器打开的端口实施了某种探测。删除在那里创建的被动端口并使用 powershell 打开它们,就可以实现这一点。
这是一篇描述该过程的很好的文章:http://social.msdn.microsoft.com/Forums/windowsazure/en-US/8f697f17-72b7-46f7-8c97-398b91190a2f/server-2012-vm-on-azure-passive-ftp-wont-work
答案3
转到 filezilla 的设置。
更改 FTP 设置。
而不是被动模式——选择主动模式并单击确定。
现在尝试一下,它会起作用的。
azure 不允许被动 ftp,这就是这里令人头疼的事情。
答案4
我决定自己做,但遇到了和问题中一样的错误。但后来我在谷歌上搜索了一下(也看到了这个问题),花了几个小时尝试了一些手册,最后我在这里找到了可行的东西!希望它能帮助其他人 http://itq.nl/walkthrough-hosting-ftp-on-iis-7-5-a-windows-azure-vm-2/