2011-03-16 5 views
1

FTP 서버에 PASV 모드를 구현 중이며 클라이언트에 데이터 끝점의 IP 주소와 포트를 보냅니다. 이것은 IP 클라이언트가 이미 연결되는 경우 실제로 때문에 바보, 그래서 두 가지 옵션이 분노 :배포 된 응용 프로그램에서 Azure 공용 IP 주소를 얻으십시오.

    나는 주어진 인스턴스에서 공용 IP 주소를 얻을 수있는 방법
  1. ? 아니 VIP하지만 공개 하나.

  2. 나는 원래 목표를 사용자가 Socket 객체에서 사용 IP 주소를 얻을 수 있습니까? 중간에 라우터 및로드 밸런서를 고려 : P

할 것이 질문의 대한 답변을, 일할 수있는 또 다른 방법이 있지만 ... 나는 DNS가 볼 일을 대중 IP 주소를 얻을 수 있습니다 myapp.cloudapp.net?

네 번째 옵션은 Azure 관리 API 라이브러리를 사용하지만 너무 많은 문제가 발생합니다. P.

건배.

답변

1

당신이 이것을 알아 냈는지 확실하지는 않지만 여기에 관해서는 알고 싶습니다. 개별 역할 인스턴스는 모두 Windows Azure 부하 분산 장치 뒤에 있으며 원래의 바깥 쪽 IP 주소가 무엇인지 알지 못합니다. 또한 IP 주소를 반환하는 관리 API 호출이 없습니다. Get Deployment는 IP 주소가 아닌 URL을 반환합니다. 나는 유일한 옵션이 DNS 조회가 될 것이라고 생각한다.

다음과 같이 말합니다 : 저는 여러분이 여러분의 역할 인스턴스에서 수동 FTP 서버를 호스팅 할 수 있다고 생각하지 않습니다 (적어도 우아하지는 않습니다). 역할에 최대 25 개의 입력 엔드 포인트를 열 수 있습니다 (최대 5 개 - 이번 업데이트에 대한 최근 blog post 참조). 그러나 수동 작업이 구성에 포함됩니다. 귀하의 ftp 응용 프로그램이 귀하의 포트 범위를 이렇게 적은 수의 포트로 제한 할 수 있는지 여부는 잘 모르겠습니다. 또한 :

  • 당신은 자신의 입력 엔드 포인트로 각 포트 (이 내가 언급 한 육체 노동의 일부)를 정의해야 할 것 - 입력 엔드 포인트는 내부 엔드 포인트와는 달리, 포트 범위의 지정을 허용하지 않습니다.
  • 당신은 내부적으로 사용되는 포트 번호를 지정해야 할 것, 그리고 포트 번호는 순차적해야

FTP에 마지막으로 한가지 : 당신은 더와 함께 SFTP 서버를 호스트 할 수 있어야합니다 문제는 모든 트래픽이 하나의 포트를 통해 발생하기 때문입니다.

+0

안녕하세요. 글쎄, 기본적으로 ... 필자는 외부 서버를 사용하여 공용 IP 주소를 반환 할 것입니다. 즉, Filezilla 서버가하는 일입니다. 그리고 나는 퍼시픽 FTP 서버의 첫 번째 버전을 사용하고 있습니다. 유일한 문제는 동일한 IP 주소에서 4 개의 동시 연결 만 지원한다는 것입니다.하지만 괜찮을 것 같습니다. 건배. – vtortola

+0

나는 코드를 곧 codeplex에 넣을 것이다. – vtortola

0

내가 지금 염두에두고있는 해킹은 http://www.icanhazip.com/을 검색하는 것입니다. 그것은 우아하지 않고 그 서비스의 가용성에 달려 있습니다. 그러나 그것은 일을 끝내게됩니다. 더 나은 해결책이 인정 될 것입니다!

관련 문제