vsftpd-linux를 사용하여 Azure Virtual Machine에서 수동 FTP 실행

vsftpd-linux를 사용하여 Azure Virtual Machine에서 수동 FTP 실행

Azure Linux 가상 머신에서 수동 FTP 서버를 실행하는 방법은 무엇입니까?

Azure 방화벽 및 PASV 포트에서 엔드포인트를 구성하는 것만으로는 충분하지 않습니다. 클라이언트가 "수동 모드 시작 중"에서 멈추기 때문입니다.

답변1

현재 전용 서버에서처럼 원활하게 수동 FTP를 실행하는 것은 두 가지 이유 때문에 불가능합니다. 하나는 Azure가 현재 각 서버에 대해 25개의 끝점만 열 수 있도록 허용한다는 것입니다(틀린 경우 정정해 주세요). 다른 하나는 Azure가 사용하는 LAN<->가상 IP 연결입니다. 문제를 하나씩 풀어보겠습니다.

Azure는 현재 외부 가상 IP에서 내부 네트워크 주소( 10.0.0.0/8클래스)로 트래픽을 전달하는 NAT/방화벽/부하 분산 장치를 구현합니다. ifconfig가상 머신에서 실행해 보면 내가 말하는 내용을 찾을 수 있을 것입니다. 하나의 엔드포인트는 SSH용으로 예약되어 있으며 실제로 이를 비활성화하고 싶지 않다고 생각합니다. 따라서 다른 엔드포인트가 포트 21에 예약되어 있으면 23개의 PASV 포트만 사용할 수 있으며(다른 서비스를 호스팅하지 않는 즉시) 동시에 연결할 수 있는 클라이언트 수가 엄격하게 제한됩니다. 일단 이것을 받아들이면 계속합시다.

포트 25003-25006을 하나씩 열었다면 다음 구성을 사용하여 활성화할 수 있습니다.

pasv_enable=YES
pasv_min_port=25003
pasv_max_port=25006

vsftpd다른 FTP 서버는 PASV기본적으로 "포트 AA의 XYWZ에 연결"이라는 명령을 실행합니다. 모든 FTP 서버는 네트워크 주소를 얻기 위해 시스템의 구성을 읽어야 합니다. 이것이 vsftp가 기본적으로 "포트 25003에서 10.XYZ에 연결"이라고 말하고 클라이언트가 중단되는 이유입니다!!!

vsftpd에게 다른 외부 주소를 사용하도록 지시하려면 다음을 사용하세요.

pasv_addr_resolve=YES
pasv_address=dom.cloudapp.net

테스트하고, 작업하고, 커뮤니티와 공유했습니다!

참고: 활성 FTP는 클라이언트가 방화벽이나 만리장성 뒤에 있지 않으면 즉시 작동하며 SFTP는 FTP의 가장 좋은 대안이지만 불행히도 많은 레거시 응용 프로그램은 이를 지원하지 않습니다.

관련 정보