我在PASV
服务器中实现FTP
模式,然后向客户端发送数据端点的IP地址和端口。这是愚蠢的,因为IP实际上是客户端已经连接的地方,所以有两个选项:
我怎样才能获得公众IP
来自给定实例的地址?不
VIP
,但是公众。
我怎样才能获得原始目标
用户使用的IP
地址
一个Socket
对象?考虑中间的路由器和负载平衡器:P
对这些问题的回答都可以,但有另一种方式可行吗?我可以通过公共IP
地址查看DNS
查询myapp.cloudapp.net
?
第四个选项是使用Azure Management API库...但是,太麻烦了:P。
干杯。
答案 0 :(得分:1)
不确定你是否想过这个,但这是我的看法。各个角色实例都在Windows Azure负载均衡器之后,并且不知道原始的,向外的IP地址是什么。此外,没有返回IP地址的Management API调用 - Get Deployment返回URL但不返回IP地址。我认为唯一的选择是进行dns查找。
话虽如此:我认为你不能在你的角色实例中托管被动的ftp服务器(至少不是优雅的)。您可以在您的角色上打开最多25个输入端点(从5开始 - 请参阅我最近关于此更新的blog post),但配置中涉及手动工作。我不知道您的ftp应用程序是否允许您将端口范围限制为如此少量的端口。也:
ftp上的最后一件事:你应该能够毫无问题地托管sftp服务器,因为所有流量都来自一个端口。
答案 1 :(得分:0)
我正在考虑的黑客攻击是http://www.icanhazip.com/。它不优雅,取决于该服务的可用性,但它完成了工作。一个更好的解决方案将不胜感激!