FTP 서버를 설치하고 있어요VSFTPD이것을 따르라지도 시간, 다음과 같이 요약할 수 있습니다.
apt-get install vsftpd
그런 다음 구성 파일에서 합계/etc/vsftpd.conf
줄의 주석 처리를 해제 하고 끝에 다음을 추가합니다.local_umask=022
write_enable=YES
lock_upload_files=NO chroot_local_user=YES force_dot_files=YES
다음을 변경합니다(8745를 원하는 포트로 자유롭게 변경하세요).
pasv_enable=YES pasv_min_port=8745 pasv_max_port=8745
pasv_min_port
vsftpd 와 pasv_max_port
동일한 포트로 설정하면 어떤 영향이 있나요 ? 예를 들어 성능에 어떤 영향을 미치나요?
답변1
TL;박사:그 영향은 FTP 서버가 한 번에 1개의 전송만 지원한다는 것입니다. 이는 동시 클라이언트에 서비스를 제공하도록 설계된 FTP 서버에 대한 절대적인 금지 사항입니다. 아마도 한 사람만 사용하는 개인 FTP 서버에는 괜찮을 것입니다.한 번, 그 사람이 여러 개의 동시 전송을 허용하지 않는 한.
FTP 프로토콜(사용된 서버 소프트웨어에 관계없이 vsftpd
)은 이중 채널 방식으로 작동합니다.
첫 번째 채널은 잘 알려진 포트 21에 바인딩되어 있으며 "제어 채널" 역할을 합니다. 이 채널은 서버에 요청을 보내고 서버로부터 응답을 받는 데 사용됩니다. 요청은 "이 디렉토리 나열", "이 파일 보내기" 또는 "지원하는 기능을 알려주십시오" 등과 같은 명령 유형입니다. 응답은 상태 조건 및 구문 분석하기 쉬운 짧은 텍스트 응답과 관련된 유형입니다.
두 번째 채널은 전송 또는 수신된 파일을 구성하는 실제 데이터 스트림 또는 디렉터리 목록을 구성하는 데이터 스트림과 같은 대량 전송에 사용됩니다. 가장 일반적인 사용 시나리오에서는 이와 같은 두 번째 채널을 설정합니다.주문형그리고 계속단 하나즉, 전송된 각 개별 파일(또는 디렉터리 목록)은 클라이언트와 서버 간에 처음부터 새로운 채널(TCP 연결)을 설정합니다. 첫 번째 채널(포트 21의 채널)은 제어 목적으로 항상 열려 있습니다.
FTP 수동 모드에서 서버는 파일 전송/디렉터리 목록을 요청하는 클라이언트로부터 임시 두 번째 채널(TCP 연결)을 기다리는 동안 수신 대기할 포트를 선택하기 위해 수동 포트를 사용합니다. 두 번째 채널에는 인증/식별이나 어떤 종류의 "쿠키"도 없기 때문에 서버는 선택한 포트와 포트 간의 연결만 설정할 수 있습니다.특정한요청된 작업입니다. 그건:각두 번째 채널은 다음과 밀접하게 연결되어 있습니다.정밀한파일 또는특정한요청한 디렉토리특정한고객.
따라서 서버에 두 번째 채널을 선택할 수 있는 포트만 제공하면 서버는 한 번에 하나의 "대량 전송"만 지원할 수 있습니다. 현재 포트 21의 "제어 채널"에 얼마나 많은 클라이언트가 연결되어 있는지는 중요하지 않습니다. 특정 순간에 클라이언트 중 하나만 파일을 전송하거나 디렉토리를 나열하는 반면, 동시에 전송을 요청하는 다른 클라이언트는 대신 일시적인 오류를 알리는 응답이 서버로부터 수신되었습니다.
즉, 하나의 수동 포트만 사용하는 것은 본질적으로 동일한 FTP 서버 사용을 요구하는 FTP 전송의 큰 뮤텍스와 같습니다.