액티브 FTP와 패시브 FTP의 차이점이 무엇인지 말해 줄 수 있는 사람이 있습니까? 어느 것이 더 좋습니까?
능동 모드와 수동 모드는 FTP를 실행할 수 있는 두 가지 모드입니다.
백그라운드로 FTP는 실제로 클라이언트와 서버 간에 2개의 채널, 명령과 데이터 채널을 사용합니다. 이 채널은 실제로 별도의 TCP 연결입니다.
명령 채널은 명령 및 응답용이고 데이터 채널은 실제로 파일을 전송하기 위한 것입니다.
명령 정보와 데이터를 별도의 채널로 분리하면 현재 데이터 전송이 완료될 때까지 기다리지 않고도 서버에 명령을 전송할 수 있습니다. RFC에 따르면, 이것은 종료, 현재 전송 중단, 상태 확인과 같은 명령의 하위 집합에만 필요합니다.
active 모드에서 클라이언트는 명령 채널을 설정하지만 server는 데이터 채널을 설정합니다. 예를 들어 클라이언트 시스템이 방화벽으로 보호되고 외부 당사자의 무단 세션 요청을 허용하지 않는 경우 실제로 문제가 될 수 있습니다.
패시브 모드에서 클라이언트는 둘 다 채널을 설정합니다. 우리는 이미 그것이 명령 채널을 활성 모드로 설정한다는 것을 알고 있고, 여기에서도 마찬가지이다.
그러나 클라이언트에 다시 연결을 설정하는 대신 (서버 재량에 따라) 포트에서 수신을 시작하도록 (명령 채널의) 서버에 요청합니다.
이 작업의 일부로, 서버는 클라이언트가 연결 방법을 알 수 있도록 수신 대기하도록 선택한 포트 번호도 클라이언트에 반환합니다.
클라이언트가 이를 알게 되면 데이터 채널을 성공적으로 생성하고 계속할 수 있습니다.
자세한 내용은 RFC https://www.ietf.org/rfc/rfc959에서 확인할 수 있습니다.텍스트의
최근에 직장에서 우연히 이런 질문을 받았기 때문에 여기서 한 마디 더 해야 할 것 같습니다. 이전 답변의 추가 소스로 FTP가 어떻게 작동하는지 이미지를 사용하여 설명하겠습니다.
활성 모드:
수동 모드:
활성 모드 구성에서 서버는 임의의 클라이언트 측 포트에 연결을 시도합니다. 따라서 해당 포트가 미리 정의된 포트 중 하나가 아닐 수 있습니다. 따라서 연결 시도가 방화벽에 의해 차단되고 연결이 설정되지 않습니다.
수동 구성에서는 클라이언트가 연결을 시작하므로 이 문제가 발생하지 않습니다. 물론 서버 측에도 방화벽이 있을 수 있습니다. 그러나 서버가 클라이언트에 비해 더 많은 수의 연결 요청을 수신할 것으로 예상되므로 서버 관리자가 상황에 적응하고 수동 모드 구성을 충족하기 위해 포트 선택을 여는 것은 논리적일 것입니다.
따라서 수동 모드 FTP를 지원하도록 서버를 구성하는 것이 가장 좋습니다. 그러나 수동 모드에서는 클라이언트가 임의 서버 포트에 연결되어야 하므로 시스템이 공격에 취약해집니다. 따라서 이 모드를 지원하려면 서버에 사용 가능한 포트가 여러 개 있어야 할 뿐만 아니라 방화벽이 해당 포트에 대한 연결도 모두 허용해야 합니다.
위험을 완화하려면 서버의 포트 범위를 지정한 다음 방화벽에서 해당 범위의 포트만 허용하는 것이 좋습니다.
자세한 내용은 공식 문서를 참조하십시오.
문서 수정 버전 FTP 연결 모드(활성 vs. 수동):
FTP 연결 모드(액티브 또는 수동)는 데이터 연결이 설정되는 방법을 결정합니다. 두 경우 모두 클라이언트는 FTP 서버 명령 포트 21에 대한 TCP 제어 연결을 만듭니다. 다른 파일 전송 프로토콜(SFTP, SCP, WebDAV)이나 다른 TCP 클라이언트 애플리케이션(예: 웹 브라우저)과 마찬가지로 표준 송신 연결입니다. 따라서 일반적으로 제어 연결을 열 때 문제가 없습니다.
FTP 프로토콜이 다른 파일 전송 프로토콜에 비해 더 복잡한 것은 파일 전송입니다. 다른 프로토콜은 세션 제어 및 파일(데이터) 전송에 동일한 연결을 사용하는 반면, FTP 프로토콜은 파일 전송 및 디렉터리 목록을 위해 별도의 연결을 사용합니다.
active 모드에서 클라이언트는 서버에서 들어오는 데이터 연결을 위해 임의 포트에서 수신을 시작합니다(클라이언트는 수신 중인 포트를 서버에 알리기 위해 FTP 명령 'PORT'를 보냅니다). 요즘은 클라이언트가 방화벽(예: 내장 윈도우즈 방화벽) 또는 NAT 라우터(예: ADSL 모뎀) 뒤에 있어 들어오는 TCP 연결을 받아들일 수 없는 것이 일반적입니다.
이러한 이유로 패시브 모드가 도입되었으며 현재 주로 사용되고 있습니다. 패시브 모드를 사용하는 것이 좋습니다. 대부분의 복잡한 구성은 경험이 없는 사용자가 클라이언트 측에서 개별적으로 수행하는 것이 아니라 경험이 풍부한 관리자가 서버 측에서 한 번만 수행되기 때문입니다.
passive 모드에서 클라이언트는 제어 연결을 사용하여 'PASV' 명령을 서버로 전송한 다음 서버로부터 서버 IP 주소와 서버 포트 번호를 수신합니다. 그러면 클라이언트는 이 번호를 사용하여 서버 IP 주소와 서버 포트 번호에 대한 데이터 연결을 엽니다.
패시브 모드에서는 대부분의 구성 부담이 서버 측에 있습니다. 서버 관리자는 아래에 설명된 대로 서버를 설정해야 합니다.
FTP 서버 측의 방화벽 및 NAT은 FTP 포트 21에서 수신 연결을 허용/라우팅할 뿐만 아니라 수신 데이터 연결을 위한 포트 범위도 구성되어야 합니다. 일반적으로 FTP 서버 소프트웨어에는 서버에서 사용할 포트 범위를 설정하는 구성 옵션이 있습니다. 또한 동일한 범위를 방화벽/NAT에서 열거나 라우팅해야 합니다.
FTP 서버가 NAT의 배후에 있을 때는 FTP 서버의 외부 IP 주소를 알아야 PASV 명령에 대한 응답으로 클라이언트에 제공할 수 있습니다.
active 모드에서는 대부분의 구성 부담이 클라이언트 측에 있습니다.
클라이언트 측의 방화벽(예: 윈도우즈 방화벽) 및 NAT(예: ADSL 모뎀 라우팅 규칙)은 수신 데이터 연결을 위한 포트 범위를 허용/라우팅하도록 구성해야 합니다. Windows에서 포트를 열려면 제어판 > 시스템 및 보안 > Windows 방화벽 > 고급 설정 > 인바운드 규칙 > 새 규칙으로 이동하십시오. NAT(있는 경우)의 포트 라우팅은 해당 설명서를 참조하십시오.
네트워크에 NAT이 있는 경우 FTP 클라이언트는 "PORT" 명령을 사용하여 WinSCP가 FTP 서버에 제공해야 하는 외부 IP 주소를 알아야 합니다. 서버가 클라이언트에 올바르게 다시 연결하여 데이터 연결을 열 수 있도록 합니다. 일부 FTP 클라이언트는 외부 IP 주소를 자동으로 검색할 수 있으며, 일부는 수동으로 구성해야 합니다.
일부 방화벽/NAT은 FTP 제어 연결을 검사하거나 제어 연결 트래픽에서 데이터 연결 IP 주소를 변환하여 데이터 포트를 자동으로 열거나 닫으려고 합니다.
이러한 방화벽/NAT을 사용하면 암호화되지 않은 일반 FTP에 대해 위의 구성이 필요하지 않습니다. 그러나 FTPS에서는 제어 연결 트래픽이 암호화되어 방화벽/NAT이 이를 검사하거나 수정할 수 없기 때문에 FTPS와 함께 사용할 수 없습니다.
액티브 모드.
수동 모드.
클라이언트 서버 문제를 활성화됨 모드 포트 명령을 사용하면 될 것이라는 신호 "적극" 오픈 데이터 접속 ip 및 포트 번호를 백됩니다 클라이언트입니다.
수동 모드 파스프 명령을 기다리는 것이 문건에서 "" 를 발행합니다 나타내십시오 클라이언트 서버 공급을 통해 ip 및 포트 번호, 그 이후에는 클라이언트는 서버에 대한 데이터 연결을 만들기.
좋은 답변 많아 일부 포함되어 있지만, 이 블로그 포스트는 위의 도움됐네 그래픽 및 보기입니다 예쁜 솔리드로 설명: https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and-passive-ftp/