모두 안녕하십니까,
MS Azure에서 호스팅되는 WIN 2012 R2 서버에서 FileZilla FTP 서버 (수동 모드)를 호스팅하고 있습니다.
FTP 전송은 일반적으로 잘 작동합니다. 여러 FTP 업로드 및 검색이 매일 실행되고 있습니다.
수동 모드를 허용하기 위해 Azure Portal / 측면에서 상대적으로 넓은 범위의 포트 (엔드 포인트)를 열었습니다.
산발적으로 (평균 2 일에 한 번) 다음과 같은 FTP 전송 문제가 나타납니다.
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file1
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file2
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file3
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071050
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> CWD dev_updates/Infrastructure/folder
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 250 CWD successful. "dev_updates/Infrastructure/folder" is current directory.
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> PASV
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 227 Entering Passive Mode (104,40,Y,X,234,235)
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 426 Connection closed; aborted transfer of ""
8/8/2016 9:10:01 AM - USER_FILEZILLA (62.154.Y.X)> disconnected.
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> Connected on port 21, sending welcome message...
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-FileZilla Server 0.9.57 beta
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220 Please visit https://filezilla-project.org/
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> USER USER_FILEZILLA
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 331 Password required for
언급 한 바와 같이, 매일 (자동화 된) 여러 번의 FTP 전송이 이루어지며 FileZilla FTP 서버에 할당 된 140 개 이상의 포트 범위를 스윕합니다 (패시브 모드에서 작동).
Azure에서 호스팅되는 VM에서 실행되는 Wireshark 캡처가 있습니다. Wireshark 캡처에서 "426 connection closed"이벤트가 실제로 Azure의 VM에서 제공 한 RST와 일치하고 PASV 명령을 실행 한 클라이언트 (예 : 위의 예에서 FTP 서버가 포트가있는 클라이언트 PASV 명령 : 234,235-> 60139; 클라이언트가 전송을 시작하기 위해 포트 60139로 데이터 채널을 열려고 시도합니다.-> FTP 서버가 RST를 발행하여 (Wireshark 캡처에 따라 MS 내에서) 즉시 응답합니다. 클라이언트에게).
FTP 서버 쪽의 임시 포트 할당 문제에 대해 생각했습니다.-> 허용 된 동적 OS 임시 포트 범위를 FTP 수동 포트 범위와 겹치지 않도록 줄였습니다.
netsh int ipv4 set dynamicport tcp start=49152 num=10000
또한 명령을 통해 포트 범위 예약을 netsh 스택에 명시 적으로 추가했습니다.
netsh int ip add excludeportrange protocol=tcp startport=60000 numberofports=141 store=persistent
그래도 문제는 여전히 가끔 발생합니다.
이 웹 사이트와 MS Azure technet 세션에서 Azure가 엔드 포인트 상태를 모니터링하는 방법 (LB 세트의 일부인 경우)에 대한 광범위한 기술 토론을 읽었지만 FTP 수동 전송 (검색 및 업로드)으로 적용 할 수없는 경우 예약 된 FTP 수동 포트 범위 내의 임의 포트에서 일반적으로 정상적으로 작동합니다.
필요한 경우 추가 세부 정보를 제공 할 수 있습니다. 그 동안 서버 및 클라이언트 측의 문제 해결 / 조사에 대한 추가 제안에 감사드립니다 (문제가 네트워크 또는 네트워크 구성과 관련이 없는지 확인).
또한 가능한 서버 측 소켓 가용성 문제에 대해 winsock을 디버그하는 방법에 대한 추가 문제 해결 / 조사 제안 / 팁을 요청하고 싶습니다.
426
낙태 오류가 항상 다른 세션 뒤에서 몇 초 후에 550
권한 거부 오류가 발생 한다는 것을 알았습니다 . 나는 이것이 FileZilla의 버그라고 생각하지만 픽스는 550을 방지하는 것이 었습니다 (우리의 경우 테스트 시스템이 테스트 폴더에 액세스하려고하지만 프로덕션 자격 증명을 사용하려고했기 때문에 해당 시스템의 자격 증명을 수정해야했습니다) .