FTP는 일반 서비스와 다릅니다. 이 서비스에는 두 개의 포트가 동시에 열려야 합니다. 한 포트는 명령 채널이고 다른 포트는 데이터 전송 채널입니다. 데이터 전송 채널의 다양한 설정에 따라 활성 모드와 수동 모드로 구분됩니다. 여기에서는 활성 모드의 작업 흐름과 문제 발생 시 해결 방법을 자세히 설명합니다.
액티브 모드 프로세스
명령 채널 구축. 클라이언트는 1024보다 큰 포트를 무작위로 선택하여 서버의 포트 21과 연결을 설정합니다. 연결이 설정되면 클라이언트는 연결을 사용하여 FTP 서비스에서 파일 이름 쿼리, 파일 업로드, 다운로드 등의 명령을 실행할 수 있습니다. 파일 등. 명령은 이 채널을 통해 실행됩니다.
활성 모드를 사용하도록 서버에 알리세요. 포트 21은 명령 실행에만 사용됩니다. 실제로 전송해야 하는 파일의 경우 작업을 위해 다른 포트를 사용해야 합니다. 클라이언트는 파일 전송을 위해 무작위로 다른 포트를 열고 포트 21을 통해 두 가지 정보를 ftp 서버에 알립니다. 클라이언트는 파일 전송에 해당 포트를 사용하고 파일 전송에 활성 모드를 사용합니다.
ftp 서버는 클라이언트에 대한 연결을 적극적으로 설정합니다. FTP 서버가 두 가지 정보를 알고 있으면 포트 20을 통해 클라이언트와의 연결을 적극적으로 설정합니다. 연결이 설정되면 해당 연결을 통해 파일을 전송할 수 있습니다.
활성 모드에서 발생할 수 있는 문제
활성 모드에서는 FTP 서버에 연결할 수 없습니다. 다음과 같은 상황이 발생할 수 있습니다.
서버 포트가 시작되지 않습니다
서버 방화벽
클라이언트가 위치한 LAN에는 NAT 변환이 있습니다. 활성 모드에서 일반적으로 열려 있는 포트는 21(명령 채널)과 20(파일 전송 채널)입니다. 두 포트 모두 필수입니다. 또한 방화벽은 이 두 포트도 허용해야 합니다. 클라이언트 호스트의 경우 텔넷을 통해 이 두 포트가 열려 있는지 테스트할 수 있습니다.
패시브 모드 프로세스
명령 채널 구축. 이 단계는 활성 모드와 동일합니다.
클라이언트가 PASV 링크 요청을 발행합니다. 클라이언트는 명령 채널을 통해 서버에 PASV 패시브 모드 요청을 보내고 서버의 응답을 기다립니다.
서버가 데이터 포트를 시작하고 클라이언트에게 알립니다. 서버가 클라이언트의 PASV 요청을 받으면 데이터 전송을 위한 포트를 시작합니다. 이 포트는 무작위(1024~65535)이거나 지정할 수 있습니다. 그런 다음 명령 채널을 통해 클라이언트에게 알립니다.
클라이언트는 데이터 포트를 시작하고 서버와 연결을 설정합니다. 클라이언트는 서버로부터 정보를 수신하고 서버가 데이터 전송에 사용하는 포트를 알고 있습니다. 이때 클라이언트는 1024보다 큰 포트를 무작위로 열고 이 포트를 통해 서버와 연결을 설정합니다.
더 많은 관련 기술 기사를 보려면 linux 시스템 튜토리얼 칼럼을 방문하세요!
위 내용은 FTP 활성 모드 및 수동 모드 - FTP 서버에 연결할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!