2011-03-16 129 views
1

我在FTP服务器中实现PASV模式,并向客户端发送数据端点的IP地址和端口。这是愚蠢的,因为IP实际上是在客户端已连接,所以IRE两种选择:从部署的应用程序获取Azure公共IP地址

  1. 我怎么能得到一个给定的实例公众IP 地址?不是 的VIP,但公众之一。

  2. 我怎么能得到原始目标用户从 一个Socket对象使用 IP地址?考虑到路由器和负载平衡器在中间:P

的答案,任何的这种问题会怎么做,虽然可以工作的另一种方式。我可能会得到公众IP地址做DNS查找myapp.cloudapp.net

第四种选择是使用Azure Management API库......但是太麻烦了:P。

干杯。

回答

1

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

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

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

上的ftp最后一两件事:你应该能够举办SFTP服务器没有麻烦,因为所有的流量都来自一个端口。

+0

嗨。那么,基本上......我将使用外部服务器来返回公共IP地址,这就是Filezilla服务器所做的。我有我的pasive FTP服务器的第一个版本工作嘿嘿。唯一的问题是,它只支持来自同一IP地址的4个并发连接,但我认为它会好的!干杯。 – vtortola 2011-05-30 09:01:02

+0

我很快就会把我的代码放在codeplex中 – vtortola 2011-05-30 09:09:51

0

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