1

PASV在服务器中实现该模式FTP,并向客户端发送数据端点的 IP 地址和端口。这很愚蠢,因为 IP 实际上是客户端已经连接的地方,所以有两种选择:

  1. 如何IP 从给定实例中获取公共地址?不是VIP,而是公共的。

  2. 如何 IP从对象中获取用户使用的原始目标地址Socket?考虑中间的路由器和负载平衡器:P

回答这些问题中的任何一个都可以,尽管还有另一种可行的方法……我可以让公共IP地址查DNS一下myapp.cloudapp.net吗?

第四种选择是使用 Azure 管理 API 库……但是,太麻烦了:P。

干杯。

4

2 回答 2

1

不知道你有没有想过这个,但这是我的看法。各个角色实例都位于 Windows Azure 负载平衡器之后,并且不知道原始的向外 IP 地址是什么。此外,没有返回 IP 地址的管理 API 调用 - 获取部署返回 URL 但不返回 IP 地址。我认为唯一的选择是dns查找。

话虽如此:我认为您不能在角色实例中托管被动 ftp 服务器(至少不能优雅地)。您最多可以在您的角色上打开 25 个输入端点(从 5 个开始 - 请参阅我最近关于此更新的博客文章),但配置中涉及手动工作。我不知道您的 ftp 应用程序是否允许您将端口范围限制为这么少的端口。还:

  • 您必须将每个端口定义为其自己的输入端点(这是我提到的手工劳动部分) - 与内部端点不同,输入端点不允许指定端口范围。
  • 您必须指定内部使用的端口号,并且端口号需要是连续的

关于 ftp 的最后一件事:您应该能够毫无问题地托管 sftp 服务器,因为所有流量都来自一个端口。

于 2011-05-28T04:19:08.497 回答
0

我现在正在考虑的破解方法是检索http://www.icanhazip.com/。它并不优雅,并且取决于该服务的可用性,但它可以完成工作。更好的解决方案将不胜感激!

于 2014-04-23T21:31:01.050 回答