问题描述
|
我正在
FTP
服务器中实现PASV
模式,然后将数据端点的IP地址和端口发送给客户端。这很愚蠢,因为IP实际上是客户端已经在连接的位置,因此有两个选择:
我怎么能得到公众IP
给定实例的地址?不
VIP
,但公开的。
我如何获得最初的目标
用户使用的“ 2”地址
Socket
物体?在中间考虑路由器和负载均衡器:P
尽管还有另一种可行的方法,但是可以回答任何一个问题……我可以让doing2ѭ公众地址在对myapp.cloudapp.net
进行DNS
查找吗?
第四个选择是使用Azure管理API库...但是,麻烦太多了:P。
干杯。
解决方法
不知道您是否曾经想过,但这是我的看法。各个角色实例都位于Windows Azure负载平衡器的后面,并且不知道原始的向外IP地址是什么。此外,没有管理API调用返回IP地址-获取部署返回URL,但不返回IP地址。我认为唯一的选择将是DNS查找。
话虽这么说:我不认为您可以在角色实例中托管被动ftp服务器(至少不是很优雅)。您可以在角色上最多打开25个输入终结点(从5个开始-请参阅我最近关于此更新的博客文章),但是配置中涉及手动工作。我不知道您的ftp应用程序是否允许您将端口范围限制为如此少的端口。也:
您必须将每个端口定义为自己的输入端点(这是我提到的人工部分)-与内部端点不同,输入端点不允许指定端口范围。
您必须指定内部使用的端口号,并且端口号必须是连续的
ftp的最后一件事:由于所有流量都来自一个端口,因此您应该能够毫无问题地托管sftp服务器。
, 我现在正在考虑的黑客方法是检索http://www.icanhazip.com/。它并不优雅,要视该服务的可用性而定,但它可以完成工作。更好的解决方案将不胜感激!